Ping von einer bestimmten IP-Adresse blockieren

Ping von einer bestimmten IP-Adresse blockieren

Mein Server ist Ubuntu 12.04:-> IP 192.168.56.100Ich habe einen Client Ubuntu 13.04:->IP 192.168.56.101

Ich muss den Ping vom Client zum Server blockieren. Deshalb habe ich die IPTABLE-Regel geschrieben.

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

Jetzt kann der Client keinen Ping zum Server senden, dieser Teil ist in Ordnung, aber der Server kann keinen Ping zum Client senden, was nicht passieren sollte. Vor dem Hinzufügen dieser Regel konnten sich Server und Client gegenseitig anpingen.

Bitte sagen Sie mir, was ich hier übersehe …

Die gegebenen Antworten sind richtig, aber wie funktioniert es …??? Das Hinzufügen --icmp-typeeiner Echo-Anforderung löst das Problem zwar, aber diese Regel wird den Regeln der Eingabekette hinzugefügt. Wie kann diese Regel also die Ausgabekette durcheinanderbringen, wenn sie den Ping an den Client blockiert?

Antwort1

So wie ich es verstehe, pingsendet der Befehl eine ICMP-Echoanforderung an den Host, woraufhin der Host mit einer ICMP-Echoantwort antwortet. Wenn Sie also alle ICMP blockieren, funktioniert Ping überhaupt nicht.

Sie sollten Folgendes hinzufügen:

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

Dadurch wird nur die Anfrage blockiert, nicht aber die Antwort

Beantwortung Ihrer Frage in Kommentaren

Ausgehende Ping-Anfragen werden nicht blockiert. Alle eingehenden ICMP-Pakete werden blockiert.

Wenn Sie ausführen ping:

  1. pingICMP-Anforderungspaket senden an 192.168.56.101(es ist ausgehendes ICMP)

  2. 192.168.56.101Empfangen Sie dieses Paket und senden SieAntwort ICMP-Paketzurück zu Ihrem Server

  3. Jetzt blockiert Ihr Server iptables dieses eingehende Antwortpaket. Das ist, was passiert.

sudo tcpdump ip proto \\icmpSie können dies mit diesem Befehl überprüfen 192.168.56.101. Es werden Ihnen alle ICMP-Anfragen/Antworten online angezeigt.

Mach das:

  1. Entfernen Sie diese Regel vom Server:

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

  2. Fügen Sie Ihrem Server diese Regel hinzu:

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

  3. Führen Sie nun diesen Befehl aus auf 192.168.56.101:

    sudo tcpdump ip proto \\icmp

  4. Auf dem Server ausführen ping 192.168.56.101.

Jetzt sollten Sie sehen, 192.168.56.101dass eine Ping-Anfrage eingeht und eine Antwort sendet. Aber die iptables auf dem Server blockieren diese Antwort.

Antwort2

Offensichtlich erhalten Sie keine Antwort. Eine Ping-Anfrage besteht aus zwei Teilen:

  • Client -> Server: ICMP-Echo-Anfrage (auch „Ping“ genannt)
  • Server -> Client: ICMP-Echo-Antwort (auch „Pong“ genannt)

Das Blockieren aller ICMP-Typen wirdÄrger bringenWenn Sie verhindern möchten, dass der Client "pingt" (eine PING-Anforderung sendet), verwenden Sie die folgende Regel für denServer:

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

Um zu verhindern, dass der Client überhaupt eine ICMP-Ping-Anforderung sendet, können Sie diese Regel auf denKlient:

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

Es ist jedoch höchst ungewöhnlich, einen Client daran zu hindern, eine einzelne IP-Adresse zu pingen, und zwar von der Clientseite aus. Der einzige Grund, warum Sie dies tun würden, ist, dass Ihre Zuweisung dies erfordert.NEINICMP-Ping-Pakete fließen vom Client durch das Netzwerk zum Server.

Ich frage mich allerdings, warum Sie Ping-Anfragen in einem LAN blockieren möchten. Mit ARP kann der Client immer noch wissen, dass dieser Server mit dem Netzwerk verbunden ist.

verwandte Informationen