firewall-cmdコマンドの
「--add-icmp-block=echo-request」でpingの応答をブロックできますが
こちらは利用しないようにしてください。
例
NG:firewall-cmd --zone=public --add-icmp-block=echo-request
理由
応答を返さないことを送信者へ応答しているからです。
これは、pingリクエストに対して正常応答ではなく異常応答を
返していることになり、結果応答を返しているのと変わらないからです。
※悪意のあるping実行だった場合、存在していることがバレてしまいます。
以下は「192.168.11.19」に「add-icmp-block=echo-request」を設定した時の
「192.168.11.16」からpingを実行した結果になります。
「Destination Host Prohibited」と応答を返しています。
IP・セグメント単位でping(icmp)をブロックする設定方法
Firewalldサービスは、activeとするゾーンを決めて(public、dmz、dropなど)、そのゾーンに割当てるターゲット(default、ACCEPT、DROPなど)を設定します。
複数のゾーンをactiveに設定することができることを利用して設定します。
前提条件
- activeになっているゾーンが
「drop」以外
かつ
そのゾーンのターゲットが「DROP」以外
になっている事
※デフォルト設定だと「public」がactiveになっておりターゲットも「default」なので、前提条件をクリア―しています。
くわしくはこちら - 以下の設定をした場合は、指定したIP・セグメントからのpingの通信のみ拒否されます
- 恒久設定する場合は
「--permanent」オプションの付与と「firewall-cmd ---reload」の実行が必要
---
■IPアドレスを指定してpingの応答を停止
以下の3つのコマンドを実行
firewall-cmd --add-port=0-65535/tcp --zone=drop
firewall-cmd --add-port=0-65535/udp --zone=drop
firewall-cmd --add-source=192.168.11.16 --zone=drop
->
「192.168.11.16」からping実行は拒否されます。
但し、ping以外の通信はすべて許可(「0-65535/tcp」と「0-65535/UDP」)されています。
■セグメント単位で指定してpingの応答を停止
以下の3つのコマンドを実行
firewall-cmd --add-port=0-65535/tcp --zone=drop
firewall-cmd --add-port=0-65535/udp --zone=drop
firewall-cmd --add-source=192.168.11.0/24 --zone=drop
->
「192.168.11.0/24」からping実行は拒否されます。
但し、ping以外の通信はすべて許可(「0-65535/tcp」と「0-65535/UDP」)されています。
■ポイント
- 「drop」ゾーンのターゲットは「DROP」なので、「drop」ゾーンがactiveになるとすべて拒否からのスタートになります。
- 前提条件でも記載したとおり、設定前は「drop」ゾーンはactiveになっていません。
- 「drop」ゾーンがactiveになるタイミングは、送信者を設定した時になります。複数のゾーンをactiveにできます。
※「# firewall-cmd --add-source=~」を実行したタイミング
今回の場合、もともとactiveだったゾーン(「public」ゾーンなど)と「drop」ゾーンがactiveになります。
※複数のゾーンをactiveにできる詳細は、以下を参照してください。
https://isleofhoso.com/linux-firewalld-conf/ - 「drop」ゾーンに送信者(--add-source)を設定すると「drop」ゾーンがactiveになり送信者に設定されたIP・セグメントからの通信はすべて拒否されます。
- 「drop」ゾーンに設定したサービス(--add-portなど)は、拒否から許可に変更されます。
※「# firewall-cmd --add-port=~」の実行が該当します。
以上を踏まえ
コマンドの実行順も重要となっています。
- 「drop」ゾーンの「tcpとudp」の全ポートだけを
「拒否」から「許可」へ変更する。
※「drop」ゾーンは、ping(ICMP)通信だけが拒否設定になります。 - 送信者「192.168.11.16」or「192.168.11.0/24」からの通信を「drop」ゾーンに設定する。
※「1.」にて「drop」ゾーンの「tcpとudp」の全ポートだけを許可することで「192.168.11.16」or「192.168.11.0/24」からのpingだけを拒否できます。
以下は「192.168.11.19」に「192.168.11.16」からの通信を「drop」した時の
ping実行した結果になります。
※応答を返していません。応答が破棄されていることがわかります。
コメント