1. ホーム
  2. linux

[解決済み] iptablesから特定のルールを削除するにはどうすればよいですか?[クローズド]

2022-03-24 06:43:11

質問

ポート8006と8007でそれぞれ特別なHTTPとHTTPSのサービスをホストしています。私は、iptables を使ってサーバをアクティブにし、HTTP と 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 

これは魅力的なように動作します。しかし、私のサーバーを再び無効にする別のスクリプトを作成したいと思います。しかし、これらのルールを削除するためのシンタックスを見つけ出すのに苦労しています。唯一うまくいきそうなのは、完全にフラッシュすることです。

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

しかし、その場合、他のiptablesルールも削除されてしまうので、望ましくありません。

解決方法は?

同じコマンドを実行しますが、"-A"を"-D"に置き換えてください。例えば、以下のようになります。

iptables -A ...

になる

iptables -D ...