5.6. トラフィックの制御
5.6.1. 事前定義サービス
サービスは、グラフィカルな firewall-config ツール、firewall-cmd、および firewall-offline-cmd を使用して追加および削除できます。
または、
/etc/firewalld/services/
ディレクトリーの XML ファイルを編集することもできます。ユーザーがサービスを追加または変更しないと、対応する XML ファイルは /etc/firewalld/services/
にはありません。サービスを追加または変更する場合は、/usr/lib/firewalld/services/
ディレクトリーのファイルをテンプレートとして使用できます。
5.6.2. 緊急時に CLI を使用してすべてのトラフィックの無効化
システムへの攻撃などの緊急な状態にあるとき、すべてのネットワークトラフィックを無効にし、攻撃を遮断できます。
ネットワークトラフィックを直ちに無効にするには、パニックモードをオンにします。
~]# firewall-cmd --panic-on
パニックモードをオフにし、ファイアウォールを永続設定に戻します。パニックモードを無効にするには、次のコマンドを実行します。
~]# firewall-cmd --panic-off
パニックモードを有効または無効にするには、次のコマンドを実行します。
~]# firewall-cmd --query-panic
5.6.3. CLI を使用して事前定義されたサービスでトラフィックの制御
トラフィックを制御する最も簡単な方法は、事前定義サービスを
firewalld
に追加することです。これにより、必要なすべてのポートが開き、service definition file に従ってその他の設定が変更されます。
- サービスが許可されていないことを確認します。
~]# firewall-cmd --list-services ssh dhcpv6-client
- 事前定義したサービスの一覧を表示します。
~]# 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 ... [output truncated]
- サービスを、許可されたサービスに追加します。
~]# firewall-cmd --add-service=<service-name>
- 新しい設定を永続化します。
~]# firewall-cmd --runtime-to-permanent
5.6.4. GUI を使用して事前定義サービスでトラフィックを制御
事前定義したサービスまたはカスタムサービスを有効または無効にするには、firewall-config ツールを起動し、サービスを設定するネットワークゾーンを選択します。Services タブを選択し、信頼するサービスタイプのチェックボックスを選択します。サービスをブロックする場合は、チェックボックスをオフにします。
サービスを編集するには、firewall-config ツールを起動し、Configuration というラベルの付いたメニューから を選択します。 ウィンドウの下部に、追加のアイコンとメニューボタンが表示されます。設定するサービスを選択します。
ポート 、 プロトコル、および ソースポートタブ で は、選択したサービスのポート、プロトコル、およびソースポートの追加、変更、および削除が可能です。modules タブは、Netfilter ヘルパーモジュールを設定するためのものです。Destination タブでは、特定の宛先アドレスおよびインターネットプロトコル(
IPv4
または IPv6
)へのトラフィックを制限できます。
注記
5.6.5. 新しいサービスの追加
サービスは、グラフィカルな firewall-config ツール、firewall-cmd、および firewall-offline-cmd を使用して追加および削除できます。または、
/etc/firewalld/services/
にある XML ファイルを編集することもできます。ユーザーがサービスを追加または変更しないと、対応する XML ファイルは /etc/firewalld/services/
にはありません。サービスを追加または変更する場合は、/usr/lib/firewalld/services/
ファイルをテンプレートとして使用できます。
ターミナルで新しいサービスを追加するには、firewall-cmd を使用するか、
firewalld
がアクティブな場合は firewall-offline-cmd を使用します。以下のコマンドを実行して、新規で空のサービスを追加します。
~]$ firewall-cmd --new-service=service-name
ローカルファイルを使用して新規サービスを追加するには、次のコマンドを使用します。
~]$ firewall-cmd --new-service-from-file=service-name.xml
追加オプション
--name=service-name
を指定して、サービス名を変更できます。
サービス設定を変更したらすぐに、サービスの更新されたコピーが
/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
が求められた場合に使用されます。これに該当するのは永続環境のみです。ランタイム環境でフォールバックさせるには、再読み込みが必要です。
5.6.6. CLI を使用したポートの制御
ポートは、オペレーティングシステムが、ネットワークトラフィックを受信し、区別し、システムサービスに従って転送する論理デバイスです。これは、通常、ポートをリッスンするデーモンにより示されますが、このポートに入るトラフィックを待ちます。
通常、システムサービスは、サービスに予約されている標準ポートでリッスンします。
httpd
デーモンは、たとえばポート 80 をリッスンします。ただし、デフォルトでは、システム管理者は、セキュリティーを強化するため、またはその他の理由により、別のポートをリッスンするようにデーモンを設定します。
ポートを開く
開かれたポートを介して、システムが外部からアクセスできます。これはセキュリティーリスクでもあります。一般的に、ポートを閉じたままにし、特定サービスに要求される場合に限り開きます。
現在のゾーンで開かれたポートの一覧を表示するには、以下を行います。
- 許可されているポートの一覧を表示します。
~]# firewall-cmd --list-ports
- 許可されているポートにポートを追加して、着信トラフィックに対してそのポートを開きます。
~]# firewall-cmd --add-port=port-number/port-type
- 新しい設定を永続化します。
~]# firewall-cmd --runtime-to-permanent
ポートタイプは、
tcp
、udp
、sctp
、または dccp
のいずれかです。このタイプは、ネットワーク接続の種類と一致させる必要があります。
ポートを閉じる
開いているポートが必要なくなったら、
firewalld
でそのポートを閉じます。ポートをそのままにするとセキュリティーリスクとなるため、使用されなくなったらすぐに不要なポートを閉じることが強く推奨されます。
ポートを閉じるには、許可されているポートの一覧からそれを削除します。
- 許可されているポートの一覧を表示します。
~]# firewall-cmd --list-ports [WARNING] ==== This command will only give you a list of ports that have been opened as ports. You will not be able to see any open ports that have been opened as a service. Therefore, you should consider using the --list-all option instead of --list-ports. ====
- 許可されているポートからポートを削除し、着信トラフィックに対して閉じます。
~]# firewall-cmd --remove-port=port-number/port-type
- 新しい設定を永続化します。
~]# firewall-cmd --runtime-to-permanent
5.6.7. GUI を使用してポートを開く
特定のポートへのファイアウォールを通過するトラフィックを許可するには、firewall-config ツールを起動して、設定を変更するネットワークゾーンを選択します。右側の Ports タブを選択し、 ボタンをクリックします。Port and Protocol ウィンドウが開きます。
許可するポート番号またはポートの範囲を入力します。一覧から tcp または udp を選択します。
5.6.8. GUI を使用してプロトコルを使用したトラフィックの制御
特定のプロトコルを使用してファイアウォールを通過するトラフィックを許可するには、firewall-config ツールを起動し、設定を変更するネットワークゾーンを選択します。右側の Protocols タブを選択し、Add ボタンをクリックします。Protocol ウィンドウが開きます。
一覧からプロトコルを選択するか、Other Protocol チェックボックスを選択し、フィールドにプロトコルを入力します。
5.6.9. GUI を使用してソースポートを開く
特定のポートからのトラフィックがファイアウォールを通過できるようにするには、firewall-config ツールを起動して、設定を変更するネットワークゾーンを選択します。右側の Source Port タブを選択し、Add ボタンをクリックします。Source Port ウィンドウが開きます。
許可するポート番号またはポートの範囲を入力します。一覧から tcp または udp を選択します。