Red Hat Training

A Red Hat training course is available for RHEL 8

9.3. firewalld でネットワークトラフィックの制御

firewalld パッケージは、事前定義された多数のサービスファイルをインストールし、それらをさらに追加したり、カスタマイズしたりできます。さらに、これらのサービス定義を使用して、サービスが使用するプロトコルとポート番号を知らなくても、サービスのポートを開いたり閉じたりできます。

9.3.1. 緊急時に CLI を使用してすべてのトラフィックの無効化

システムへの攻撃などの緊急な状態にあるとき、すべてのネットワークトラフィックを無効にし、攻撃を遮断できます。

手順

  1. ネットワークトラフィックを直ちに無効にするには、パニックモードをオンにします。

    # firewall-cmd --panic-on
    重要

    パニックモードを有効にすると、ネットワークトラフィックがすべて停止します。したがって、そのマシンへの物理アクセスがある場合、またはシリアルコンソールを使用してログインする場合に限り使用してください。

  2. パニックモードをオフにし、ファイアウォールを永続設定に戻します。パニックモードを無効にするには、次のコマンドを実行します。

    # firewall-cmd --panic-off

検証

  • パニックモードを有効または無効にするには、次のコマンドを実行します。

    # firewall-cmd --query-panic

9.3.2. CLI を使用して事前定義されたサービスでトラフィックの制御

トラフィックを制御する最も簡単な方法は、事前定義したサービスを firewalld に追加する方法です。これにより、必要なすべてのポートが開き、service definition file に従ってその他の設定が変更されます。

手順

  1. サービスが許可されていないことを確認します。

    # firewall-cmd --list-services
    ssh dhcpv6-client
  2. 事前定義したサービスのリストを表示します。

    # firewall-cmd --get-services
    RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry ...
  3. サービスを、許可されたサービスに追加します。

    # firewall-cmd --add-service=<service_name>
  4. 新しい設定を永続化します。

    # firewall-cmd --runtime-to-permanent

9.3.3. GUI を使用して事前定義サービスでトラフィックを制御

グラフィカルユーザーインターフェイスを使用して、事前定義サービスでネットワークトラフィックを制御できます。

前提条件

  • firewall-config パッケージがインストールされている

手順

  1. 事前定義したサービスまたはカスタマイズしたサービスを有効または無効にするには、以下を行います。

    1. firewall-config ツールを起動して、サービスを設定するネットワークゾーンを選択します。
    2. Zones タブを選択してから、下の Services タブを選択します。
    3. 信頼するサービスのタイプごとにチェックボックスをオンにするか、チェックボックスをオフにして、選択したゾーンのサービスをブロックします。
  2. サービスを編集するには、以下を行います。

    1. firewall-config ツールを起動します。
    2. Configuration メニューから Permanent を選択します。Services ウィンドウの下部に、その他のアイコンおよびメニューボタンが表示されます。
    3. 設定するサービスを選択します。

PortsProtocolsSource Port のタブでは、選択したサービスのポート、プロトコル、およびソースポートの追加、変更、ならびに削除が可能です。モジュールタブは、Netfilter ヘルパーモジュールの設定を行います。Destination タブは、特定の送信先アドレスとインターネットプロトコル (IPv4 または IPv6) へのトラフィックが制限できます。

注記

Runtime モードでは、サービス設定を変更できません。

9.3.4. 新しいサービスの追加

サービスは、グラフィカルな firewall-config ツールと、firewall-cmd および firewall-offline-cmd を使用して追加または削除できます。または、/etc/firewalld/services/ にある XML ファイルを編集できます。ユーザーがサービスを追加または変更しないと、対応する XML ファイルが /etc/firewalld/services/ に作成されません。/usr/lib/firewalld/services/ のファイルは、サービスを追加または変更する際にテンプレートとして使用できます。

注記

サービス名は英数字にする必要があります。_ (下線) 文字および - (ハイフン) 文字も使用できます。

手順

firewalld がアクティブでない場合に、ターミナルで新しいサービスを追加するには、firewall-cmd または firewall-offline-cmd を使用します。

  1. 新しい、空のサービスを追加するには、次のコマンドを実行します。

    $ firewall-cmd --new-service=<service_name> --permanent
  2. ローカルファイルを使用して新規サービスを追加するには、次のコマンドを使用します。

    $ firewall-cmd --new-service-from-file=<service_xml_file> --permanent

    --name= <service_name> オプションを追加して、サービス名を変更できます。

  3. サービス設定を変更すると、直ちにサービスの更新コピーが /etc/firewalld/services/ に作成できます。

    root で次のコマンドを実行して、サービスを手動でコピーします。

    # cp /usr/lib/firewalld/services/service-name.xml /etc/firewalld/services/service-name.xml

firewalld は、最初に /usr/lib/firewalld/services のファイルを読み込みます。ファイルは /etc/firewalld/services に置かれ、そのファイルが有効な場合は、/usr/lib/firewalld/services で一致するファイルを上書きします。/usr/lib/firewalld/services で上書きしたファイルは、/etc/firewalld/services で一致するファイルが削除されるとすぐに、もしくはサービスのデフォルトを読み込むように firewalld が求められた場合に使用されます。これに該当するのは永続環境のみです。ランタイム環境でフォールバックさせるには、再読み込みが必要です。

9.3.5. GUI を使用してポートを開く

特定のポートへのファイアウォールを通過するトラフィックを許可する場合は、GUI でポートを開くことができます。

前提条件

  • firewall-config パッケージがインストールされている

手順

  1. firewall-config ツールを起動し、設定を変更するネットワークゾーンを選択します。
  2. 右側の Ports タブを選択し、Add ボタンをクリックします。Port and Protocol ウィンドウが開きます。
  3. 許可するポート番号またはポートの範囲を入力します。
  4. リストから tcp または udp を選択します。

9.3.6. GUI を使用してプロトコルを使用したトラフィックの制御

特定のプロトコルを使用してファイアウォールを経由したトラフィックを許可するには、GUI を使用できます。

前提条件

  • firewall-config パッケージがインストールされている

手順

  1. firewall-config ツールを起動し、設定を変更するネットワークゾーンを選択します。
  2. 右側で Protocols タブを選択し、Add ボタンをクリックします。Protocol ウィンドウが開きます。
  3. リストからプロトコルを選択するか、Other Protocol チェックボックスを選択し、そのフィールドにプロトコルを入力します。

9.3.7. GUI を使用してソースポートを開く

特定ポートからファイアウォールを経由したトラフィックを許可するには、GUI を使用できます。

前提条件

  • firewall-config パッケージがインストールされている

手順

  1. firewall-config ツールを起動し、設定を変更するネットワークゾーンを選択します。
  2. 右側の Source Port タブを選択し、Add ボタンをクリックします。Source Port ウィンドウが開きます。
  3. 許可するポート番号またはポートの範囲を入力します。リストから tcp または udp を選択します。