Techglimpseの常連の読者の一人が私にこの質問をしました。質問:Linuxマシンへのping要求を無効にするにはどうすればよいですか?さて、これがあなたがそれをする方法です。
通常、ping要求はインターネット制御メッセージプロトコル(ICMP)パケットを生成します。 ICMPは、インターネットプロトコルスイートのプロトコルの1つであり、ルーターなどのネットワーク要素がエラーメッセージを送信して、要求されたサービスまたはホストに到達できないことを示すために使用されます。つまり、マシンへのICMPパケットを無効にすることを意味し、ping要求を拒否する必要があります。 ICMPパケットを送信する別のコマンドは、Linuxでは「traceroute」、Windowsでは「tracert」です。 ICMPパケットを拒否すると、サーバーへの「traceroute」も無効になります。
Pingリクエストを無効にする
そのためには、カーネル変数を次のように設定する必要があります。
$echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
上記のコマンドは、カーネル変数icmp_echo_ignore_allを「1」に設定します。これにより、実際にはICMPパケットが無視されます。元に戻すには、変数を「0」に設定します。
$echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
この変数は、 /etc/sysctl.confで設定することもできます。 ファイル。
$vi /etc/sysctl.conf
次の行を追加します:
net.ipv4.icmp_echo_ignore_all = 1
マシンでICMPパケットが拒否されたら、pingとtracerouteをチェックアウトします。
サンプル出力:tracert
>tracert 192.168.1.5
Tracing route to 192.168.1.5 over a maximum of 30 hops
1 3 ms <1 ms <1 ms 192.168.1.5 2 <1 ms <1 ms <1 ms 192.168.1.1 3 * * * Request timed out. 4 * * * Request timed out. 5 * * * Request timed out. 6 * * * Request timed out.
注:セキュリティ上の理由からpingリクエストを無効にすることを検討することもできますが、ネットワークの到達可能性を監視すると便利な場合があります。
このガイドもご覧ください:ウェブサーバーを保護するための決定的なガイド–50のベストプラクティス