Red Hat Training
A Red Hat training course is available for RHEL 8
9.10. ICMP リクエストの管理
Internet Control Message Protocol
(ICMP
) は、接続問題 (要求されているサービスが利用できないなど) を示すエラーメッセージと運用情報を送信するために、様々なネットワークデバイスにより使用されているサポート対象のプロトコルです。ICMP
は、システム間でデータを交換するのに使用されていないため、TCP、UDP などの転送プロトコルとは異なります。
ただし、ICMP
メッセージ (特に echo-request
および echo-reply
) を利用して、ネットワークに関する情報を明らかにし、その情報をさまざまな不正行為に悪用することが可能です。したがって、firewalld
は、ネットワーク情報を保護するため、ICMP
リクエストをブロックできます。
9.10.1. ICMP リクエストのリスト表示およびブロック
ICMP
リクエストのリスト表示
ICMP
リクエストは、/usr/lib/firewalld/icmptypes/
ディレクトリーにある各 XML ファイルで説明されています。リクエストの説明は、このファイルを参照してください。firewall-cmd
コマンドは、ICMP
リクエストの操作を制御します。
利用可能な
ICMP
タイプのリストを表示するには、次のコマンドを実行します。#
firewall-cmd --get-icmptypes
ICMP
リクエストは、IPv4、IPv6、またはその両方のプロトコルで使用できます。ICMP
リクエストが使用されているプロトコルを表示するには、次のコマンドを実行します。#
firewall-cmd --info-icmptype=<icmptype>
ICMP
リクエストのステータスは、リクエストが現在ブロックされている場合はyes
、ブロックされていない場合はno
となります。ICMP
リクエストが現在ブロックされているかどうかを確認するには、次のコマンドを実行します。#
firewall-cmd --query-icmp-block=<icmptype>
ICMP
リクエストのブロックまたはブロックの解除
サーバーが ICMP
リクエストをブロックした場合は、通常の情報が提供されません。ただし、情報が全く提供されないというわけではありません。クライアントは、特定の ICMP
リクエストがブロックされている (拒否されている) 情報を受け取ります。ICMP
リクエストは、特に IPv6 トラフィックを使用すると、接続問題が発生することがあるため、注意深く検討する必要があります。
ICMP
リクエストが現在ブロックされているかどうかを確認するには、次のコマンドを実行します。#
firewall-cmd --query-icmp-block=<icmptype>
ICMP
リクエストをブロックするには、次のコマンドを実行します。#
firewall-cmd --add-icmp-block=<icmptype>
ICMP
リクエストのブロックを削除するには、次のコマンドを実行します。#
firewall-cmd --remove-icmp-block=<icmptype>
情報を提供せずに ICMP
リクエストのブロック
通常、ICMP
リクエストをブロックすると、ブロックしていることをクライアントは認識します。したがって、ライブの IP アドレスを傍受している潜在的な攻撃者は、IP アドレスがオンラインであることを確認できます。この情報を完全に非表示にするには、ICMP
リクエストをすべて破棄する必要があります。
-
すべての
ICMP
リクエストをブロックして破棄するには、次のコマンドを実行します。 ゾーンのターゲットを
DROP
に設定します。#
firewall-cmd --permanent --set-target=DROP
これで、明示的に許可されるトラフィックを除き、ICMP
リクエストを含むすべてのトラフィックが破棄されます。
特定の ICMP
リクエストをブロックして破棄し、その他のリクエストを許可するには、以下を行います。
ゾーンのターゲットを
DROP
に設定します。#
firewall-cmd --permanent --set-target=DROP
すべての
ICMP
リクエストを一度にブロックする、ICMP ブロックの反転を追加します。#
firewall-cmd --add-icmp-block-inversion
許可する
ICMP
リクエストに ICMP ブロックを追加する場合は、次のコマンドを実行します。#
firewall-cmd --add-icmp-block=<icmptype>
新しい設定を永続化します。
#
firewall-cmd --runtime-to-permanent
ブロックの反転 は、ICMP
リクエストブロックの設定を反転します。そのため、ゾーンのターゲットが DROP
に変更されたため、ブロックされていないリクエストはすべてブロックされます。ブロックされているリクエストはブロックされません。これは、リクエストのブロックを解除する場合は、ブロックコマンドを使用する必要があることを示しています。
ブロックの反転を、完全許可の設定に戻すには、以下を行います。
ゾーンのターゲットを
default
またはACCEPT
に戻すには、次のコマンドを設定します。#
firewall-cmd --permanent --set-target=default
ICMP
リクエストに追加したすべてのブロックを削除します。#
firewall-cmd --remove-icmp-block=<icmptype>
ICMP
ブロックの反転を削除します。#
firewall-cmd --remove-icmp-block-inversion
新しい設定を永続化します。
#
firewall-cmd --runtime-to-permanent
9.10.2. GUI を使用した ICMP フィルターの設定
-
ICMP
フィルターを有効または無効にするには、firewall-config ツールを起動して、フィルターをかけるメッセージのネットワークゾーンを選択します。ICMP フィルター
タブを選択し、フィルターをかけるICMP
メッセージの各タイプのチェックボックスを選択します。フィルターを無効にするには、チェックボックスの選択を外します。これは方向ごとに設定され、デフォルトではすべてが許可されます。 -
ICMP フィルター
の反転を有効にするには、右側のフィルターの反転
チェックボックスをクリックします。マークがついたICMP
タイプだけが許可され、その他はすべて拒否されます。DROP ターゲットを使用するゾーンでは破棄されます。