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