iptables TCP フラグ

iptables TCP フラグ

私は iptables とネットワークの初心者なので、このような初心者的な質問はご容赦ください。

不正なパケットをフィルタリングする部分をインターネットで見つけました:

/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL SYN -m state --state NEW -j RETURN

しかし、私の知る限り、最初の (新しい) パケットには SYN フラグが含まれているはずで、このルールによって新しい接続が防止されるのでしょうか? それとも、私はこれを誤解しているのでしょうか?

また、以下のルールを適用すると何が起こるでしょうか?

/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL FIN,PSH,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG,FIN

私の考えが正しければ、アクションは発生しません。iptables は上記のフラグをチェックし、次のルールに進むだけですよね?

答え1

2 番目の例にはアクションがないため、統計を累積する以外は何も実行されません。

iptables -xvn -L tcpchk

ALL SYNは確立された接続に一致し、確立された接続をtcpchkチェーンからキックアウトし、その親チェーン(おそらくINPUT)に戻します。-j 戻るパケットを親に返します。

このルールは、実際に何かを落としたり拒否したりしないため、誤動作を引き起こすことはありません。

関連情報