Linux/firewalld で ping を応答しないように設定する(target=REJECT/DROPの違い)

Ping 応答することのリスク

サーバがPingに応答すると、周囲にその存在を示すことになり、攻撃の対象としてリストアップされる可能性があります。実際ハッキングツールの中には ping による調査を行うものがあります。『これを設定すればクラッキングを防げる!』という訳ではありませんが、クラッカーからして見ればセキュリティ意識の甘いサーバをターゲットにしたほうが攻略しやすいので、そのようなリストアップされないためにも、この設定を入れた方がよいでしょう。

firewalld で ICMP を拒否設定にするコマンド

設定対象の LinuxサーバのIPアドレスは 192.168.100.113 です。動作確認用の Windows からPingを打つと、以下の応答があります。

C:\>ping 192.168.100.113

192.168.100.113 に ping を送信しています 32 バイトのデータ:
192.168.100.113 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.113 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.113 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.113 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.100.113 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms

そこで、Linux上で以下コマンドを打ちます。(DROPは大文字じゃないとNG)

[root@localhost ~]# firewall-cmd --set-target=DROP --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]

target は許可ルールに無い通信の取り扱い方法を決めるもので、

DROP ⇒ ICMP応答を返さない
REJECT ⇒ Destination Unreachable (Host Administratively Prohibited) を返す

というものです。default は Zone によって DROP か REJECT かが決まっていますが、public では REJECT になっています。

これを設定した後は Windows からの応答が無くなりました。

C:\>ping 192.168.100.113

192.168.100.113 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。

192.168.100.113 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、

icmp-block=echo-request ではダメなの?

以下のコマンドで Ping(echo-request) を拒否する設定は可能です。

firewall-cmd --add-icmp-block=echo-request

ただし、これでは Windows からの Ping は以下のように表示されます。

c:\>ping 192.168.100.113

192.168.100.113 に ping を送信しています 32 バイトのデータ:
192.168.100.113 からの応答: 宛先ホストに到達できません。
192.168.100.113 からの応答: 宛先ホストに到達できません。
192.168.100.113 からの応答: 宛先ホストに到達できません。
192.168.100.113 からの応答: 宛先ホストに到達できません。

192.168.100.113 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

通常の Pingでは、echo-request に対して、送信元に echo-reply が返されますが、今回のicmp-blockの設定では echo-request を拒否(REJECT)し、destination-unreachable というICMP が送信元に返されます。最初に述べたセキュリティリスクを解消できないため、個人的には意味のない設定だと思っています。

なお、target=DROP にした上で、--add-icmp-block=echo-request を設定すると、destination-unreachable が返されてしまうため、この --add-icmp-block=echo-request は設定してはいけません。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする