Andere Antworten werden iptables -I
in 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. -I
ist der Befehl "Einfügen" und sollte mit einem Indexparameter verwendet werden, um anzugeben, wo in der Liste eine bestimmte Regel hingehört. -A
ist der Befehl "Anhängen", mit dem die Regel am Ende der Liste hinzugefügt wird.
In einigen Distributionen (möglicherweise allen) -I
wird 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 DROP
iptables ist, wird der gesamte Datenverkehr gelöscht, unabhängig davon, ob Sie ACCEPT
spä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 -I
Parameter 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 2
die neue Regel als Regel Nummer 2 hinzugefügt und die DROP-Regel an Nummer 3 angehängt haben.
iptables
die 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