Comment puis-je supprimer des règles de iptables?

Je suis d'hébergement spécial HTTP et HTTPS services sur les ports 8006 et 8007 respectivement. Je utiliser iptables pour "activer" le serveur; c'est à dire à la route entrant ports HTTP et HTTPS:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007  
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007 

Cela fonctionne comme un charme. Cependant, je voudrais créer un autre script qui désactive mon serveur de nouveau; c'est à dire la restauration d'iptables pour l'état où il était avant d'exécuter les lignes ci-dessus. Cependant, je vais avoir un moment difficile de déterminer la syntaxe pour supprimer ces règles. La seule chose qui semble fonctionner est une chasse d'eau complet:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Mais qui va également supprimer d'autres règles iptables qui est indésirable.

  • J'ai trouvé qu'il est préférable d'utiliser -I au lieu de -A pour ACCEPT lignes. C'est parce que généralement, la dernière ligne (pour INPUT de la chaîne par exemple) est un DROP ou REJECT et vous voulez que votre règle à venir avant que. -A place la nouvelle règle après la dernière règle, tandis que -I le met au début.
InformationsquelleAutor Jeroen | 2012-04-17