私は 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 戻るパケットを親に返します。
このルールは、実際に何かを落としたり拒否したりしないため、誤動作を引き起こすことはありません。