Andere Antworten werden iptables -Iin ihren Beispielen verwendet, was häufig nicht das ist, was Sie verwenden sollten.
iptables führt die erste übereinstimmende Regel aus, daher ist die Reihenfolge der Regeln sehr wichtig. -Iist der Befehl "Einfügen" und sollte mit einem Indexparameter verwendet werden, um anzugeben, wo in der Liste eine bestimmte Regel hingehört. -Aist der Befehl "Anhängen", mit dem die Regel am Ende der Liste hinzugefügt wird.
In einigen Distributionen (möglicherweise allen) -Iwird die Regel durch die Verwendung eines Indexparameters zu einem Index hinzugefügt, wodurch sie zur ersten überprüften Regel wird. Wenn in diesem Szenario der letzte von Ihnen ausgeführte Befehl iptables -I INPUT -s tcp 0.0.0.0/0 -j DROPiptables ist, wird der gesamte Datenverkehr gelöscht, unabhängig davon, ob Sie ACCEPTspäter in der Kette Regeln haben oder nicht .
Hier ist ein Beispiel für das Einrichten einer Regel, die nur SSH von einer einzelnen IP aus zulässt:
Ohne Regeln starten:
#> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Fügen Sie eine neue Regel "SSH ab 1.2.3.4 zulassen" hinzu:
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
Blockiere SSH von allen anderen IPs:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
Jetzt sieht Ihre INPUT-Kette folgendermaßen aus:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Wenn Sie später eine zweite IP-Adresse auf die Whitelist setzen müssen, können Sie sie mit dem -IParameter vor die Blacklist-Regel setzen.
#>iptables -I INPUT 2 -p tcp -s 4.3.2.1 --dport 22 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 4.3.2.1 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Beachten Sie, dass Sie -I INPUT 2die neue Regel als Regel Nummer 2 hinzugefügt und die DROP-Regel an Nummer 3 angehängt haben.
iptablesdie Inversion mit dem Bang-Operator unterstützt wird, falls Sie eine gezielte Aktion durchführen möchtenDROP. Beispiel:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP