Rocky Linux 9 で firewalld を使用してファイアウォールを設定する方法
序章
iptables パケット フィルタリング システム。
このガイドでは、Rocky Linux 9 サーバー用に firewalld
ファイアウォールを設定する方法を確認し、firewall-cmd
管理ツールを使用してファイアウォールを管理する基本について説明します。 .
前提条件
このチュートリアルを完了するには、Rocky Linux 9 を実行するサーバーが必要です。このサーバーには、root 以外の sudo
が有効なユーザーとしてログインする必要があります。これを設定するには、Rocky Linux 9 ガイドの初期サーバー設定を参照してください。
ステップ 1 — firewalld のコアコンセプトを確認する
firewall-cmd
ユーティリティを実際に使用してファイアウォール構成を管理する方法を確認する前に、このツールが導入するいくつかの概念について理解する必要があります。
ゾーン
firewalld
デーモンは、ゾーン と呼ばれるエンティティを使用してルールのグループを管理します。ゾーンは、ネットワーク内での信頼レベルに応じて、どのトラフィックを許可するかを決定する一連のルールです。ファイアウォールが許可する動作を指示するために、ネットワーク インターフェイスがゾーンに割り当てられます。
ネットワーク間を頻繁に移動する可能性のあるコンピューター (ラップトップなど) の場合、この種の柔軟性により、環境に応じてルールを変更することができます。パブリック Wi-Fi ネットワークで操作するときはほとんどのトラフィックを禁止する厳格なルールを設定し、ホーム ネットワークに接続するときはより緩やかな制限を許可する場合があります。サーバーの場合、これらのゾーンは多くの場合それほど重要ではありません。これは、ネットワーク環境が変更されることはほとんどないためです。
ネットワーク環境がどれほど動的であっても、firewalld
の事前定義された各ゾーンの背後にある一般的な考え方を理解しておくと役に立ちます。 firewalld
内の定義済みゾーンは、信頼度の低いものから順に次のとおりです。
- drop: 最低レベルの信頼。すべての着信接続は応答なしでドロップされ、発信接続のみが可能になります。
- ブロック: 上記と同様ですが、接続をドロップする代わりに、着信要求は
icmp-host-prohibited
またはicmp6-adm-prohibited
メッセージで拒否されます。< /li> - public: 公共の信頼できないネットワークを表します。他のコンピュータを信頼していませんが、ケースバイケースで選択した受信接続を許可する場合があります。
- external: ファイアウォールをゲートウェイとして使用している場合の外部ネットワーク。 NAT マスカレード用に構成されているため、内部ネットワークはプライベートのままですが到達可能です。
- internal: 外部ゾーンの反対側で、ゲートウェイの内部部分に使用されます。コンピュータはかなり信頼できるものであり、いくつかの追加サービスが利用可能です。
- dmz: DMZ (ネットワークの他の部分にアクセスできない隔離されたコンピューター) にあるコンピューターに使用されます。特定の着信接続のみが許可されます。
- work: 作業機械に使用されます。ネットワーク内のほとんどのコンピューターを信頼します。さらにいくつかのサービスが許可される可能性があります。
- home: 家庭環境。一般に、他のコンピューターのほとんどを信頼しており、さらにいくつかのサービスが受け入れられることを意味します。
- trusted: ネットワーク内のすべてのマシンを信頼します。利用可能なオプションの中で最もオープンであり、慎重に使用する必要があります。
ファイアウォールを使用するには、ルールを作成し、ゾーンのプロパティを変更してから、ネットワーク インターフェイスを最も適切なゾーンに割り当てます。
ルールの永続性
firewalld では、ルールを現在のランタイムルールセットに適用するか、永続にすることができます。ルールが追加または変更されると、既定では、現在実行中のファイアウォールのみが変更されます。次回の再起動後 (または firewalld
サービスの再読み込み後) には、永続的なルールのみが残ります。
ほとんどの firewall-cmd
操作は --permanent
フラグを使用して、変更を永続的な構成に適用する必要があることを示すことができます。さらに、現在実行中のファイアウォールは、firewall-cmd --runtime-to-permanent
コマンドを使用して永続的な構成に保存できます。
このランタイム構成と永続構成の分離は、アクティブなファイアウォールでルールを安全にテストし、問題がある場合はリロードして最初からやり直すことができることを意味します。
ステップ 2 — firewalld のインストールと有効化
firewalld
は、Rocky Linux の多くのデプロイメントを含む一部の 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
ここでは、サンプル サーバーに 2 つのネットワーク インターフェイスがあり、ファイアウォールによって制御されていることがわかります (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 (リモート管理用)、およびコックピット (Web ベースのコンソール) のトラフィックを許可していることもわかります。
代替ゾーンの探索
他のゾーンに関する情報も確認できます。
利用可能なゾーンのリストを取得するには、firewall-cmd --get-zones
を実行します:
- firewall-cmd --get-zones
Outputblock dmz drop external home internal nm-shared public trusted work
--list-all
コマンドに --zone=
パラメータを含めることで、ゾーンに関連付けられた特定の構成を確認できます。
- 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
デフォルトゾーンの調整
すべてのインターフェイスが 1 つの定義済みゾーンで適切に処理できる場合は、そのゾーンをデフォルトとして指定する必要があります。 --set-default-zone=
パラメータを使用してデフォルト ゾーンを変更できます。これにより、デフォルト ゾーンを使用するインターフェイスがすぐに変更されます。
- sudo firewall-cmd --set-default-zone=home
Outputsuccess
ステップ 4 — アプリケーションのルールを設定する
ファイアウォールの例外を定義する方法を見ていきましょう。
ゾーンへのサービスの追加
最も簡単な方法は、使用しているゾーンに必要なサービスまたはポートを追加することです。 firewall-cmd
の --get-services
オプションを使用して、利用可能なサービス定義のリストを取得できます。
- 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
注: これらの各サービスの詳細については、/usr/lib/firewalld/services
ディレクトリ内の関連する .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>
--add-service=
パラメータを使用して、ゾーンのサービスを有効にすることができます。この操作は、デフォルト ゾーン、または --zone=
パラメータで指定されたゾーンを対象とします。デフォルトでは、これは現在のファイアウォール セッションのみを調整し、サービスの再起動または再起動後は維持されません。 --permanent
フラグを含めることで、永続的なファイアウォール構成を調整できます。
たとえば、従来の HTTP トラフィックを処理する Web サーバーを実行している場合、パブリック ゾーンのインターフェイスに対してこのトラフィックを一時的に許可できます。
- 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
操作に追加することで、成功したことを確認できます。 --permanent
操作には sudo
を使用する必要があります。
- sudo firewall-cmd --zone=public --list-services --permanent
Outputcockpit dhcpv6-client http ssh
これで、パブリック ゾーンはポート 80 で HTTP Web トラフィックを許可します。Web サーバーが SSL/TLS を使用するように構成されている場合は、https
サービスも追加する必要があります。次のように入力して、それを現在のセッションと永続的なルールセットに追加できます。
- sudo firewall-cmd --zone=public --add-service=https
- sudo firewall-cmd --zone=public --add-service=https --permanent
firewalld のインストールに含まれるサービスは、アクセスを許可する必要がある最も一般的なアプリケーションの多くを表しています。ただし、これらのサービスが要件に合わないシナリオもあるでしょう。
この状況では、2 つのオプションがあります。
ゾーンのポートを開く
特定のアプリケーションのサポートを追加する最も簡単な方法は、適切なゾーンで使用するポートを開くことです。これは、ポートまたはポート範囲、およびポートに関連付けられたプロトコル (TCP または UDP) を指定することによって行われます。
たとえば、アプリケーションがポート 5000 で実行され、TCP を使用している場合、--add-port=
パラメータを使用して、これを一時的に public
ゾーンに追加できます。プロトコルは、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
サービスで、TCP 用に 7777、UDP 用に 8888 を開く必要があるとします。次のような方法で既存の定義を変更できます。
<?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
という Web サーバー用のゾーンを作成する必要がある場合があります。ただし、プライベート ネットワークで提供する DNS サービス用に別のゾーンを構成する必要がある場合があります。そのために、privateDNS
という別のゾーンを作成できます。
ゾーンを追加するときは、恒久的なファイアウォール構成に追加する必要があります。その後、リロードして、実行中のセッションに構成を取り込むことができます。たとえば、firewall-cmd –new-zone
を使用してこれら 2 つのゾーンを作成できます。
- 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
独自のゾーンの設定に成功しました!これらのゾーンの 1 つを他のインターフェースのデフォルトにするには、 --set-default-zone=
パラメーターを使用してその動作を構成することを忘れないでください。
- sudo firewall-cmd --set-default-zone=publicweb
結論
これで、日常的に使用する Rocky Linux システムで firewalld サービスを管理する方法を十分に理解できたはずです。
firewalld サービスを使用すると、ネットワーク環境を考慮した保守可能なルールとルールセットを構成できます。ゾーンを使用して、異なるファイアウォール ポリシー間をシームレスに移行できます。このシステムの実用的な知識を習得すると、このツールが提供する柔軟性と機能を利用できるようになります。
firewalld の詳細については、firewalld の公式ドキュメントを参照してください。