Как открыть порт для SSH-доступа

Открытие порта для SSH-доступа на маршрутизаторе требует настройки механизма перенаправления портов (Port Forwarding), который транслирует входящие пакеты с внешнего интерфейса на локальный IP-адрес целевого узла. Для корректной работы схемы необходим публичный статический IP-адрес на стороне WAN-интерфейса, так как при использовании «серого» адреса провайдера входящие соединения блокируются на уровне магистрального оборудования. Процедура включает создание правила NAT, связывающего порт 22 (или альтернативный) с внутренним IP сервера, и настройку правил межсетевого экрана для разрешения трафика.

Предварительные требования к сетевой конфигурации

Перед настройкой проброса портов необходимо убедиться, что целевой сервер имеет статическую конфигурацию IP-адреса в локальной сети. Использование DHCP для SSH-хоста приведет к потере доступа при смене адреса устройством. Также крайне рекомендуется изменить стандартный порт 22 на нестандартный (например, в диапазоне 40000–60000), чтобы минимизировать количество автоматизированных брутфорс-атак, постоянно сканирующих стандартные порты.

Важно: Проверьте статус вашего IP-адреса в панели управления роутером. Если WAN IP находится в диапазоне 10.x.x.x, 172.16.x.x–172.31.x.x или 192.168.x.x, ваш адрес является «серым». В этом случае проброс портов на роутере не даст результата, и потребуется заказ услуги «Выделенный IP» у провайдера или использование VPN/туннелей (например, WireGuard или Cloudflare Tunnel).

Настройка Port Forwarding на маршрутизаторе

Процесс настройки в большинстве современных прошивок (MikroTik, OpenWrt, Keenetic, AsusWRT) сводится к созданию правила DNAT. Логика работы заключается в перехвате пакетов, приходящих на внешний интерфейс по определенному порту, и их перенаправлении на внутренний IP-адрес сервера.

  1. Авторизуйтесь в веб-интерфейсе маршрутизатора и перейдите в раздел настройки NAT или «Переадресация портов».
  2. Укажите протокол TCP — SSH работает исключительно поверх него.
  3. В поле «Внешний порт» введите выбранный порт (например, 45222).
  4. В поле «Внутренний IP» укажите статический адрес вашего SSH-сервера в локальной сети.
  5. В поле «Внутренний порт» укажите порт, на котором прослушивает соединения SSH-демон на самом сервере (обычно 22).
  6. Сохраните правило и примените настройки.

Безопасность SSH при доступе из публичной сети

Открытие SSH-порта в интернет делает сервер уязвимым для перебора паролей. Ограничение доступа только на уровне сетевого оборудования не является достаточным решением. Для защиты инфраструктуры необходимо внедрить дополнительные уровни аутентификации.

  • Отключите аутентификацию по паролю в файле /etc/ssh/sshd_config, установив PasswordAuthentication no.
  • Используйте исключительно SSH-ключи (Ed25519 или RSA 4096 бит).
  • Установите утилиту Fail2Ban для автоматической блокировки IP-адресов, совершающих подозрительные попытки авторизации.
  • Настройте межсетевой экран на самом сервере (iptables или ufw), разрешив входящие соединения только с доверенных подсетей, если это возможно.

Диагностика типичных ошибок подключения

Если после настройки правило не функционирует, проблема обычно локализована в одном из трех узлов: конфигурация провайдера, настройки файервола роутера или конфигурация SSH-демона на сервере.

Проверка доступности порта извне

Для диагностики используйте утилиту telnet или nc с внешнего узла (например, через мобильный интернет): nc -zv [Ваш_Публичный_IP] [Порт]. Если соединение отклоняется, значит, пакеты не доходят до роутера или блокируются провайдером. Если соединение висит в статусе «trying» или «timeout», значит, маршрутизатор не перенаправляет трафик корректно.

Совет: Если вы используете MikroTik, убедитесь, что в цепочке forward фильтра межсетевого экрана (IP Firewall Filter) разрешено прохождение трафика к целевому порту, так как правила NAT в этой системе работают независимо от фильтров безопасности.

Конфликты внутреннего файервола

Часто пользователи забывают, что на самом SSH-сервере (особенно если это Linux-дистрибутив) активен внутренний файервол (ufw, firewalld). Убедитесь, что в нем разрешен входящий трафик на порт, который вы пробросили с роутера. Проверить статус можно командой sudo ufw status или iptables -L -n.


Добавить комментарий