Derzeit habe ich so etwas wie:
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
Wenn ich jedoch den zweiten Befehl ausführe, sieht es so aus, als würde iptables einfach angehalten. Ich muss ausbrechen, um zum Terminal zurückzukehren. Vielleicht mache ich alles falsch, aber ein Einblick wäre hilfreich.
-A
zu-I
iptables -L -nv
sich die Zähler ansehen und überprüfen, wenn Sie Ihre Regeln testen. Sie werden feststellen, dass es wahrscheinlich inkrementell ist, die Pakete zu verwerfen, ohne Ihre andere Regel zu erreichen.Antworten:
Sie müssen Ihre Regeln in umgekehrter Reihenfolge ausführen. Iptables reagiert empfindlich auf die Reihenfolge, in der Befehle ausgeführt wurden. Wenn eine Regel übereinstimmt, werden keine weiteren Regeln überprüft, sondern nur diese eingehalten. Wenn Sie den Drop zuerst festlegen, wird die Akzeptanzregel niemals getestet. Wenn Sie die spezifische Akzeptanz mit der Quell-IP festlegen und dann die allgemeinere Richtlinie zum Löschen festlegen, wirkt sich dies auf das erwartete Verhalten aus.
Sind Sie sicher, dass Sie eine gültige IP-Adresse eingegeben haben? Vielleicht können Sie diesem Befehl ein Präfix voranstellen, um
strace iptables …
zu sehen, was er tut, während er zu hängen scheint.quelle
Lassen Sie ICMP nicht ohne weiteres fallen! Sicher, einige der ICMP-Anfragen sind gefährlich, aber der Rest ist unbedingt erforderlich, damit das Netzwerk funktioniert (denken Sie an "Ziel nicht erreichbar" und diesen Zoo).
quelle
Sie müssen eine Regel hinzufügen wie:
quelle