D'autres iptables -Iexemples utilisent dans leurs exemples, ce qui n'est souvent pas ce que vous devriez utiliser.
iptables exécutera la première règle qui correspond, l’ordre des règles est donc très important. -Iest la commande "insert" et doit être utilisée avec un paramètre d'index pour spécifier à quel emplacement de la liste appartient une règle donnée. -Aest la commande "append", qui ajoutera la règle à la fin de la liste.
Dans certaines distributions (peut-être toutes), l'utilisation d' -Iun paramètre sans index ajoute la règle à celle-ci, ce qui en fait la première règle vérifiée. Dans ce scénario, si la dernière commande que vous exécutez est iptables -I INPUT -s tcp 0.0.0.0/0 -j DROPalors iptables abandonnera tout le trafic, que vous ayez ou non des ACCEPTrègles plus tard dans la chaîne.
Voici un exemple de configuration d’une règle qui autorise uniquement SSH à partir d’une seule adresse IP:
Partir sans règles:
#> 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
Ajoutez une nouvelle règle "autoriser SSH à partir de 1.2.3.4":
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
Bloquez SSH de toutes les autres adresses IP:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
Maintenant votre chaîne INPUT ressemblera à:
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
Plus tard, si vous devez ajouter une deuxième adresse à la liste blanche, vous pouvez utiliser le -Iparamètre pour la placer avant la règle de la liste noire.
#>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
Notez que l'utilisation de -I INPUT 2la nouvelle règle ajoutée en tant que règle 2 et que la règle DROP a été remplacée par le numéro 3.
iptablesinversion avec l’opérateur bang est prise en charge si vous souhaitez effectuer un ciblageDROP. Exemple:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP