G|Translate: English EN Français FR Deutsch DE Italiano IT Русский RU Español ES

Порты вебсервера и их основная защита

Для чего сделаны разные порты вебсервера и зачем их защищать?

Порты вебсервера и их основная защита

Если у Вас есть сайт, то хакер для взлома может пойди другим путем. Он будет ломать сам вебсервер,  а не отдельный сайт.

Для взаимодействия с пользователями (посетителями, админом) вебсервер использует отдельные порты (с номером), по которым доступен соответствующий сервис. Номер порта обычно указывается через двоеточие после IP-адреса.

Например, 192.168.1.1:22 – порт для сервиса SSH для администратора (фактически командная строка Linux).

В таблице

НомерСервисОписание
20  FTP (File Transfer Protocol) – порт данныхПередача файлов на удаленный сервер
21FTP (File Transfer Protocol) – порт управленияПередача файлов на удаленный сервер
22SSH (Secure SHell) В отличие от стандартного FTP он шифрует и команды, и данные.Подключение командной строки управления сервером
23TELNET (TELetype NETwork)Удаленное управление сервером на базе своих команд (без шифрования)
25SMTP (Simple Mail Transfer Protocol )Отправка писем без шифрования
80HTTPОтдача сайтов посетителю без шифрования
110POP3Получение писем
143IMAPСинхронизация писем на сервере
443HTTPSОтдача сайтов с шифрованием по SSL или TLS
465SMTPS (SMTP Secure)SMTP с шифрованием по SSL или TLS
8888Панель управления хостингомНа усмотрение хостера

Диапазон 49152—65535 содержит динамически выделяемые или частные порты, которые не регистрируются IANA.

В основном мощные ботнеты (IP > 1000 или > 10 000) “работают” по двум портам – 22 SSH (логин обычно root) и 21 FTP (логин обычно хакерам неизвестен):

  • несмотря на сложность пароля – его все равно подберут за конечное время
  • и вся эта деятельность ботнетов сильно нагружает процессор (вместо того, что бы сайты посетителям отдавать)

С этим надо бороться:

Малоэффективные способы:

  • хороший пароль – все равно подберут за конечное время, слишком большой объем брутфорса
  • fail2ban с блокировкой IP – не поможет особо, т.к. таких IP может оказаться больше (>1000 или > 10 000), чем ресурсы сервера (например в VPS OpenVZ всего 256 цепочек для заблокированных IP можно создать)
  • разрешить вход только с IP админа – у большой части пользователей IP обычно динамический

 

Хорошие способы:

  • увеличение интервала между неудачными входами с одного IP  (например, не более 2-х попыток в минуту)
  • меняем пользователя root на другого, например myroot
  • смена номера порта на что-нибудь № 55555 – отлично, отсекаем 99% атакующих (остальные 1% умеют порты сканировать…)
  • открываем/закрываем порт по обращению к другому порту
  • используем вход по ключу (созданному на сервере) вместо пароля
  • открытие порта на заданное время

Защищаем порт 22 SSH

SSH был разработан в 1995 году для замены telnet (порт 23) и ftp (порт 21), поэтому автор программы Тату Илтонен выбрал порт 22 по умолчанию, и его утвердили в IANA.

Логин обычно root – осталось подобрать пароль.

И желающих подобрать пароль – много.

Нет, не так.

МНОГО. Весь мир хочет пробиться на адрес 192.168.1.1:22 (условно – в реальности IP адрес Вашей VPS) с логином root.

Ниже (например) список из fail2ban

Порты вебсервера и их основная защита

Вот 18 попыток за 3 сек.

Лог обычно хранится в /var/log/auth.log.

# grep "Failed password" /var/log/auth.log

Причем большая часть таких IP – это зараженные машины добропорядочных пользователей. Нельзя делать вечный бан – он нужен только на время атаки.

А боты умные – с одно IP делаю несколько попыток в секунду и меняют IP. Итого в секунду может быть до 6-10 попыток с 3-5 разных IP.

fail2ban – вещь конечно хорошая, но против массовых ботнетов он неэффективен:

  • “плохие” IP будут баниться пачками, может не хватить ресурсов сервера (особенно OpenVZ)
  • процессор всё равно грузится всей этой чепухой

Читаем статью

Защита ssh средствами Iptables

Как хороший и интересный вариант – комбинируем открытие по стуку и смену порта:

  • “стук” на 192.168.1.1:55555 – открывает порт SSH (например 55557)
  • входим на SSH 192.168.1.1:55557
  • после выхода – “стук” на 192.168.1.1:55556 – закрываем SSH

 

В результате даже сканирование портов (как по возрастанию, так и по убыванию = не поможет открыть порт SSH)

55555 -> 55556 -> 55557 (SSH)  и 55557 (SSH) -> 55556 -> 55555

“Стукать” в порт умеет программа telnet (собственно, переборщик портов на IP делает примерно то же самое)

Например, с помощью простого “батника” с запросом пароля и программы PuTTY

telnet SERVER_NAME 55555
@echo off 
set /P var="Enter password: " 
"C:\Program Files\PuTTY\putty.exe" -ssh USER_NAME@SERVER_NAME -P 55557 -pw %var%
telnet SERVER_NAME 55556

На Windows 7 (и старше –  программа telnet по умолчанию отключена),  получим служебное сообщение

 Порты вебсервера и их основная защита

Включаем через “Программы и компоненты”->”Включение или отключение компонентов Windows”

Порты вебсервера и их основная защита

Проверяем на 192.168.1.1

Порты вебсервера и их основная защита

Вот, например, наш роутер отвечает :)

Защищаем порт 21 FTP

Порт 21 FTP – тоже желающие сломать есть, но меньше – т.к. логин обычно неизвестен. У FTP на самом деле два порта:

  • 21 – управление
  • 20 – передача данных

Лог обычно хранится в var/log/profftd/

“no such user found from 139.201.165.190” – тут еще атакующим надо логин найти :)

Порты вебсервера и их основная защита

Одной минуты еще не прошло.

Если у Вас VPS – имеет смысл доступ через FTP вообще отключить, т.е. есть SSH и root-доступ.

При наличии виртуального хостинга – есть только FTP для передачи данных.

Windows машина и порт 3389 RDP

Да – это порт для “Удаленного рабочего стола“, он же RDP. Для сервера на Windows.

Пока машина работает в локальной сети (за роутером) – до неё из интернета не достучаться. Как только Ваша машина на Windows стала доступна из большого интернета (или сервер или Вы сделали проброс портов на роутере для доступа к ПК в локальной сети) – на порт 3389 тут же набегут сетевые боты (даже скажем прямо, ботнеты со всего мира с пачкой разных IP адресов…). 

Меняем порт 3389 на другой, например на 55555

Справка:

• стандартные порты  от 0 до 1023 — назначаются и контролируются IANA (Internet Assigned Numbers Authority), и обычно используются низкоуровневыми системными программами;
• зарегистрированные порты от 1024 до 49151 — также назначаются и контролируются IANA, но выделяются для частных целей;
• Динамические и/или приватные порты от 49152 до 65535 — могут быть использованы любым процессом с любой целью. 

Что нужно сделать:

  • изменить порт в Windows по умолчанию с 3389 на 55555
  • разрешить к нему доступ в брандмауэре (файервол Windows) 
  • и теперь запускать RDP для подключения надо в виде 192.168.1.2:55555

 

Меняем порт 3389 на 55555 в реестре Windows

Запускаем редактор Regedit и идем в раздел реестра 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Выбираем параметр PortNumber

Порты вебсервера и их основная защита 

Переключаемcя в десятичный формат и задаем порт 55555

Порты вебсервера и их основная защита

Готово.

Порты вебсервера и их основная защита

Разрешаем подключение к порту 55555

Брандмауэре Windows -> Дополнительные параметры -> Правила для входящих подключений

Порты вебсервера и их основная защита

Создаем новое правило для порта

Порты вебсервера и их основная защита

Указываем наш порт 55555

Порты вебсервера и их основная защита

Разрешаем подключения

Порты вебсервера и их основная защита

Указываем, для каких профилей

Порты вебсервера и их основная защита

Создаем название и краткое описание (по желанию)

Порты вебсервера и их основная защита

Готово. Теперь можно подключаться с указанием порта по адресу 192.168.1.2:55555

 

Оставляем только нужные порты для вебсервера

По хорошему:

  • внешним пользователям от вебсервера нужен только сайт (80 или 443),
  • администратору – управление (SSH и панель управления)
  • возможность отправлять/получать email с сервера (WordPress например использует php-mail).  

Все остальные порты на веб-сервере можно заблокировать (точнее- разрешить только нужные порты)

Читаем статью

Защита VPS от нечисти с помощью fail2ban  и iptables


Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла



Вы будете видеть наш сайт у себя в ленте


Нажмите "Подписаться"


Нажмите "Нравится" или напишите сообщение



Почитать в разделе: Хостинг VPS/VDS

  • Всего статей в разделе: 3
  • Показано статей в списке: 2
  • Сортировка: название по алфавиту

Программы для передачи файлов на удаленный сервер

Как загрузить свои файлы на сервер? Мы можем использовать два разных протокола и разные программы соответственно WinSCP WinSCP - свободный графический клиент протоколов SFTP и SCP, предназначенный для Windows. Распространяется по лицензии GNU GPL. Обеспечивает защищённое копирование файлов между компьютером и серверами, поддерживающими эти протоколы. Сайт программы https://winscp.net/ Разработчик Мартин Прикрыл (Чехия). Название от команды Linux scp (Secure Copy Command), которая отвечает за копирование файлов с поддержкой SSH.  Если у Вас есть root-доступ - то Вы увидите все папки на сервере, а...
(Читать полностью...)

Управление сервером VPS через SSH (программа PuTTY)

Будем использовать для управления веб-сервером программу для Windows - PuTTY Это фактически командная строка Linux через SSH SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. Крайне неплохо будет поставить дополнительную защиту на SSH сервера, т.к. желающих подобрать пароль очень много - весь мировой интернет. А логин обычно root Читаем статью Настраиваем fail2ban Сайт программы...
(Читать полностью...)