Для чего сделаны разные порты вебсервера и зачем их защищать?
Если у Вас есть сайт, то хакер для взлома может пойди другим путем. Он будет ломать сам вебсервер, а не отдельный сайт.
Для взаимодействия с пользователями (посетителями, админом) вебсервер использует отдельные порты (с номером), по которым доступен соответствующий сервис. Номер порта обычно указывается через двоеточие после IP-адреса.
Например, 192.168.1.1:22 – порт для сервиса SSH для администратора (фактически командная строка Linux).
В таблице
Номер | Сервис | Описание |
20 | FTP (File Transfer Protocol) – порт данных | Передача файлов на удаленный сервер |
21 | FTP (File Transfer Protocol) – порт управления | Передача файлов на удаленный сервер |
22 | SSH (Secure SHell) В отличие от стандартного FTP он шифрует и команды, и данные. | Подключение командной строки управления сервером также sFTP |
23 | TELNET (TELetype NETwork) | Удаленное управление сервером на базе своих команд (без шифрования) |
25 | SMTP (Simple Mail Transfer Protocol ) | Отправка писем без шифрования |
80 | HTTP | Отдача сайтов посетителю без шифрования |
110 | POP3 | Получение писем |
143 | IMAP | Синхронизация писем на сервере |
443 | HTTPS | Отдача сайтов с шифрованием по SSL или TLS |
465 | SMTPS (SMTP Secure) | SMTP с шифрованием по SSL или TLS |
990 | Implicit FTP (неявный FTP через TLS) | Шифрует команды FTP и передаваемые данные |
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).
Все остальные порты на веб-сервере можно заблокировать (точнее- разрешить только нужные порты)
Читаем статью
Подпишитесь в VKontakte - нажмите кнопку | ||
Подпишитесь в Telegram - нажмите кнопку | ||
Наша группа ODNOKLASSNIKI |
Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла
Запрос на размещение Вашего рекламного поста (тема и email будут добавлены автоматически в письмо)
В Вашем браузере должна быть настроена обработка ссылок mailto
site_post@bk.ru
или просто скопируйте адрес e-mail
Почитать в разделе
Хостинг VPS/VDS

(Читать полностью...)
- Всего статей в разделе: 9
- Показано статей в списке: 8
- Сортировка: название по алфавиту
Использование FTP и SFTP

(Читать полностью...)
Как выбрать VPS/VDS по параметрам

(Читать полностью...)
Панель управления веб сервером

(Читать полностью...)
Права доступа к файлу на сервере

(Читать полностью...)
Программы для передачи файлов на удаленный сервер

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

(Читать полностью...)
Файл PHP.INI
Файл php.ini крайне важен для обработки сервером PHP Ваших скриптов (или скриптов CMS) Как его найти? Проблема в том, что: файлов php.ini может быть несколько для разных версий PHP они могут находиться в разных местах для разных серверов места расположения файлов тоже будут разными для разных способов управления PHP (Apache или варианты CGI) - файл php.ini тоже может запущен из разных мест константы в файле php.ini имеют значение по умолчанию (т.е. когда они явно не указаны) Всё это вместе может приводить к достаточно необычному поведению Вашего проекта при переключении версий PHP или способов запуска. Т.е. меняются не только команды PHP (немного разные для разных...(Читать полностью...)
Чем отличается сервер VPS от VDS

(Читать полностью...)