iptables -Fはすべてのiptablesルールを完全に削除しますか?


8

著者は、RHELトレーニングドキュメントで次のように述べています。

...次のコマンドを実行して、現在のシステムのファイアウォールを無効にします。iptables -F

彼は明示的に「無効にする」という言葉を使用していますが、これは簡単に再度有効にすることができることを示唆しています。iptablesのmanページを読んでいると、これがわかります。

選択したチェーンをフラッシュします(何も指定されていない場合は、テーブル内のすべてのチェーン)。これは、すべてのルールを1つずつ削除することと同じです。

予想される動作を明確にすることはできますか?


2
iptables -F「filter」テーブル内のすべてのルールをフラッシュし、他のテーブル(nat、mangle ...)をフラッシュせず、ポリシーをデフォルトに復元しないことに注意してください。そのため、実際には無効にするとは言えませんファイアウォール
ステファンChazelas

回答:


13

iptablesルールは、Red Hatシステム上の2つの場所に格納されます。

  • ファイアウォールコードがネットワークI / Oでそれらをチェックする、実行中のカーネル内のメモリ内。でルールをフラッシュするとiptables -F、このルールセットのみが削除されます。

  • /etc/sysconfig/iptables、そこからそれらがブート時にロードされます。service iptables reloadまたはで再起動せずに強制的にリロードできます...restart

したがって、答えはノーiptables -Fです。ルールのフラッシュは永続的ではありません。

setupファイアウォールルールに移動して変更すると、それらはに保存され/etc/sysconfig/iptablesます。そのファイルを直接編集することは想定されていませんが、iptablesコマンドライン形式がわかっている場合は、このファイルの形式を簡単に理解できます。


素晴らしい答え。詳細と説明に感謝します。ウォーレン、ありがとう。
Mike B

9

また、参考として、現在のiptablesルールをすべてフラッシュする方法を次に示します。

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$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

4
実際にはそれよりも多くのテーブルがあります。少なくとも-t raw-t security。ハードコーディングの代わりに、/proc/net/ip_tables_names
derobert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.