Какие порты нужно закрыть на сервере в первую очередь

Вопрос: какие порты нужно закрыть на сервере в первую очередь?

Линия поддержки
Линия поддержки Ответы на вопросы пользователей
30 сентября 2026

Чем ограничение доступа отличается от закрытия порта, как прикрыть SSH через iptables или облачный файрвол и почему стандартного списка мало.

Изображение записи

Комментарий пользователя

Поднял ВМ в облаке под небольшой сервис на nginx. Просканировал ее снаружи через nmap — открыты 22/TCP и 80/TCP. Везде пишут «закройте все ненужные порты», но не совсем понимаю, где найти конкретику. 22 мне нужен, чтобы вообще попадать на сервер, 80 нужен сайту. Получается, закрывать нечего? С чего начать и на что смотреть в первую очередь?

Никита Костюхин Студент ИТ-направления

Ответ специалиста

Здравствуйте, Никита!

Порт не обязан быть «закрытым» — он должен быть недоступен всем, кому не нужен. В вашем случае разница принципиальная: и 22, и 80 останутся рабочими, просто перестанут смотреть в весь интернет.

Есть группа портов, которые опасно держать открытыми наружу практически всегда. С них и рекомендуется начинать ревизию:

3306/TCP (MySQL) и 5432/TCP (PostgreSQL) — не должны быть доступны из интернета. Открытый порт БД — это прямой путь к утечке.

23/TCP (Telnet) и 21/TCP (FTP) — передают данные в открытом виде, поэтому легко перехватываются. От Telnet стоит отказаться совсем в пользу SSH, вместо FTP взять SFTP или FTPS;

445/TCP (SMB) — канал распространения вредоносного ПО: через него работал WannaCry, позже — шифровальщики Ryuk и Cryptolocker. Не нужен — отключайте, нужен — только актуальная версия протокола и никогда не наружу;

3389/TCP (RDP) — постоянная цель атак из-за слабых паролей и уязвимостей самой службы. Ограничение по IP плюс многофакторная аутентификация;

5900/TCP (VNC) — та же проблема слабых паролей. Только через приватную сеть.

  • Антон Дятлов

    Антон Дятлов

    Инженер по ИБ

Ваши 22 и 80 в этом списке тоже есть, но логика с ними немного другая. 22/TCP — самый часто открытый порт в интернете и главная мишень для подбора паролей, поэтому по нему нужны ключи вместо паролей и доступ только с доверенных адресов (white list). 80/TCP закрывать бессмысленно, это и есть ваш сервис и его защищают иначе — переходом на HTTPS и, если сервис серьезный, WAF от инъекций и XSS.

Практически для ограничения 22/TCP есть два основных способа. Локально — правилом iptables на самом сервере, тогда при сканировании снаружи порт получит статус filtered вместо open. 

Второй способ — облачный межсетевой экран, и его стоит рассматривать как основной. Фильтрация здесь происходит до сервера, поэтому при разрешении только для доверенного адреса nmap снаружи вообще не видит хост.

Важный момент, который чаще всего пропускают: не ориентируйтесь только на список стандартных портов. Уязвимые службы регулярно оказываются на неожиданных номерах. Порт открывается при установке сервиса незаметно и узнать о нем можно только сканированием собственного периметра.

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

1. Просмотрите слушающие порты и службы: 


      $ sudo netstat -tulpn              # все слушающие порты и службы
$ whatis <имя службы>              # что это за сервис

2. По каждому найденному порту ответьте на вопрос, должен ли он быть открыт. Если служба им не пользуется, то закрывайте. Сокращение числа открытых портов упрощает контроль и снижает вероятность эксплуатации уязвимостей.

3. Обновите ПО и накатите патчи. А дальше — то, что на вашем масштабе даст больше всего пользы: настройте себе оповещение о новых открытых портах. Полноценный SIEM для одной ВМ избыточен, но задачу решает и простой скрипт по расписанию: cron раз в сутки снимает список слушающих портов через ss или nmap, сравнивает с сохраненным эталоном и, если появилось что-то новое, присылает сообщение в Telegram. К слову, когда придет такое оповещение, у нас есть чек-лист с разбором дальнейших действий.