web-dev-qa-db-ja.com

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

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

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

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

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

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

8
Mike B

iptablesルールは、Red Hatシステムの2つの場所に保存されています。

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

  • ブート時にロードされる/etc/sysconfig/iptables内。 service iptables reloadまたは...restartを使用すると、再起動せずに強制的にリロードできます。

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

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

13
Warren Young

また、参考として、現在の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
9
Steve Dibb