Главная
» LINUX
»
Как заблокировать определенные порты в Linux с помощью UFW или firewalld
Как заблокировать определенные порты в Linux с помощью UFW или firewalld
Чтобы заблокировать определенный порт в Linux, добавьте правило брандмауэра для порта и протокола, который вы хотите остановить. Например, в системе Ubuntu, использующей UFW, sudo ufw deny 8080/tcpблокируются новые входящие TCP-соединения к порту 8080. В системах, использующих firewalld, вы можете удалить существующее разрешение порта или добавить явное правило отклонения. Важно изменить брандмауэр, который фактически используется вашей системой, а не смешивать правила UFW, firewalld и низкоуровневые правила nftables.
Прежде чем блокировать порт
Сначала подтвердите номер порта и укажите, использует ли приложение TCP, UDP или оба протокола. Правило TCP не блокирует автоматически протокол UDP на том же номере. Вы также можете проверить наличие прослушиваемых сокетов с помощью:
sudo ss -lntup
Правило брандмауэра контролирует сетевой трафик; оно не препятствует локальному прослушиванию приложения. Если вам вообще не нужна эта служба, остановка или отключение этой службы обычно лучше, чем полагаться только на правило брандмауэра.
Если вы подключены к машине по SSH, защитите правило удаленного доступа, прежде чем включать или ужесточать настройки брандмауэра. В текущем руководстве по UFW специально предупреждается, что включение UFW может нарушить существующие SSH-соединения, и рекомендуется сначала добавить необходимые разрешения SSH.
Если результат таков Status: inactiveи вы хотите включить UFW, сначала разрешите службу удаленного управления, на которую вы полагаетесь. Для стандартного профиля OpenSSH:
sudo ufw allow OpenSSH
sudo ufw enable
Перед изменением правил UFW, особенно на удаленно управляемой машине, убедитесь, что эта функция активна.
2. Добавьте правило запрета для порта.
Замените 8080на порт, который вы хотите заблокировать. Укажите протокол, чтобы правило было однозначным:
sudo ufw deny 8080/tcp
Для UDP используйте:
sudo ufw deny 8080/udp
Если приложение использует оба протокола, добавьте оба правила. UFW также поддерживает reject; в отличие от молчаливого отказа, отказ сообщает отправителю о том, что соединение было отклонено.
Правило запрета UFW блокирует входящий TCP-трафик на выбранный порт.
3. Проверить или отменить правило UFW.
sudo ufw status numbered
В результате выполнения должна отобразиться запись DENY IN для заблокированного порта. Официальный синтаксис UFW также поддерживает удаление правила путем его повторения с помощью delete:
sudo ufw delete deny 8080/tcp
Используйте пронумерованный вывод состояния, чтобы подтвердить, что нужное правило UFW активно.
Заблокируйте порт с помощью firewalld.
Если в вашей системе Linux используется firewalld, начните с определения активной зоны:
Замените publicприведенные ниже данные, если ваш интерфейс принадлежит другой зоне. Если порт 8080 был явно открыт, удалите это разрешение и перезагрузите постоянную конфигурацию:
При использовании firewalld внесите изменения в соответствующую активную зону и перезагрузите постоянные правила.
Если доступ к порту по-прежнему разрешен косвенно на основании определения службы, или вы хотите явно заблокировать доступ, добавьте расширенное правило отклонения:
В документации firewalld по расширенным правилам описаны способы сопоставления портов с помощью действий rejectили . В руководстве firewall-cmd также объясняется разделение настроек на исполняемые и постоянные.drop
Чтобы позже снять явную блокировку firewalld, удалите то же самое расширенное правило и перезагрузите систему:
Запустите программу sudo ss -lntupеще раз, если хотите проверить, продолжает ли приложение прослушивать запросы. Затем протестируйте с другого компьютера в соответствующей сети. Если установлен Netcat, проверка TCP может выглядеть следующим образом nc -vz SERVER_IP 8080: . Протестируйте с того же сетевого пути, который используют ваши реальные клиенты; проверка на localhost не доказывает, что внешний трафик заблокирован.
Если служба никогда не должна быть доступна, отключите или перенастройте саму службу. Межсетевой экран — это уровень контроля доступа, а не замена удалению ненужных прослушивателей.