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

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

5/5 - (1 голос)

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

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

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

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

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

В таблице

НомерСервисОписание
20  FTP (File Transfer Protocol) — порт данныхПередача файлов на удаленный сервер
21FTP (File Transfer Protocol) — порт управленияПередача файлов на удаленный сервер
22SSH (Secure SHell) В отличие от стандартного FTP он шифрует и команды, и данные.

Подключение командной строки управления сервером

также sFTP

23TELNET (TELetype NETwork)Удаленное управление сервером на базе своих команд (без шифрования)
25SMTP (Simple Mail Transfer Protocol )Отправка писем без шифрования
80HTTPОтдача сайтов посетителю без шифрования
110POP3Получение писем
143IMAPСинхронизация писем на сервере
443HTTPSОтдача сайтов с шифрованием по SSL или TLS
465SMTPS (SMTP Secure)SMTP с шифрованием по SSL или TLS
990Implicit 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).  

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

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

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

Подпишитесь в VKontakte - нажмите кнопку
Подпишитесь в Telegram - нажмите кнопку
Наша группа ODNOKLASSNIKI

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




Пишите на электронную почту (тема и email будут добавлены автоматически в письмо)

В Вашем браузере должна быть настроена обработка ссылок mailto

site_post@bk.ru

или просто скопируйте адрес e-mail



Почитать в разделе

Хостинг VPS/VDS

Для попадания в TOP10  (Яндекс, Гугль) сайт должен уметь отрабатывать много пользователей Много пользователей – это не просто много пользователей в период времени, это много пользователей в один момент времени (т.е. на сайт заходят несколько пользователей одновременно) Apache – он однопоточный, т.е. пользователи по очереди Nginx – он многопоточный – но для статики (картинки в основном + кэш от движка) Nginx +Apache = на 90% хостингов пойдет для чистого html А вот если у нас динамический сайт на php – вот тут нужны ресурсы. Серверу нужно собрать html на основе инструкций php Вот потребление памяти на сборку страницы html из кода php Вот потребление ресурсов процессора Nginx...
(Читать полностью...)

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

Использование FTP и SFTP

FTP по умолчанию не является защищенным протоколом Задача простая: нужно получить доступ к файлам на сервере к файлам, которые относятся к сайтам, а не ко всему серверу соединение должно быть защищенным По умолчанию у нас есть базовых два варианта: FTP, порт 21, не защищенное соединение, видим выбранную папку с сайтом SFTP, порт 22, защищенное соединение, но видим весь сервер начиная с root Если быть совсем точным - то FTP использует два порта, один для команд, второй - для передачи данных. Соединение с сервером по FTP FTP (англ. File Transfer Protocol) — протокол передачи файлов по сети, появившийся в 1971 году задолго до HTTP и даже до TCP/IP, благодаря чему...
(Читать полностью...)

Как выбрать VPS/VDS по параметрам

Будем выбирать VPS/VDS по параметрам. VPS - virtual private server VDS - virtual dedicated server Читаем статью Чем отличается сервер VPS от VDS Другими словами - виртуальный компьютер у хостера, где Вы можете разместить свой web-проект. Компьютер как настоящий (cpu, память, диск, ОС) - только нарисованный в памяти сервера. Про варианты работы VDS читаем статью Хостинг VPS Основные параметры: система виртуализации (OpenVZ, KVM, Hyper-V) операционная система (Linux, Windows) число ядер процессора диск (SAS, SSD, NVMe) оперативная память RAM трафик и ширина канала панель управления сервером (для настоящих любителей Lunix необязательно) И собственно web-проект...
(Читать полностью...)

Панель управления веб сервером

Хорошая панель управления (она же GUI) должна давать возможность (помимо стандартных функций): сканер-антивирус (для проверки файлов на сервере и базы MySql) возможность создания аккаунтов sFTP   Бесплатные панели управления сервером Читаем статью Бесплатные панели управления серверами в 2021 году Список: VestaCP BrainyCP Fastpanel (от хостера FastVPS) ISPConfig Ajenti ,CWP – Control Web Panel Virtualmin KeyHelp EHCP – Easy Hosting Control Panel Sentora Платные панели управления...
(Читать полностью...)

Права доступа к файлу на сервере

Вот такая картинка Система разрешений Linux Система разрешений Linux была изобретена в 1970-х годах. Поскольку вычислительные потребности были ограничены в те годы, базовая система разрешений была довольно ограничена. Эта система разрешений использует три разрешения, которые можно применять к файлам и каталогам^ чтение (read)) запись (write) выполнение (execute) Для файлов и каталогов смысл разрешений немного отличается Разрешение Код Файл Каталог Read 4 Получить содержимое файла Получить список содержимого папки. Write 2 Изменить содержимое файла Право создавать и удалять файлы в этой папке Execute 1 Запустить файл как программу Разрешить...
(Читать полностью...)

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

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

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

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

Файл PHP.INI

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

Чем отличается сервер VPS от VDS

В чем разница VPS/VDS? Хитрые хостеры отвечают, что это одно и то же. А вот не совсем: VPS - (англ. virtual private server) - виртуальный частный сервер VDS - (англ. virtual dedicated server) - виртуальный выделенный сервер Server - он конечно сервер, но разный. Одна буква P/D - и разница есть. Теперь вот так по разным виртуализациям на живом железе: KVM только Linux - VDS OpenVZ только Linux (модифицированное общее ядро для всех виртуальных машин) - VPS Hyper-V возможны виртуальные сервера на Linux - VDS возможны виртуальные сервера на  Windows - VDS вообще можно любую операционную систему установить - VDS Читаем статью про...
(Читать полностью...)

X

    Please prove you are human by selecting the Heart.