Red Hat Training

A Red Hat training course is available for RHEL 8

9.7. ファイアウォールゾーンでの作業

ゾーンは、着信トラフィックをより透過的に管理する概念を表しています。ゾーンはネットワークインターフェイスに接続されているか、ソースアドレスの範囲に割り当てられます。各ゾーンは個別にファイアウォールルールを管理しますが、これにより、複雑なファイアウォール設定を定義してトラフィックに割り当てることができます。

9.7.1. 特定のゾーンのファイアウォール設定をカスタマイズすることによるセキュリティーの強化

ファイアウォール設定を変更し、特定のネットワークインターフェイスまたは接続を特定のファイアウォールゾーンに関連付けることで、ネットワークセキュリティーを強化できます。ゾーンの詳細なルールと制限を定義することで、意図したセキュリティーレベルに基づいて受信トラフィックと送信トラフィックを制御できます。

たとえば、次のような利点が得られます。

  • 機密データの保護
  • 不正アクセスの防止
  • 潜在的なネットワーク脅威の軽減

前提条件

  • firewalld サービスが実行している。

手順

  1. 利用可能なファイアウォールゾーンをリスト表示します。

    # firewall-cmd --get-zones

    firewall-cmd --get-zones コマンドは、システムで利用可能なすべてのゾーンを表示し、特定のゾーンの詳細は表示しません。すべてのゾーンの詳細情報を表示するには、firewall-cmd --list-all-zones コマンドを使用します。

  2. この設定に使用するゾーンを選択します。
  3. 選択したゾーンのファイアウォール設定を変更します。たとえば、SSH サービスを許可し、ftp サービスを削除するには、次のようにします。

    # firewall-cmd --add-service=ssh --zone=<your_chosen_zone>
    # firewall-cmd --remove-service=ftp --zone=<same_chosen_zone>
  4. ネットワークインターフェイスをファイアウォールゾーンに割り当てます。

    1. 使用可能なネットワークインターフェイスをリスト表示します。

      # firewall-cmd --get-active-zones

      ゾーンがアクティブかどうかは、その設定と一致するネットワークインターフェイスまたはソースアドレス範囲の存在によって決定します。デフォルトゾーンは、未分類のトラフィックに対してアクティブですが、ルールに一致するトラフィックがない場合は常にアクティブになるわけではありません。

    2. 選択したゾーンにネットワークインターフェイスを割り当てます。

      # firewall-cmd --zone=<your_chosen_zone> --change-interface=<interface_name> --permanent

      ネットワークインターフェイスをゾーンに割り当てることは、特定のインターフェイス (物理または仮想) 上のすべてのトラフィックに一貫したファイアウォール設定を適用する場合に適しています。

      firewall-cmd コマンドを --permanent オプションとともに使用すると、多くの場合、NetworkManager 接続プロファイルが更新され、ファイアウォール設定に対する変更が永続化します。この firewalld と NetworkManager の統合により、ネットワークとファイアウォールの設定に一貫性が確保されます。

検証

  1. 選択したゾーンの更新後の設定を表示します。

    # firewall-cmd --zone=<your_chosen_zone> --list-all

    コマンド出力には、割り当てられたサービス、ネットワークインターフェイス、ネットワーク接続 (ソース) を含むすべてのゾーン設定が表示されます。

9.7.2. デフォルトゾーンの変更

システム管理者は、設定ファイルのネットワークインターフェイスにゾーンを割り当てます。特定のゾーンに割り当てられないインターフェイスは、デフォルトゾーンに割り当てられます。firewalld サービスを再起動するたびに、firewalld は、デフォルトゾーンの設定を読み込み、それをアクティブにします。他のすべてのゾーンの設定は保存され、すぐに使用できます。

通常、ゾーンは NetworkManager により、NetworkManager 接続プロファイルの connection.zone 設定に従って、インターフェイスに割り当てられます。また、再起動後、NetworkManager はこれらのゾーンを "アクティブ化" するための割り当てを管理します。

前提条件

  • firewalld サービスが実行している。

手順

デフォルトゾーンを設定するには、以下を行います。

  1. 現在のデフォルトゾーンを表示します。

    # firewall-cmd --get-default-zone
  2. 新しいデフォルトゾーンを設定します。

    # firewall-cmd --set-default-zone <zone_name>
    注記

    この手順では、--permanent オプションを使用しなくても、設定は永続化します。

9.7.3. ゾーンへのネットワークインターフェイスの割り当て

複数のゾーンに複数のルールセットを定義して、使用されているインターフェイスのゾーンを変更することで、迅速に設定を変更できます。各インターフェイスに特定のゾーンを設定して、そのゾーンを通過するトラフィックを設定できます。

手順

特定インターフェイスにゾーンを割り当てるには、以下を行います。

  1. アクティブゾーン、およびそのゾーンに割り当てられているインターフェイスをリスト表示します。

    # firewall-cmd --get-active-zones
  2. 別のゾーンにインターフェイスを割り当てます。

    # firewall-cmd --zone=zone_name --change-interface=interface_name --permanent

9.7.4. nmcli を使用して接続にゾーンを割り当て

nmcli ユーティリティーを使用して、firewalld ゾーンを NetworkManager 接続に追加できます。

手順

  1. ゾーンを NetworkManager 接続プロファイルに割り当てます。

    # nmcli connection modify profile connection.zone zone_name
  2. 接続をアクティベートします。

    # nmcli connection up profile

9.7.5. 接続プロファイルファイルでネットワーク接続に手動でゾーンを割り当てる

nmcli ユーティリティーを使用して接続プロファイルを変更できない場合は、プロファイルに対応するファイルを手動で編集して、firewalld ゾーンを割り当てることができます。

注記

nmcli ユーティリティーを使用して接続プロファイルを変更し、firewalld ゾーンを割り当てる方が効率的です。詳細は、ゾーンへのネットワークインターフェイスの割り当て を参照してください。

手順

  1. 接続プロファイルへのパスとその形式を決定します。

    # nmcli -f NAME,FILENAME connection
    NAME    FILENAME
    enp1s0  /etc/NetworkManager/system-connections/enp1s0.nmconnection
    enp7s0  /etc/sysconfig/network-scripts/ifcfg-enp7s0

    NetworkManager は、さまざまな接続プロファイル形式に対して個別のディレクトリーとファイル名を使用します。

    • /etc/NetworkManager/system-connections/<connection_name>.nmconnection ファイル内のプロファイルは、キーファイル形式を使用します。
    • /etc/sysconfig/network-scripts/ifcfg-<interface_name> ファイル内のプロファイルは ifcfg 形式を使用します。
  2. 形式に応じて、対応するファイルを更新します。

    • ファイルがキーファイル形式を使用している場合は、/etc/NetworkManager/system-connections/<connection_name>.nmconnection ファイルの [connection] セクションに zone=<name> を追加します。

      [connection]
      ...
      zone=internal
    • ファイルが ifcfg 形式を使用している場合は、/etc/sysconfig/network-scripts/ifcfg-<interface_name> ファイルに ZONE=<name> を追加します。

      ZONE=internal
  3. 接続プロファイルを再読み込みします。

    # nmcli connection reload
  4. 接続プロファイルを再度アクティベートします。

    # nmcli connection up <profile_name>

検証

  • インターフェイスのゾーンを表示します。以下に例を示します。

    # firewall-cmd --get-zone-of-interface enp1s0
    internal

9.7.6. ifcfg ファイルでゾーンをネットワーク接続に手動で割り当て

NetworkManager で接続を管理する場合は、NetworkManager が使用するゾーンを認識する必要があります。すべてのネットワーク接続にゾーンを指定できます。これにより、ポータブルデバイスを使用したコンピューターの場所に従って、様々なファイアウォールを柔軟に設定できるようになります。したがって、ゾーンおよび設定には、会社または自宅など、様々な場所を指定できます。

手順

  • 接続のゾーンを設定するには、/etc/sysconfig/network-scripts/ifcfg-connection_name ファイルを変更して、この接続にゾーンを割り当てる行を追加します。

    ZONE=zone_name

9.7.7. 新しいゾーンの作成

カスタムゾーンを使用するには、新しいゾーンを作成したり、事前定義したゾーンなどを使用したりします。新しいゾーンには --permanent オプションが必要となり、このオプションがなければコマンドは動作しません。

前提条件

  • firewalld サービスが実行している。

手順

  1. 新しいゾーンを作成します。

    # firewall-cmd --permanent --new-zone=zone-name
  2. 新しいゾーンを使用可能にします。

    # firewall-cmd --reload

    このコマンドは、すでに実行中のネットワークサービスを中断することなく、最近の変更をファイアウォール設定に適用します。

検証

  • 作成したゾーンが永続設定に追加されたかどうかを確認します。

    # firewall-cmd --get-zones --permanent

9.7.8. 着信トラフィックにデフォルトの動作を設定するゾーンターゲットの使用

すべてのゾーンに対して、特に指定されていない着信トラフィックを処理するデフォルト動作を設定できます。そのような動作は、ゾーンのターゲットを設定することで定義されます。4 つのオプションがあります。

  • ACCEPT: 指定したルールで許可されていないパケットを除いた、すべての着信パケットを許可します。
  • REJECT: 指定したルールで許可されているパケット以外の着信パケットをすべて拒否します。firewalld がパケットを拒否すると、送信元マシンに拒否について通知されます。
  • DROP: 指定したルールで許可されているパケット以外の着信パケットをすべて破棄します。firewalld がパケットを破棄すると、ソースマシンにパケット破棄の通知がされません。
  • default: REJECT と似ていますが、特定のシナリオで特別な意味を持ちます。

前提条件

  • firewalld サービスが実行している。

手順

ゾーンにターゲットを設定するには、以下を行います。

  1. 特定ゾーンに対する情報をリスト表示して、デフォルトゾーンを確認します。

    # firewall-cmd --zone=zone-name --list-all
  2. ゾーンに新しいターゲットを設定します。

    # firewall-cmd --permanent --zone=zone-name --set-target=<default|ACCEPT|REJECT|DROP>

関連情報

  • firewall-cmd(1) man ページ