5.11. ICMP リクエストの管理
Internet Control Message Protocol
(ICMP
)は、接続の問題(要求されたサービスが利用できないなど)を示すエラーメッセージと操作情報を送信するために、さまざまなネットワークデバイスによって使用されるサポートプロトコルです。ICMP
は、システム間でデータを交換するために使用されないため、TCP や UDP などのトランスポートプロトコルとは異なります。
残念ながら、
ICMP
メッセージ(特に echo-request
および echo-reply
)を使用して、ネットワークに関する情報を示し、さまざまな不正行為についてこのような情報を誤用できます。したがって、firewalld
は、ネットワーク情報を保護するための ICMP
リクエストをブロックすることを可能にします。
5.11.1. 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>
5.11.2. 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>
5.11.3. 情報を提供せずに ICMP
リクエストのブロック
通常、
ICMP
リクエストをブロックすると、クライアントはブロックしていることを認識します。したがって、ライブの IP アドレスを傍受している潜在的な攻撃者は、IP アドレスがオンラインであることを確認できます。この情報を完全に非表示にするには、ICMP
リクエストをすべて破棄する必要があります。
すべての
ICMP
リクエストをブロックして破棄するには、次のコマンドを実行します。
- ゾーンのターゲットを
DROP
に設定します。~]# firewall-cmd --set-target=DROP
- 新しい設定を永続化します。
~]# firewall-cmd --runtime-to-permanent
ICMP
リクエストを含むすべてのトラフィックがドロップされるようになりました(明示的に許可したトラフィックを除く)。
特定の
ICMP
リクエストをブロックして破棄し、その他を許可するには、次のコマンドを実行します。
- ゾーンのターゲットを
DROP
に設定します。~]# firewall-cmd --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
リクエストブロックの設定を反転するため、ブロックされていないすべてのリクエストはブロックされます。ブロックされているものはブロックされません。したがって、リクエストのブロックを解除する必要がある場合は、ブロックコマンドを使用してください。
これを完全に許容できる設定に戻すには、以下を行います。
- ゾーンのターゲットを
default
またはACCEPT
に設定します。~]# firewall-cmd --set-target=default
ICMP
リクエストに追加したすべてのブロックを削除します。~]# firewall-cmd --remove-icmp-block=<icmptype>
ICMP
ブロックの反転を削除します。~]# firewall-cmd --remove-icmp-block-inversion
- 新しい設定を永続化します。
~]# firewall-cmd --runtime-to-permanent
5.11.4. GUI を使用した ICMP
フィルターの設定
ICMP
フィルターを有効または無効にするには、firewall-config ツールを起動し、メッセージがフィルターされるネットワークゾーンを選択します。ICMP フィルター タブを 選択し、フィルターリングする ICMP
メッセージの各タイプのチェックボックスを選択します。フィルターを無効にするには、チェックボックスの選択を外します。これは方向ごとに設定され、デフォルトではすべてが許可されます。
ICMP フィルター の反転を有効にするには、右側の Invert Filter チェックボックスをクリックします。マークされた
ICMP
タイプのみが許可され、その他はすべて拒否されます。DROP ターゲットを使用するゾーンでは破棄されます。