Отказ от ответственности: я впервые использую firewalld, будьте осторожны :).
У меня есть машина CentOS, и я хочу реализовать следующие требования с помощью firewalld:
Итак, я сделал это:
public
зонаtrusted
Теперь зоны выглядят так:
public (active)
target: default
icmp-block-inversion: no
interfaces: eno12345
sources:
services: ssh dhcpv6-client
ports: 1/tcp 2/tcp 3/tcp 4/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces:
sources: IP1 IP2 IP3
services:
ports: 5/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Примечание: public
зона по умолчанию.
Итак, первые 2 правила кажутся примененными правильно.
Однако я придерживался последнего правила (полностью заблокировать порт 6). Я пробовал несколько решений, и ни одно из них не работает.
1). Что мне делать, чтобы применить это?
2). Почему я могу подключиться через порт 6, даже если он явно не указан как разрешенный в конфигурации firewalld? Никакого правила об этом не добавлено в iptables
либо.
Я решил это так: я добавил богатое правило в trusted
зона:
rule family="ipv4" port port="6" protocol="tcp" drop
Насколько я знаю, сначала применяются сложные правила. Кажется, в моем случае он работает правильно.
Некоторые общие команды ниже
firewall-cmd --list-ports
firewall-cmd --get-zones
firewall-cmd --zone=public --add-port=5000/tcp
Для получения дополнительных документов и подробностей, пожалуйста, проверьте это. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Configuring_firewalld.html