Firewalld
Firewalld является высокоуровневой реализацией Netfilter, предлагая более удобный интерфейс, чем iptables или nftables. Администраторы могут управлять правилами Firewalld, а приложения могут взаимодействовать с ним через систему сообщений DBus. Это позволяет добавлять или удалять правила без прямого действия администратора, позволяя приложениям управлять брандмауэром из пользовательского пространства.
По умолчанию Firewalld применяет правила только к входящим пакетам; исходящие пакеты не фильтруются.
Зоны Firewalld
Firewalld упрощает управление с помощью зон. Зона - это набор правил, применяемых к входящим пакетам на основе их исходного адреса или интерфейса сети, на который они поступают.
Зоны особенно полезны на серверах с несколькими сетевыми интерфейсами, позволяя устанавливать разные правила для каждого интерфейса. На машине с одним интерфейсом вы обычно работаете с зоной default.
Firewalld анализирует исходный адрес каждого входящего пакета, чтобы определить, совпадает ли он с определенной зоной. Если нет, используется зона для входящего интерфейса. Если специфическая зона не найдена, применяются правила зоны default.
| Название Зоны | Описание | 
|---|---|
| block | Входящие соединения отклоняются с сообщением "ICMP-host-prohibited". Исходящие соединения разрешены. | 
| dmz | Для использования в зоне демилитаризованного доступа. Выбранные входящие соединения принимаются, с ограниченным доступом внутренней сети. | 
| drop | Все входящие пакеты отбрасываются без ответа. | 
| external | Для внешних сетей с включенным маскированием (NAT), обычно используется на маршрутизаторах. Выбранные входящие соединения принимаются. | 
| home | Большинство сетевых компьютеров доверены; принимаются только выбранные входящие соединения. | 
| internal | Большинство сетевых компьютеров доверены; принимаются только выбранные входящие соединения. | 
| public | Другие сетевые компьютеры не доверены; принимаются ограниченные соединения. Это default зона для новых интерфейсов. | 
| trusted | Принимаются все сетевые соединения. | 
| work | Большинство сетевых компьютеров доверены; принимаются только выбранные входящие соединения. | 
Работа с Firewalld
Firewalld предлагает инструмент командной строки, firewall-cmd, который управляет как временными, так и постоянными (на диске) конфигурациями. Используйте флаг --permanent, чтобы изменения сохранялись после перезагрузки. Всегда перезагружайте для применения изменений в рабочем окружении.
[root@localhost ~]# firewall-cmd --get-default-zone
public
[root@localhost ~]# firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work
[root@localhost ~]# firewall-cmd --list-all --zone=public
public (активная)
  target: по умолчанию
  icmp-block-inversion: нет
  interfaces: enp1s0
  источники: 
  services: cockpit dhcpv6-client ftp http https ssh
  порты: 
  протоколы: 
  masquerade: нет
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:
[root@localhost ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet
...
[root@localhost ~]# firewall-cmd --list-services
cockpit dhcpv6-client ftp http https ssh
[root@localhost ~]# firewall-cmd --add-service=vnc-server --permanent
успех
[root@localhost ~]# firewall-cmd --list-services
cockpit dhcpv6-client ftp http https ssh
[root@localhost ~]# firewall-cmd --reload
успех
[root@localhost ~]# firewall-cmd --list-services
cockpit dhcpv6-client ftp http https ssh vnc-server
[root@localhost ~]# firewall-cmd --add-port=2022/tcp --permanent
успех
[root@localhost ~]# firewall-cmd --reload
успех
[root@localhost ~]# firewall-cmd --list-all
public (активная)
  target: по умолчанию
  icmp-block-inversion: нет
  interfaces: enp1s0
  источники: 
  services: cockpit dhcpv6-client ftp http https ssh vnc-server
  порты: 2022/tcp
  протоколы: 
  masquerade: нет
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: Основные Команды
firewall-cmd --list-all
firewall-cmd --list-all --zone=public
firewall-cmd --get-default-zone
firewall-cmd --get-zones
firewall-cmd --get-services
firewall-cmd --list-services
firewall-cmd --add-service ftp
firewall-cmd --add-service ftp --permanent
firewall-cmd --reload
firewall-cmd --add-port=2022/tcp --permanent
firewall-cmd --reload