iptables -F を実行した後、ホストにアクセスできない

iptables -F を実行した後、ホストにアクセスできない

RedHat Linux サーバーのファイアウォール設定をクリアしようとしていました。

を与えた後iptables -F、サーバーにアクセスできなくなりました。

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:diamondport
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:33336
ACCEPT     sctp --  anywhere             anywhere             sctp dpts:1024:65535
ACCEPT     udp  --  anywhere             anywhere             udp dpt:gtp-user
ACCEPT     udp  --  anywhere             anywhere             udp dpts:6000:lm-x

 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
# iptables -F

これを解決するのを手伝ってください。

答え1

iptables -Fを実行すると、すべてのチェーンのすべてのルールが削除されます。ただし、各チェーンにはポリシー削除は行われません。この場合、INPUT チェーンの DROP です。したがって、すべてのルールを削除し、ルールに一致しないトラフィックに DROP ポリシーを適用することになります。つまり、すべてがドロップされることになります。

これを確認するには、iptables -L -n を実行します。次のような表示が出るはずです。

Chain INPUT (policy DROP)
target     prot opt source               destination
[it's empty]

これは正常な動作です。デフォルトのポリシーを変更することもできますが、セキュリティの観点からはまったく異なる動作になります。一致するルールがない場合はトラフィックが常に受け入れられますが、これはおそらく望ましい動作ではありません。

最善の方法は、 を使って iptables ポリシーを永続的に変更するときに、 のフラッシュと保存を避けることですiptables-save。こうすることで、以前の設定を保存して復元したり ( )、必要に応じて変更したりすることができますiptables-restore < rules.bak

答え2

コンソールを再起動するとホストマシンにアクセスできるようになります。ありがとうございます

関連情報