Назад | Перейти на главную страницу

Как полностью заблокировать порт с помощью firewalld?

Отказ от ответственности: я впервые использую firewalld, будьте осторожны :).


У меня есть машина CentOS, и я хочу реализовать следующие требования с помощью firewalld:

Итак, я сделал это:

Теперь зоны выглядят так:

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