回答:
あなたの質問に簡潔に答えるために、いいえ:すべてのテーブルをフラッシュした後に「残りの」ルールはありません。ただし、徹底的であるために、組み込みINPUT
およびFORWARD
チェーンのポリシーをACCEPT
同様に設定することもできます。
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t mangle -F
iptables -F
iptables -X
ip6tablesルールをクリアします。
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
...そしてそれでうまくいくはずです。iptables -nvL
この(または非常に類似した)出力を生成する必要があります。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
there would not be any "leftover" rules after flushing every table
OPはすべてのテーブルをフラッシュするわけではありません。あなたもしません。徹底したい場合は次のようになります。また、追加することもできiptables -t "$table" -Z
ます。この方法では、テーブルとそのチェーンのリストをハードコーディングしていることに注意してください。だから私は真剣に保存復元ソリューションを検討します。または、単にiptablesをアンロードできます。
これにより、iptablesシステムが非常に基本的な状態に正しく完全にリセットされます。
iptables-save | awk '/^[*]/ { print $1 }
/^:[A-Z]+ [^-]/ { print $1 " ACCEPT" ; }
/COMMIT/ { print $0; }' | iptables-restore
すべてのポリシーはACCEPTにリセットされ、現在使用中のすべてのテーブルがフラッシュされます。組み込みチェーン以外のすべてのチェーンは存在しなくなります。
iptables
ツールが明示的に提供するAPI IMO に固執するのが最善です。
print $1
とprint $0
一貫:)されるように
iptables
カーネルからモジュールを単にアンロードできます:
modprobe -r iptable_raw iptable_mangle iptable_security iptable_nat iptable_filter
UPD残念ながら、あまりにも良いことです。テーブルにルールまたはユーザー定義のチェーンがある限り、対応するモジュールの参照カウントは1であり、modprobe -r
失敗します。次のようにルールとユーザー定義チェーンを削除できます。
echo $'*raw\nCOMMIT\n*mangle\nCOMMIT\n*security\nCOMMIT\n*nat\nCOMMIT\n*filter\nCOMMIT' | iptables-restore
または:
iptables-save | awk '/^[*]/ { print $1 "\nCOMMIT" }' | iptables-restore
また、この方法でモジュールをアンロードすることもできます(モジュール名をハードコーディングしないでください):
lsmod | egrep ^iptable_ | awk '{print $1}' | xargs -rd\\n modprobe -r
明るい面では、これiptables-save
が素敵な空の出力を生成した後:)
1つまたは2つのコマンドでこれを行うことができます。
$ sudo iptables-save > iptables.bak
$ sudo iptables -F
結果:
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 3138 packets, 5567K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 3602 packets, 6547K bytes)
pkts bytes target prot opt in out source destination
私は最近、すべての接続をブロックする必要がありました
iptables-policy INPUT DROP
iptables-policy OUTPUT DROP
iptables-policy FORWARD DROP
保存に関しては、以下をお勧めします
Ubuntu:
/etc/init.d/iptables save
/sbin/service iptables save
RedHat / CentOS:
/etc/init.d/iptables save
/sbin/iptables-save
過去にこれを使用したすべての現在のufwルールのバックアップに加えて
cp /lib/ufw/{user.rules,user6.rules} /<BACKUP LOCATION>
cp /lib/ufw/{user.rules,user6.rules} ./
これは今後の参考に役立つと思います。私は共有すると思いました。