Как настроить брандмауэр с помощью firewalld в Rocky Linux 9
Введение
системы фильтрации пакетов iptables.
В этом руководстве вы узнаете, как настроить брандмауэр firewalld
для вашего сервера Rocky Linux 9, и познакомитесь с основами управления брандмауэром с помощью административного инструмента firewall-cmd
. .
Предпосылки
Для выполнения этого руководства вам понадобится сервер под управлением Rocky Linux 9. Вы должны войти на этот сервер как пользователь без полномочий root, с поддержкой sudo
. Чтобы настроить это, обратитесь к нашему руководству Initial Server Setup for Rocky Linux 9.
Шаг 1 — Обзор основных концепций firewalld
Перед рассмотрением того, как на самом деле использовать утилиту firewall-cmd
для управления конфигурацией брандмауэра, вы должны ознакомиться с некоторыми понятиями, которые представляет этот инструмент.
Зоны
Демон firewalld
управляет группами правил, используя сущности, называемые зонами. Зоны — это наборы правил, которые определяют, какой трафик должен быть разрешен в зависимости от уровня доверия, который у вас есть в сети. Сетевые интерфейсы назначаются зоне, чтобы определять поведение, которое должен разрешать брандмауэр.
Для компьютеров, которые могут часто перемещаться между сетями (например, ноутбуки), такая гибкость обеспечивает хороший способ изменения ваших правил в зависимости от вашей среды. У вас могут быть строгие правила, запрещающие большую часть трафика при работе в общедоступной сети Wi-Fi и допускающие более мягкие ограничения при подключении к домашней сети. Для сервера эти зоны часто не так важны, потому что сетевое окружение меняется редко, если вообще меняется.
Независимо от того, насколько динамичной может быть ваша сетевая среда, все же полезно ознакомиться с общей идеей каждой из предопределенных зон для firewalld
. Предопределенные зоны в firewalld
расположены в порядке от наименее доверенных до наиболее надежных:
- drop: самый низкий уровень доверия. Все входящие соединения сбрасываются без ответа, и возможны только исходящие соединения.
- block: Аналогично описанному выше, но вместо разрыва соединений входящие запросы отклоняются сообщением
icmp-host-prohibited
илиicmp6-adm-prohibited
.< /li> - public: представляет общедоступные, ненадежные сети. Вы не доверяете другим компьютерам, но можете разрешать выбранные входящие подключения в каждом конкретном случае.
- external: внешние сети, если вы используете брандмауэр в качестве шлюза. Он настроен на маскировку NAT, поэтому ваша внутренняя сеть остается частной, но доступной.
- internal: другая сторона внешней зоны, используемая для внутренней части шлюза. Компьютеры достаточно надежны, и доступны некоторые дополнительные услуги.
- dmz: используется для компьютеров, расположенных в DMZ (изолированные компьютеры, которые не будут иметь доступа к остальной части вашей сети). Разрешены только определенные входящие подключения.
- work: Используется для рабочих машин. Доверяйте большинству компьютеров в сети. Могут быть разрешены еще несколько сервисов.
- дом: домашняя обстановка. Как правило, это означает, что вы доверяете большинству других компьютеров и принимаете еще несколько служб.
- доверенный: доверять всем компьютерам в сети. Самый открытый из доступных вариантов, и его следует использовать с осторожностью.
Чтобы использовать брандмауэр, вы можете создавать правила и изменять свойства своих зон, а затем назначать свои сетевые интерфейсы наиболее подходящим зонам.
Постоянство правила
В firewalld правила можно применять к текущему набору правил среды выполнения или сделать постоянными. Когда правило добавляется или изменяется, по умолчанию изменяется только работающий в данный момент брандмауэр. После следующей перезагрузки — или перезагрузки службы firewalld
— останутся только постоянные правила.
Большинство операций firewall-cmd
могут принимать флаг --permanent
, указывающий, что изменения должны быть применены к постоянной конфигурации. Кроме того, текущий работающий брандмауэр можно сохранить в постоянной конфигурации с помощью команды firewall-cmd --runtime-to-permanent
.
Это разделение среды выполнения и постоянной конфигурации означает, что вы можете безопасно протестировать правила в активном брандмауэре, а затем перезагрузить систему, чтобы начать заново, если возникнут проблемы.
Шаг 2 — Установка и включение firewalld
firewalld
устанавливается по умолчанию в некоторых дистрибутивах Linux, включая многие развертывания Rocky Linux. Однако вам может понадобиться установить firewalld самостоятельно. Вы можете сделать это с помощью менеджера пакетов Rocky dnf
:
- sudo dnf install firewalld -y
После установки firewalld
вам необходимо включить службу с помощью systemctl
. Имейте в виду, что включение firewalld приведет к запуску службы при загрузке. Лучше всего создать свои правила брандмауэра и воспользоваться возможностью протестировать их, все еще входя в систему через SSH, чтобы избежать потенциальных проблем.
- sudo systemctl enable firewalld
- sudo systemctl start firewalld
Вы можете убедиться, что служба работает и доступна, набрав:
- sudo firewall-cmd --state
Outputrunning
Это означает, что ваш брандмауэр запущен и работает с конфигурацией по умолчанию. Прежде чем вносить дальнейшие изменения, вам следует ознакомиться со средой по умолчанию и правилами, предоставляемыми firewalld.
Изучение значений по умолчанию
Вы можете увидеть, какая зона в данный момент выбрана по умолчанию, запустив firewall-cmd --get-default-zone
:
- firewall-cmd --get-default-zone
Outputpublic
Поскольку вы не дали firewalld никаких команд для отклонения от зоны по умолчанию, и ни один из ваших интерфейсов не настроен для привязки к другой зоне, эта зона также будет единственной активной зоной (зоной, которая контролирует трафик для наших интерфейсов). . Вы можете убедиться в этом, запустив firewall-cmd --get-active-zones
:
- firewall-cmd --get-active-zones
Outputpublic
interfaces: eth0 eth1
Здесь вы можете видеть, что ваш пример сервера имеет два сетевых интерфейса, контролируемых брандмауэром (eth0
и eth1
). Оба они в настоящее время управляются в соответствии с правилами, определенными для публичной зоны.
Вы можете распечатать правила, привязанные к конфигурации зоны по умолчанию, используя firewall-cmd --list-all
:
- sudo firewall-cmd --list-all
Outputpublic (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Из вывода видно, что эта зона является и активной, и стандартной, и что интерфейсы eth0
и eth1
связаны с этой зоной. Из строки services:
также видно, что эта зона разрешает трафик для DHCP-клиента (для назначения IP-адреса), SSH (для удаленного администрирования) и Cockpit (веб-консоль).
Изучение альтернативных зон
Вы можете узнать информацию и о других зонах.
Чтобы получить список доступных зон, запустите firewall-cmd --get-zones
:
- firewall-cmd --get-zones
Outputblock dmz drop external home internal nm-shared public trusted work
Вы можете увидеть конкретную конфигурацию, связанную с зоной, включив параметр --zone=
в команду --list-all
:
- sudo firewall-cmd --zone=home --list-all
Outputhome
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client mdns samba-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Вы можете вывести все определения зон, используя параметр --list-all-zones
. Далее вы узнаете о назначении зон сетевым интерфейсам.
Шаг 3 — Выбор зон для ваших интерфейсов
Если вы не настроили свои сетевые интерфейсы иначе, каждый интерфейс будет помещен в зону по умолчанию при запуске брандмауэра.
Изменение зоны интерфейса
Вы можете перемещать интерфейс между зонами во время сеанса, используя параметр --zone=
в сочетании с параметром --change-interface=
. Как и для всех команд, которые изменяют брандмауэр, вам нужно будет использовать sudo
.
Например, вы можете переместить свой интерфейс eth0
в домашнюю зону:
- sudo firewall-cmd --zone=home --change-interface=eth0
Outputsuccess
Примечание. Всякий раз, когда вы перемещаете интерфейс в новую зону, помните, что вы изменяете, какие службы будут работать. В этом случае вы переезжаете в домашнюю зону, где доступен SSH. Это означает, что ваше соединение не должно прерываться. В некоторых других зонах SSH не включен по умолчанию, и переключение на одну из этих зон может привести к разрыву соединения, что не позволит вам снова войти на сервер.
Вы можете убедиться, что это было успешно, снова проверив активные зоны:
- firewall-cmd --get-active-zones
Outputhome
interfaces: eth0
public
interfaces: eth1
Настройка зоны по умолчанию
Если все ваши интерфейсы могут быть хорошо обработаны одной предопределенной зоной, вам следует назначить эту зону зоной по умолчанию. Вы можете изменить зону по умолчанию с помощью параметра --set-default-zone=
. Это немедленно изменит любой интерфейс, используя зону по умолчанию:
- sudo firewall-cmd --set-default-zone=home
Outputsuccess
Шаг 4 — Установка правил для ваших приложений
Давайте рассмотрим способы определения исключений брандмауэра.
Добавление службы в ваши зоны
Самый простой способ — добавить нужные вам сервисы или порты в зоны, которые вы используете. Вы можете получить список доступных определений служб, используя параметр --get-services
команды firewall-cmd
:
- firewall-cmd --get-services
OutputRH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-api kube-apiserver kube-control-plane kube-controller-manager kube-scheduler kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd netbios-ns nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wireguard wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
Примечание. Дополнительные сведения о каждой из этих служб можно найти в соответствующем файле .xml
в каталоге /usr/lib/firewalld/services
. Например, служба SSH определяется следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
Вы можете включить службу для зоны с помощью параметра --add-service=
. Операция будет нацелена на зону по умолчанию или любую зону, указанную параметром --zone=
. По умолчанию это настраивает только текущий сеанс брандмауэра и не сохраняется после перезапуска или перезагрузки службы. Вы можете настроить постоянную конфигурацию брандмауэра, включив флаг --permanent
.
Например, если вы используете веб-сервер, обслуживающий обычный HTTP-трафик, вы можете временно разрешить этот трафик для интерфейсов в вашей общедоступной зоне:
- sudo firewall-cmd --zone=public --add-service=http
Вы можете опустить флаг --zone=
, чтобы изменить зону по умолчанию. Вы можете проверить успешность операции с помощью операций --list-all
или --list-services
:
- sudo firewall-cmd --zone=public --list-services
Outputcockpit dhcpv6-client http ssh
После того, как вы проверили, что все работает как надо, вы можете изменить постоянные правила брандмауэра, чтобы ваша служба по-прежнему была доступна после перезагрузки. Вы можете сделать предыдущую команду постоянной, добавив флаг --permanent
:
- sudo firewall-cmd --zone=public --add-service=http --permanent
Outputsuccess
В качестве альтернативы вы можете использовать флаг --runtime-to-permanent
, чтобы сохранить текущую конфигурацию брандмауэра в постоянной конфигурации:
- sudo firewall-cmd --runtime-to-permanent
Будьте осторожны с этой опцией, так как все изменения, внесенные в работающий брандмауэр, будут зафиксированы навсегда.
Какой бы метод вы ни выбрали, вы можете убедиться, что он был успешным, добавив флаг --permanent
в операцию --list-services
. Вам нужно использовать sudo
для любых операций --permanent
:
- sudo firewall-cmd --zone=public --list-services --permanent
Outputcockpit dhcpv6-client http ssh
Ваша публичная зона теперь разрешает веб-трафик HTTP через порт 80. Если ваш веб-сервер настроен на использование SSL/TLS, вам также необходимо добавить службу https
. Вы можете добавить это к текущему сеансу и постоянному набору правил, набрав:
- sudo firewall-cmd --zone=public --add-service=https
- sudo firewall-cmd --zone=public --add-service=https --permanent
Службы, включенные в установку firewalld, представляют многие из наиболее распространенных приложений, к которым вам может потребоваться разрешить доступ. Однако, вероятно, будут сценарии, в которых эти службы не будут соответствовать вашим требованиям.
В этой ситуации у вас есть два варианта.
Открытие порта для ваших зон
Самый простой способ добавить поддержку для вашего конкретного приложения — открыть порты, которые оно использует, в соответствующей зоне (зонах). Это делается путем указания порта или диапазона портов и соответствующего протокола (TCP или UDP) для портов.
Например, если ваше приложение работает на порту 5000 и использует TCP, вы можете временно добавить его в зону public
с помощью параметра --add-port=
. Протоколы могут быть обозначены как tcp
или udp
:
- sudo firewall-cmd --zone=public --add-port=5000/tcp
Outputsuccess
Вы можете убедиться, что это было успешно, используя операцию --list-ports
:
- sudo firewall-cmd --zone=public --list-ports
Output5000/tcp
Также можно указать последовательный диапазон портов, разделив начальный и конечный порты в диапазоне тире. Например, если ваше приложение использует порты UDP с 4990 по 4999, вы можете открыть их для всех, набрав:
- sudo firewall-cmd --zone=public --add-port=4990-4999/udp
После тестирования вы можете добавить их в постоянный брандмауэр. Используйте sudo firewall-cmd --runtime-to-permanent
или повторно запустите команды с флагом --permanent
:
- sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
- sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
- sudo firewall-cmd --zone=public --permanent --list-ports
Outputsuccess
success
5000/tcp 4990-4999/udp
Определение службы
Открытие портов для ваших зон — это простое решение, но может быть сложно отслеживать, для чего используется каждый из них. Если вы когда-нибудь отключите службу на своем сервере, вам может быть трудно каталогизировать, какие открытые порты все еще требуются. Чтобы избежать этой ситуации, вы можете определить новую службу.
Службы — это наборы портов со связанным именем и описанием. Управление брандмауэром с помощью служб, как правило, проще в сопровождении, чем сопоставление портов, но требует некоторой первоначальной настройки. Вы можете начать с копирования существующего скрипта из /usr/lib/firewalld/services
в каталог /etc/firewalld/services
, где брандмауэр ищет нестандартные определения.
Например, вы можете скопировать определение службы SSH, чтобы использовать его в качестве примера определения службы, как это. Имя службы в списке служб брандмауэра будет именем этого файла за вычетом суффикса .xml
:
- sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml
Откройте файл с помощью vi
или вашего любимого текстового редактора:
- sudo vi /etc/firewalld/services/example.xml
Для начала файл будет содержать скопированное вами определение SSH:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
Большая часть этого определения на самом деле является метаданными. Вы должны изменить короткое имя службы в тегах <short>
. Это удобочитаемое имя для вашего сервиса. Вы также должны добавить описание, чтобы у вас было больше информации, если вам когда-нибудь понадобится проверить службу. Единственная конфигурация, которую вам нужно сделать, которая действительно влияет на функциональность службы, вероятно, будет определением порта, где вы указываете номер порта и протокол для открытия. Можно указать несколько тегов
.
Для службы example
представьте, что вам нужно открыть порт 7777 для TCP и 8888 для UDP. Вы можете изменить существующее определение примерно так:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Example Service</short>
<description>This is just an example service. It probably shouldn't be used on a real system.</description>
<port protocol="tcp" port="7777"/>
<port protocol="udp" port="8888"/>
</service>
Сохраните и закройте файл.
Перезагрузите брандмауэр, чтобы получить доступ к новой службе:
- sudo firewall-cmd --reload
Вы можете видеть, что теперь он находится в списке доступных сервисов:
- firewall-cmd --get-services
OutputRH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server example finger foreman foreman-proxy freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp galera ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-api kube-apiserver kube-control-plane kube-controller-manager kube-scheduler kubelet-worker ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nbd netbios-ns nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rquotad rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wireguard wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
Теперь вы можете использовать эту услугу в своих зонах, как обычно.
Шаг 5 — Создание собственных зон
Хотя предопределенные зоны должны работать для большинства пользователей, может быть полезно определить свои собственные зоны, которые лучше описывают их функции.
Например, вам может понадобиться создать зону для вашего веб-сервера с именем publicweb
. Однако вам может потребоваться настроить другую зону для службы DNS, которую вы предоставляете в своей частной сети. Для этого вы можете создать другую зону с именем privateDNS
.
При добавлении зоны вы должны добавить ее в постоянную конфигурацию брандмауэра. Затем вы можете перезагрузить, чтобы перенести конфигурацию в текущий сеанс. Например, вы можете создать эти две зоны, используя firewall-cmd –new-zone
:
- sudo firewall-cmd --permanent --new-zone=publicweb
- sudo firewall-cmd --permanent --new-zone=privateDNS
Вы можете убедиться, что они присутствуют в вашей постоянной конфигурации, набрав:
- sudo firewall-cmd --permanent --get-zones
Outputblock dmz drop external home internal nm-shared privateDNS public publicweb trusted work
Перезагрузите брандмауэр, чтобы включить эти новые зоны в активную конфигурацию времени выполнения:
- sudo firewall-cmd --reload
- firewall-cmd --get-zones
Outputblock dmz drop external home internal nm-shared privateDNS public publicweb trusted work
Теперь вы можете приступить к назначению соответствующих служб и портов вашим зонам. Обычно рекомендуется настроить брандмауэр времени выполнения, а затем сохранить эти изменения в постоянной конфигурации после тестирования. Например, для зоны publicweb
можно добавить службы SSH, HTTP и HTTPS:
- sudo firewall-cmd --zone=publicweb --add-service=ssh
- sudo firewall-cmd --zone=publicweb --add-service=http
- sudo firewall-cmd --zone=publicweb --add-service=https
- sudo firewall-cmd --zone=publicweb --list-all
Outputpublicweb
target: default
icmp-block-inversion: no
interfaces:
sources:
services: http https ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Затем вы можете добавить службу DNS в свою зону privateDNS
:
- sudo firewall-cmd --zone=privateDNS --add-service=dns
- sudo firewall-cmd --zone=privateDNS --list-all
OutputprivateDNS
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dns
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Затем вы можете изменить наши интерфейсы на эти новые зоны, чтобы протестировать их:
- sudo firewall-cmd --zone=publicweb --change-interface=eth0
- sudo firewall-cmd --zone=privateDNS --change-interface=eth1
На этом этапе у вас есть возможность протестировать вашу конфигурацию. Если эти значения подходят для вас, вы должны добавить эти правила в постоянную конфигурацию. Вы можете сделать это, снова запустив все команды с добавленным флагом --permanent
, но в этом случае вы будете использовать флаг --runtime-to-permanent
для навсегда сохраните всю конфигурацию времени выполнения:
- sudo firewall-cmd --runtime-to-permanent
После постоянного применения этих правил перезагрузите брандмауэр, чтобы убедиться, что изменения остались:
- sudo firewall-cmd --reload
Убедитесь, что были назначены правильные зоны:
- firewall-cmd --get-active-zones
OutputprivateDNS
interfaces: eth1
publicweb
interfaces: eth0
И убедитесь, что соответствующие службы доступны для обеих зон:
- sudo firewall-cmd --zone=publicweb --list-services
Outputhttp https ssh
- sudo firewall-cmd --zone=privateDNS --list-services
Outputdns
Вы успешно настроили собственные зоны! Чтобы сделать одну из этих зон по умолчанию для других интерфейсов, не забудьте настроить это поведение с помощью параметра --set-default-zone=
:
- sudo firewall-cmd --set-default-zone=publicweb
Заключение
Теперь у вас должно быть достаточно полное представление о том, как администрировать службу firewalld в вашей системе Rocky Linux для повседневного использования.
Служба firewalld позволяет вам настраивать поддерживаемые правила и наборы правил, учитывающие вашу сетевую среду. Это позволяет вам плавно переходить между различными политиками брандмауэра с помощью зон. Приобретение практических знаний об этой системе позволит вам воспользоваться преимуществами гибкости и мощности, которые предоставляет этот инструмент.
Для получения дополнительной информации о firewalld см. официальную документацию firewalld.