iptables icmp ルール適用遅延

iptables icmp ルール適用遅延

すべての着信接続を無効にするようにiptablesを設定しました。

:INPUT DROP [0:65535]

iptablesを起動した後、次のコマンドを実行してpingを有効にします。

/usr/sbin/iptables -A INPUT -m icmp --icmp-state 8 -j ACCEPT
/usr/sbin/iptables -A INPUT -m icmp --icmp-state 0 -j ACCEPT

iptablesルールは、/etc/init.d/iptables statusWindowsとLinuxの両方のPCでデバイスをpingできます。次に、次のコマンドを実行して削除します。

/usr/sbin/iptables -D INPUT -m icmp --icmp-state 8 -j ACCEPT
/usr/sbin/iptables -D INPUT -m icmp --icmp-state 0 -j ACCEPT

iptablesルールが削除されたことを確認しました/etc/init.d/iptables status。予想通り、Linux PCでデバイスをpingできません。ただし、Windows PCで1〜2分間デバイスをpingできますが、pingはできません。

Windows XP PCはデバイスを無期限にpingしません(つまり、-tを使用しません)。しかし、この結果が現れるのはなぜですか?

ベストアンサー1

あなたが提供したすべての情報によれば、ルールを削除すると、Linux PCのIPアドレスはもう存在しなくなり、トラフィックが減少するとiptables conntrack table推測されます。 Windows PC の IP アドレスがまだ conntrack テーブルに表示される可能性があるため、そのトラフィックは許可されます。

iptables各ルールを上から下に作業します。したがって、ルールを定義する順序がiptables非常に重要です。あなたの場合、チェーンは次INPUTのとおりです。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 127.0.0.0/255.0.0.0 -j ACCEPT
....
-A INPUT -m icmp --icmp-state 8 -j ACCEPT
-A INPUT -m icmp --icmp-state 0 -j ACCEPT

したがって、ルールを削除しても、ICMPクライアント接続がconntrackテーブルにある場合は、まだ許可されていることがわかりますiptables

あなたは読むことができますiptables conntrack table ここ:

接続で双方向トラフィックが確認されると、conntrack エントリは [UNREPLIED] フラグをクリアしてリセットします。接続に双方向トラフィックがないことを示すエントリは、エントリの末尾にある[ASSURED]フラグに置き換えられます。 [ASSURED]フラグはこの接続が保証され、追跡可能な最大接続数に達しても削除されないことを示します。したがって、保証されていない接続([ASSURED]とマークされていない接続)とは異なり、[ASSURED]とマークされた接続は削除されません。接続追跡テーブルが保持できる接続の数は、最近のカーネルのip-sysctl機能で設定できる変数によって異なります。このエントリが保持するデフォルト値は、保持するメモリの量によって大きく異なります。 128 MB RAMでは8192個のエントリが得られ、256MB RAMでは16376個のエントリが得られます。 /proc/sys/net/ipv4/ip_conntrack_max 設定で設定を読み込んで設定できます。

おすすめ記事