GNU/Linux >> Tutoriels Linux >  >> Linux

meilleur moyen d'effacer toutes les règles iptables

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

Linux
  1. Comment vider les règles iptables

  2. CentOS / RHEL :guide de dépannage d'iptables

  3. Refuser toutes les connexions entrantes avec iptables ?

  4. Comment faire expirer les règles iptables ?

  5. Meilleur moyen de désactiver le swap sous Linux

Comment vider les règles iptables

Comment configurer le pare-feu iptables sous Linux

Comment ajouter des règles iptables personnalisées dans le pare-feu CSF

Procédure :configuration de base des fichiers IPTables

Présentation d'iptables

Top 5 des meilleurs pare-feu Linux