Firewalld – это решение для управления межсетевым экраном, используемое большинством современных дистрибутивов Linux.
В этом руководстве вы узнаете, как открывать порты на firewalld.
В нем описывается, как открыть порт для публичного, определенного IP или диапазона IP-адресов на firewalld.
При желании посмотрите нашу предыдущую статью об установке и использовании Firewalld в системе Linux:
🖧 Что такое FirewallD и как его реализовать в Linux
Введение в команду firewalld и firewall-cmd в Linux
В этом руководстве все команды написаны на примере порта MySQL 3306.
Вы можете использовать ту же команду для любых других портов в соответствии с вашими требованиями.
Разрешить на порту весь трафик
Используйте следующие команды, чтобы разрешить входящий трафик через порт 3306 всему трафику, приходящему из публичной сети.
firewall-cmd --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/tcp
Разрешить порт для определенного IP
Вы также можете ограничить доступ к любому порту на основе адреса источника.
Чтобы открыть доступ по порту на основе адреса источника, необходимо добавить расширенное правило брандмауэра.
Выполните приведенную ниже команду, чтобы разрешить доступ для порта 4567 в сеть 192.168.0.0/24.
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.0/24"
port protocol="tcp" port="3306" accept'
Перезагрузите правила брандмауэра, чтобы применить изменения.
firewall-cmd --reload
Проверка правил
После добавления правил в firewalld вы можете проверить их, выполнив следующую команду.
firewall-cmd --list-all
Вывод:
public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="192.168.0.0/24" port port="3306" protocol="tcp" accept
Удаление правил Firewalld
Если вам не нужно держать порты открытыми все время, вы можете удалить / запретить вышеуказанные порты в firewalld с помощью опции -remove-port:
firewall-cmd --permanent --zone=public --remove-port=3306/tcp
Затем выполните следующую команду, чтобы применить изменения:
firewall-cmd --reload
Заключение
В этом руководстве вы научились открывать доступ по порту всему трафику или конкретному IP-адресу / сети, используя firewalld в операционных системах Linux.
см. также:
🛡️ Как перенести правила iptables CentOS / RHEL 6 в CentOS / RHEL 7 firewalld