序章

firewalld は、多くのLinuxディストリビューションで利用可能なファイアウォール管理ソフトウェアであり、Linuxのカーネル内nftablesまたはiptablesパケットフィルタリングシステムのフロントエンドとして機能します。

このガイドでは、CentOS 8サーバーにファイアウォールファイアウォールを設定する方法を示し、firewall-cmd管理ツールを使用したファイアウォール管理の基本について説明します。

前提条件

このチュートリアルを完了するには、CentOS8を実行しているサーバーが必要です。 root sudoが有効になっていないユーザーとしてこのサーバーにログインしていると想定します。 これを設定するには、 CentOS8の初期サーバー設定ガイドを参照してください。

Firewalldの基本概念

firewall-cmdユーティリティを実際に使用してファイアウォール構成を管理する方法について説明する前に、ツールが導入するいくつかの概念について理解しておく必要があります。

ゾーン

firewalldデーモンは、zoneと呼ばれるエンティティを使用してルールのグループを管理します。 ゾーンは、ネットワークに対する信頼のレベルに応じて許可するトラフィックを指示する一連のルールです。 ネットワークインターフェイスは、ファイアウォールが許可する動作を指示するためにゾーンに割り当てられます。

ネットワーク間を頻繁に移動する可能性のあるコンピューター(ラップトップなど)の場合、この種の柔軟性は、環境に応じてルールを変更するための優れた方法を提供します。 パブリックWiFiネットワークで動作しているときはほとんどのトラフィックを禁止し、ホームネットワークに接続しているときはより緩和された制限を許可するという厳格なルールがある場合があります。 サーバーの場合、ネットワーク環境が変更されることはめったにないため、これらのゾーンはそれほど重要ではないことがよくあります。

ネットワーク環境がどれほど動的であるかに関係なく、firewalldの事前定義された各ゾーンの背後にある一般的な考え方に精通していると便利です。 firewalld内の事前定義されたゾーンは、最も信頼されていないから最も信頼されているの順になります。

  • drop :最低レベルの信頼。 すべての着信接続は応答なしでドロップされ、発信接続のみが可能です。
  • block :上記と同様ですが、単に接続をドロップする代わりに、着信要求はicmp-host-prohibitedまたはicmp6-adm-prohibitedメッセージで拒否されます。
  • public :信頼できないパブリックネットワークを表します。 他のコンピュータを信頼していませんが、ケースバイケースで選択された着信接続を許可する場合があります。
  • external :ファイアウォールをゲートウェイとして使用している場合の外部ネットワーク。 内部ネットワークはプライベートのままですが到達可能であるように、NATマスカレード用に構成されています。
  • internal :ゲートウェイの内部部分に使用される、外部ゾーンの反対側。 コンピュータはかなり信頼でき、いくつかの追加サービスが利用可能です。
  • dmz :DMZにあるコンピューター(ネットワークの他の部分にアクセスできない分離されたコンピューター)に使用されます。 特定の着信接続のみが許可されます。
  • work :作業機械に使用されます。 ネットワーク内のほとんどのコンピューターを信頼します。 さらにいくつかのサービスが許可される場合があります。
  • home :ホーム環境。 これは通常、他のほとんどのコンピューターを信頼し、さらにいくつかのサービスが受け入れられることを意味します。
  • trusted :ネットワーク内のすべてのマシンを信頼します。 利用可能なオプションの中で最もオープンであり、慎重に使用する必要があります。

ファイアウォールを使用するには、ルールを作成してゾーンのプロパティを変更してから、ネットワークインターフェイスを最も適切なゾーンに割り当てることができます。

ルールの永続性

Firewalldでは、ルールを現在のランタイムルールセットに適用することも、パーマネントにすることもできます。 ルールが追加または変更されると、デフォルトでは、現在実行中のファイアウォールのみが変更されます。 次の再起動後、またはfirewalldサービスのリロード後、永続的なルールのみが残ります。

ほとんどのfirewall-cmd操作は、--permanentフラグを取り、変更を永続的な構成に適用する必要があることを示します。 さらに、現在実行中のファイアウォールは、firewall-cmd --runtime-to-permanentコマンドを使用して永続的な構成に保存できます。

このランタイム構成と永続構成の分離は、アクティブなファイアウォールでルールを安全にテストし、問題が発生した場合にリロードして最初からやり直すことができることを意味します。

Firewalldのインストールと有効化

firewalldは、CentOS 8の多くのイメージを含む、一部のLinuxディストリビューションにデフォルトでインストールされます。 ただし、firewalldを自分でインストールする必要がある場合があります。

  1. sudo dnf install firewalld

firewalldをインストールした後、サービスを有効にしてサーバーを再起動できます。 Firewalldを有効にすると、起動時にサービスが起動することに注意してください。 潜在的な問題を回避するために、ファイアウォールルールを作成し、この動作を構成する前にそれらをテストする機会を利用することをお勧めします。

  1. sudo systemctl enable firewalld
  2. sudo systemctl start firewalld

サーバーが再起動したら、ファイアウォールを起動し、ネットワークインターフェイスを構成したゾーンに配置し(または構成済みのデフォルトゾーンにフォールバックし)、ゾーンに関連付けられているルールを関連付けられたゾーンに適用します。インターフェイス。

次のように入力することで、サービスが実行され、到達可能であることを確認できます。

  1. sudo firewall-cmd --state
Output
running

これは、ファイアウォールがデフォルト構成で稼働していることを示しています。

現在のファイアウォールルールに精通する

変更を加える前に、firewalldが提供するデフォルトの環境とルールをよく理解しておく必要があります。

デフォルトの調査

次のように入力すると、現在デフォルトとして選択されているゾーンを確認できます。

  1. firewall-cmd --get-default-zone
Output
public

デフォルトゾーンから逸脱するコマンドをfirewalldに指定しておらず、どのインターフェイスも別のゾーンにバインドするように構成されていないため、そのゾーンは唯一のアクティブゾーン(制御しているゾーン)にもなります。インターフェイスのトラフィック)。 次のように入力することで確認できます。

  1. firewall-cmd --get-active-zones
Output
public interfaces: eth0 eth1

ここでは、サンプルサーバーにファイアウォールによって制御されている2つのネットワークインターフェイス(eth0eth1)があることがわかります。 現在、どちらもpublicゾーンで定義されているルールに従って管理されています。

public ゾーンに関連付けられているルールをどのようにして知ることができますか? 次のように入力すると、デフォルトのゾーンの構成を印刷できます。

  1. sudo firewall-cmd --list-all
Output
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

出力から、このゾーンがデフォルトでアクティブであり、eth0およびeth1インターフェイスがこのゾーンに関連付けられていることがわかります(これは以前の問い合わせからすでにわかっています) 。 ただし、このゾーンでは、DHCPクライアント(IPアドレス割り当て用)、SSH(リモート管理用)、およびコックピット(Webベースのコンソール)のトラフィックが許可されていることもわかります。

代替ゾーンの探索

これで、デフォルトゾーンとアクティブゾーンの構成についての良いアイデアが得られました。 他のゾーンに関する情報も見つけることができます。

使用可能なゾーンのリストを取得するには、次のように入力します。

  1. firewall-cmd --get-zones
Output
block dmz drop external home internal public trusted work

--list-allコマンドに--zone=パラメーターを含めることで、ゾーンに関連付けられた特定の構成を確認できます。

  1. sudo firewall-cmd --zone=home --list-all
Output
home target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

--list-all-zonesオプションを使用すると、すべてのゾーン定義を出力できます。 見やすくするために、出力をページャーにパイプすることをお勧めします。

  1. sudo firewall-cmd --list-all-zones | less

次に、ゾーンをネットワークインターフェイスに割り当てる方法について説明します。

インターフェイスのゾーンの選択

ネットワークインターフェイスを別の方法で構成していない限り、ファイアウォールの開始時に各インターフェイスはデフォルトゾーンに配置されます。

インターフェイスのゾーンの変更

--zone=パラメーターを--change-interface=パラメーターと組み合わせて使用することにより、セッション中にゾーン間でインターフェースを移動できます。 ファイアウォールを変更するすべてのコマンドと同様に、sudoを使用する必要があります。

たとえば、次のように入力して、eth0インターフェイスをhomeゾーンに移動できます。

  1. sudo firewall-cmd --zone=home --change-interface=eth0
Output
success

注:インターフェースを新しいゾーンに移動するときは常に、動作するサービスを変更している可能性があることに注意してください。 たとえば、ここではSSHが利用可能なhomeゾーンに移動しています。 これは、接続が切断されてはならないことを意味します。 他の一部のゾーンでは、デフォルトでSSHが有効になっておらず、これらのゾーンの1つに切り替えると、接続が切断され、サーバーに再度ログインできなくなる可能性があります。

アクティブゾーンを再度要求することで、これが成功したことを確認できます。

  1. firewall-cmd --get-active-zones
Output
home interfaces: eth0 public interfaces: eth1

デフォルトゾーンの調整

すべてのインターフェイスを単一のゾーンで適切に処理できる場合は、最適なゾーンをデフォルトとして指定し、それを構成に使用するのがおそらく最も簡単です。

--set-default-zone=パラメータを使用してデフォルトゾーンを変更できます。 これにより、デフォルトゾーンを使用するインターフェイスがすぐに変更されます。

  1. sudo firewall-cmd --set-default-zone=home
Output
success

アプリケーションのルールを設定する

利用可能にしたいサービスのファイアウォール例外を定義する基本的な方法を実行してみましょう。

ゾーンへのサービスの追加

最も簡単な方法は、使用しているゾーンに必要なサービスまたはポートを追加することです。 --get-servicesオプションを使用すると、使用可能なサービス定義のリストを取得できます。

  1. firewall-cmd --get-services
Output
RH-Satellite-6 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 condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp 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 ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql 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 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 tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

注:これらの各サービスの詳細については、/usr/lib/firewalld/servicesディレクトリ内の関連する.xmlファイルを参照してください。 たとえば、SSHサービスは次のように定義されます。

/usr/lib/firewalld/services/ssh.xml
<?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サーバーを実行している場合、次のように入力することで、publicゾーンのインターフェイスでこのトラフィックを一時的に許可できます。

  1. sudo firewall-cmd --zone=public --add-service=http

デフォルトゾーンを変更する場合は、--zone=フラグを省略できます。 --list-allまたは--list-services操作を使用して、操作が成功したことを確認できます。

  1. sudo firewall-cmd --zone=public --list-services
Output
cockpit dhcpv6-client http ssh

すべてが正常に機能していることをテストしたら、再起動後もサービスを利用できるように、永続的なファイアウォールルールを変更することをお勧めします。 再入力して--permanentフラグを追加することにより、以前の変更を永続的にすることができます。

  1. sudo firewall-cmd --zone=public --add-service=http --permanent
Output
success

または、--runtime-to-permanentフラグを使用して、現在実行中のファイアウォール構成を永続的な構成に保存することもできます。

  1. sudo firewall-cmd --runtime-to-permanent

実行中のファイアウォールに加えられたすべての変更は永続的にコミットされるため、これには注意してください。

どちらの方法を選択した場合でも、--permanentフラグを--list-services操作に追加することで、成功したことを確認できます。 --permanentの操作には、sudoを使用する必要があります。

  1. sudo firewall-cmd --zone=public --list-services --permanent
Output
cockpit dhcpv6-client http ssh

これで、publicゾーンでポート80でHTTPWebトラフィックが許可されます。 WebサーバーがSSL/TLSを使用するように構成されている場合は、httpsサービスも追加する必要があります。 次のように入力することで、現在のセッションと永続的なルールセットに追加できます。

  1. sudo firewall-cmd --zone=public --add-service=https
  2. sudo firewall-cmd --zone=public --add-service=https --permanent

適切なサービスが利用できない場合はどうなりますか?

Firewalldインストールに含まれているサービスは、アクセスを許可したい最も一般的なアプリケーションの多くを表しています。 ただし、これらのサービスが要件に合わないシナリオが発生する可能性があります。

この状況では、2つのオプションがあります。

ゾーンのポートを開く

特定のアプリケーションのサポートを追加する最も簡単な方法は、適切なゾーンで使用するポートを開くことです。 これは、ポートまたはポート範囲、およびポートに関連付けられたプロトコル(TCPまたはUDP)を指定することによって行われます。

たとえば、アプリケーションがポート5000で実行され、TCPを使用している場合、--add-port=パラメーターを使用して、これをpublicゾーンに一時的に追加できます。 プロトコルは、tcpまたはudpのいずれかとして指定できます。

  1. sudo firewall-cmd --zone=public --add-port=5000/tcp
Output
success

--list-ports操作を使用して、これが成功したことを確認できます。

  1. sudo firewall-cmd --zone=public --list-ports
Output
5000/tcp

範囲内の開始ポートと終了ポートをダッシュで区切ることにより、ポートの順次範囲を指定することもできます。 たとえば、アプリケーションがUDPポート4990〜4999を使用している場合、次のように入力してpublicでこれらを開くことができます。

  1. sudo firewall-cmd --zone=public --add-port=4990-4999/udp

テスト後、これらを永続ファイアウォールに追加することをお勧めします。 sudo firewall-cmd --runtime-to-permanentを使用してこれを行うか、--permanentフラグを指定してコマンドを再実行します。

  1. sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
  2. sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
  3. sudo firewall-cmd --zone=public --permanent --list-ports
Output
success success 5000/tcp 4990-4999/udp

サービスの定義

ゾーンのポートを開くことは簡単な解決策ですが、それぞれの目的を追跡するのは難しい場合があります。 サーバー上のサービスを廃止した場合、開いているポートがまだ必要であるかどうかを思い出すのに苦労する可能性があります。 この状況を回避するために、新しいサービスを定義することができます。

サービスは、名前と説明が関連付けられたポートのコレクションです。 サービスの使用はポートよりも管理が簡単ですが、少し前もって作業する必要があります。 開始する最も簡単な方法は、既存のスクリプト(/usr/lib/firewalld/servicesにあります)を/etc/firewalld/servicesディレクトリにコピーし、ファイアウォールが非標準の定義を探すことです。

たとえば、SSHサービス定義をコピーして、このようなexampleサービス定義に使用できます。 ファイル名から.xmlサフィックスを引いたものが、ファイアウォールサービスリスト内のサービスの名前を示します。

  1. sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

これで、コピーしたファイルにある定義を調整できます。 まず、お気に入りのテキストエディタで開きます。 ここではviを使用します。

  1. sudo vi /etc/firewalld/services/example.xml

まず、ファイルには、コピーしたSSH定義が含まれています。

/etc/firewalld/services/example.xml
<?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>タグ内のサービスの短縮名を変更する必要があります。 これは、サービスの人間が読める名前です。 また、サービスを監査する必要がある場合に詳細情報を入手できるように、説明を追加する必要があります。 サービスの機能に実際に影響を与えるために必要な唯一の構成は、開くポート番号とプロトコルを識別するポート定義である可能性があります。 複数の<port/>タグを指定できます。

example サービスの場合、TCP用にポート7777を開き、UDP用に8888を開く必要があると想像してください。 次のようなもので既存の定義を変更できます。

/etc/firewalld/services/example.xml
<?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>

ファイルを保存して閉じます。

新しいサービスにアクセスするには、ファイアウォールをリロードします。

  1. sudo firewall-cmd --reload

これで、利用可能なサービスのリストに含まれていることがわかります。

  1. firewall-cmd --get-services
Output
RH-Satellite-6 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 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 freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp 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 ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql 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 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 tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

これで、通常どおりにゾーンでこのサービスを使用できます。

独自のゾーンを作成する

事前定義されたゾーンはおそらくほとんどのユーザーにとって十分すぎるでしょうが、それらの機能をより説明する独自のゾーンを定義することは役立つ場合があります。

たとえば、publicwebという名前のWebサーバー用のゾーンを作成したい場合があります。 ただし、プライベートネットワークで提供するDNSサービス用に別のゾーンを構成することをお勧めします。 そのために「privateDNS」と呼ばれるゾーンが必要になる場合があります。

ゾーンを追加するときは、永続的なファイアウォール構成に追加する必要があります。 その後、リロードして構成を実行中のセッションに取り込むことができます。 たとえば、次のように入力して、上記で説明した2つのゾーンを作成できます。

  1. sudo firewall-cmd --permanent --new-zone=publicweb
  2. sudo firewall-cmd --permanent --new-zone=privateDNS

次のように入力して、これらが永続的な構成に存在することを確認できます。

  1. sudo firewall-cmd --permanent --get-zones
Output
block dmz drop external home internal privateDNS public publicweb trusted work

前に述べたように、これらはランタイムファイアウォールではまだ利用できません。

  1. firewall-cmd --get-zones
Output
block dmz drop external home internal public trusted work

ファイアウォールをリロードして、これらの新しいゾーンをアクティブなランタイム構成にします。

  1. sudo firewall-cmd --reload
  2. firewall-cmd --get-zones
Output
block dmz drop external home internal privateDNS public publicweb trusted work

これで、ゾーンへの適切なサービスとポートの割り当てを開始できます。 通常、ランタイムファイアウォールを調整し、テスト後にそれらの変更を永続的な構成に保存することをお勧めします。 たとえば、 publicweb ゾーンの場合、SSH、HTTP、およびHTTPSサービスを追加できます。

  1. sudo firewall-cmd --zone=publicweb --add-service=ssh
  2. sudo firewall-cmd --zone=publicweb --add-service=http
  3. sudo firewall-cmd --zone=publicweb --add-service=https
  4. sudo firewall-cmd --zone=publicweb --list-all
Output
publicweb target: default icmp-block-inversion: no interfaces: sources: services: http https ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

同様に、DNSサービスをprivateDNSゾーンに追加できます。

  1. sudo firewall-cmd --zone=privateDNS --add-service=dns
  2. sudo firewall-cmd --zone=privateDNS --list-all
Output
privateDNS target: default icmp-block-inversion: no interfaces: sources: services: dns ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

次に、インターフェイスをこれらの新しいゾーンに切り替えて、テストします。

  1. sudo firewall-cmd --zone=publicweb --change-interface=eth0
  2. sudo firewall-cmd --zone=privateDNS --change-interface=eth1

この時点で、構成をテストする機会があります。 これらの値が機能する場合は、これらのルールを永続的な構成に追加することをお勧めします。 は、--permanentフラグを追加してすべてのコマンドを再度実行することでこれを行うことができますが、この場合は、--runtime-to-permanentフラグを使用して、ランタイム構成全体を永続的に保存します。 :

  1. sudo firewall-cmd --runtime-to-permanent

これらのルールを永続的に適用した後、ファイアウォールをリロードして、変更が残っていることをテストします。

  1. sudo firewall-cmd --reload

正しいゾーンが割り当てられていることを確認します。

  1. firewall-cmd --get-active-zones
Output
privateDNS interfaces: eth1 publicweb interfaces: eth0

そして、適切なサービスが両方のゾーンで利用可能であることを検証します。

  1. sudo firewall-cmd --zone=publicweb --list-services
Output
http https ssh
  1. sudo firewall-cmd --zone=privateDNS --list-services
Output
dns

独自のゾーンを正常に設定できました。 これらのゾーンの1つを他のインターフェイスのデフォルトにする場合は、--set-default-zone=パラメーターを使用してその動作を構成することを忘れないでください。

  1. sudo firewall-cmd --set-default-zone=publicweb

結論

これで、CentOSシステムでfirewalldサービスを日常的に使用するために管理する方法をかなり完全に理解できたはずです。

Firewalldサービスを使用すると、ネットワーク環境を考慮した保守可能なルールとルールセットを構成できます。 これにより、ゾーンを使用してさまざまなファイアウォールポリシー間をシームレスに移行でき、管理者はポート管理をよりわかりやすいサービス定義に抽象化できます。 このシステムの実用的な知識を習得すると、このツールが提供する柔軟性とパワーを活用できるようになります。

Firewalldの詳細については、公式のfirewalldドキュメントを参照してください。