Как я могу удалить определенные правила из iptables?
Я размещаю специальные службы HTTP и HTTPS на портах 8006 и 8007 соответственно. Я использую iptables для "активации" сервер; для маршрутизации входящих портов HTTP и HTTPS:
<code>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 </code>
Это работает как шарм. Однако я хотел бы создать еще один скрипт, который снова отключает мой сервер; т.е. восстановить iptables до состояния, в котором он находился до запуска вышеуказанных строк. Однако мне трудно разобраться в синтаксисе для удаления этих правил. Единственная вещь, которая, кажется, работает - это полный флеш:
<code>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 </code>
Но это также удалит другие правила iptables, что нежелательно.