IPtablesは1つのチェーンを除いてすべてを削除します。

IPtablesは1つのチェーンを除いてすべてを削除します。

iptables -Fiptablesを使用または更新できることを知っていますiptables -X。しかし、1つの重要なチェーン/ルールを除いてiptablesを更新できますか?

答え1

ルールをファイルにダンプ

iptables-save > file

保持したいルールを除くすべてのルールを削除し、削除されていないルールを復元し、現在のiptablesルールを上書きします。

iptables-restore < file

または、すべてのルールを更新して必要なルールを作成します。

ルールをファイルにダンプすると、ルールはすべて次の形式になっていることがわかります。

-A SomeChain SomeActions Target

例えば

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

iptablesコマンドを使用して同じルールを作成できます

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

答え2

1つのチェーンだけを除いて、すべて直接洗い流したり削除したりすることはできません。しかし、リストチェーンは単純なので、短いオプションの組み合わせで十分です。

リストチェーン

iptables -nL | awk '$1 == "Chain" { print $2 }'

INPUT
FORWARD
OUTPUT
f2b-iptables-log
f2b-recidive
f2b-sshd

以下を除くすべてのアイテムをフラッシュしますINPUTecho効果があると確信している場合は削除してください)。

iptables -nL |
    awk -v keep=INPUT '$1 == "Chain" && $2 != keep { system("echo iptables -F " $2) }'

関連情報