41.12. ICMP リクエストの管理
Internet Control Message Protocol
(ICMP
) は、テスト、トラブルシューティング、診断のために、さまざまなネットワークデバイスによって使用されるサポート対象のプロトコルです。ICMP
は、システム間でデータを交換するのに使用されていないため、TCP、UDP などの転送プロトコルとは異なります。
ICMP
メッセージ (特に echo-request
および echo-reply
) を利用して、ネットワークに関する情報を明らかにし、その情報をさまざまな不正行為に悪用することが可能です。したがって、firewalld
は、ネットワーク情報を保護するため、ICMP
リクエストを制御できます。
41.12.1. ICMP フィルタリングの設定
ICMP フィルタリングを使用すると、ファイアウォールでシステムへのアクセスを許可または拒否する ICMP のタイプとコードを定義できます。ICMP のタイプとコードは、ICMP メッセージの特定のカテゴリーとサブカテゴリーです。
ICMP フィルタリングは、たとえば次の分野で役立ちます。
- セキュリティーの強化 - 潜在的に有害な ICMP のタイプとコードをブロックして、攻撃対象領域を縮小します。
- ネットワークパフォーマンス - 必要な ICMP タイプのみを許可してネットワークパフォーマンスを最適化し、過剰な ICMP トラフィックによって引き起こされる潜在的なネットワーク輻輳を防ぎます。
- トラブルシューティングの制御 - ネットワークのトラブルシューティングに不可欠な ICMP 機能を維持し、潜在的なセキュリティーリスクとなる ICMP タイプをブロックします。
前提条件
-
firewalld
サービスが実行している。
手順
利用可能な ICMP のタイプとコードをリスト表示します。
# firewall-cmd --get-icmptypes address-unreachable bad-header beyond-scope communication-prohibited destination-unreachable echo-reply echo-request failed-policy fragmentation-needed host-precedence-violation host-prohibited host-redirect host-unknown host-unreachable ...
この事前定義されたリストから、許可またはブロックする ICMP のタイプとコードを選択します。
特定の ICMP タイプを次の方法でフィルタリングします。
許可する ICMP タイプ:
# firewall-cmd --zone=<target-zone> --remove-icmp-block=echo-request --permanent
このコマンドは、エコーリクエスト ICMP タイプに対する既存のブロックルールを削除します。
ブロックする ICMP タイプ:
# firewall-cmd --zone=<target-zone> --add-icmp-block=redirect --permanent
このコマンドは、リダイレクトメッセージ ICMP タイプがファイアウォールによって確実にブロックされるようにします。
ファイアウォール設定をリロードして、変更を適用します。
# firewall-cmd --reload
検証
フィルタリングルールが有効であることを確認します。
# firewall-cmd --list-icmp-blocks redirect
コマンド出力には、許可またはブロックした ICMP のタイプとコードが表示されます。
関連情報
-
firewall-cmd(1)
man ページ