特定のIPアドレスからのpingをブロックする

特定のIPアドレスからのpingをブロックする

私のサーバーはUbuntu 12.04です:->IP 192.168.56.100クライアントはUbuntu 13.04です:->IP 192.168.56.101

クライアントからサーバーへの ping をブロックする必要があるため、IPTABLE ルールを作成しました。

iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP

現在、クライアントはサーバーに ping できません。この部分は問題ありませんが、サーバーはクライアントに ping できません。これは発生すべきではありません。このルールを追加する前は、サーバーとクライアントの両方が相互に ping できました。

ここで何が欠けているのか教えてください...

与えられた回答は正しいですが、どのように機能するのでしょうか...? --icmp-typeecho-r​​equest を追加すると問題は解決しますが、このルールは INPUT チェーン ルールに追加されるため、クライアントへの ping をブロックしているため、このルールが OUTPUT チェーンに影響を及ぼす可能性はありますか。

答え1

私の理解では、pingコマンドはホストに ICMP エコー要求を送信し、ホストは ICMP エコー応答で応答します。したがって、すべての ICMP をブロックすると、ping はまったく機能しません。

これを追加する必要があります:

iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP

これはリクエストのみをブロックし、応答はブロックしません

コメントで質問に答えます

発信 ping 要求はブロックされません。すべての着信 ICMP パケットがブロックされます。

実行するとping:

  1. pingICMP要求パケットを送信します192.168.56.101(ICMPが送信されます)

  2. 192.168.56.101このパケットを受信して​​送信するICMPパケットの返信サーバーに戻る

  3. これで、サーバーの iptables がこの受信応答パケットをブロックします。これが起こっていることです。

sudo tcpdump ip proto \\icmpこのコマンドを使用して確認できます192.168.56.101。オンラインのすべての ICMP 要求/応答が表示されます。

これを行う:

  1. サーバーからこのルールを削除します:

    iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 192.168.56.101 -j DROP

  2. 次のルールをサーバーに追加します。

    iptables -A INPUT -i eth0 -p ICMP -s 192.168.56.101 -j DROP

  3. ここで次のコマンドを実行します192.168.56.101:

    sudo tcpdump ip proto \\icmp

  4. ping 192.168.56.101サーバー上で実行します。

192.168.56.101これで、ping 要求を受信し、応答を送信することがわかります。ただし、サーバー上の iptables はこの応答をブロックします。

答え2

当然、応答は返ってきません。ping 要求には 2 つの部分があります。

  • クライアント -> サーバー: ICMP エコー要求 (別名「ping」)
  • サーバー -> クライアント: ICMP エコー応答 (別名「pong」)

すべての種類のICMPをブロックすると、問題を起こすクライアントが「ping」(PINGリクエストの送信)するのを防ぎたい場合は、次のルールを使用します。サーバ:

-A INPUT -i eth0 -s 192.168.56.101/32 -p ICMP --icmp-type echo-request -j DROP

クライアントがICMP ping要求を送信しないようにするには、このルールをクライアント:

-A OUTPUT -o eth0 -d 192.168.56.100/32 -p ICMP --icmp-type echo-request -j DROP

ただし、クライアント側から単一のIPアドレスへのpingをブロックしないようにすることは、非常にまれです。これを行う唯一の理由は、割り当てで次のことが要求されるためです。いいえICMP ping パケットはクライアントからネットワークを経由してサーバーに送信されます。

しかし、なぜ LAN 上の ping 要求をブロックするのか疑問に思います。ARP を使用すると、クライアントは依然としてこのサーバーがネットワークに接続されていることを知ることができます。

関連情報