Solution 1 :
Pour répondre succinctement à votre question, non :il n'y aurait pas de règles "restantes" après avoir vidé chaque table. Cependant, dans un souci d'exhaustivité, vous souhaiterez peut-être définir la stratégie pour le INPUT
intégré et FORWARD
chaînes à ACCEPT
, ainsi :
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
Effacer les règles ip6tables :
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
... et ça devrait le faire. iptables -nvL
devrait produire ceci (ou très similaire) sortie :
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Solution 2 :
Cela réinitialisera correctement et totalement votre système iptables à un état très basique :
iptables-save | awk '/^[*]/ { print $1 }
/^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
/COMMIT/ { print $0; }' | iptables-restore
Toutes les politiques seront réinitialisées sur ACCEPTER ainsi que le vidage de chaque table en cours d'utilisation. Toutes les chaînes autres que les chaînes intégrées n'existeront plus.
Solution 3 :
Chaque fois que j'ai besoin que le pare-feu soit désactivé, c'est quelque chose comme ça :
iptables-save > iptables.bak
service iptables stop
(je suis sur fedora)
Solution 4 :
Vous pouvez simplement décharger iptables
' modules du noyau :
modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter
UPD Malheureusement, trop beau pour être vrai. Tant qu'il y a une règle ou une chaîne définie par l'utilisateur dans une table, le nombre de références du module correspondant est 1, et modprobe -r
échoue. Vous pouvez supprimer des règles et des chaînes définies par l'utilisateur comme suit :
echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore
ou :
iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore
De plus, vous voudrez peut-être décharger les modules de cette façon (pas de noms de modules codés en dur) :
lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r
Du bon côté, après ce iptables-save
produit une belle sortie vide :)
Solution 5 :
Sauvegarde la configuration sur iptables_backup.conf et nettoie toutes les règles.
iptables-save | tee iptables_backup.conf | grep -v '\-A' | iptables-restore
Pour restaurer la configuration précédente :
iptables-restore < iptables_backup.conf