iptablesの新しい接続と--syn


13

次の違いは何ですか?

iptables ... -m state --state NEW

そして

iptables ... --syn

最初の接続は新しい接続を選択する必要がありますが、新しい接続はTCP synフラグを送信することで作成されます。もう1つは、synフラグを持つパケットだけを意味します。

上記のコマンドが異なる結果を返す場合、実用的な例を挙げることができますか?

回答:


8

--synフラグは、TCPトラフィックをチェックするために有用であるが、NEW状態が(を含む他のプロトコルのために使用することができるTCP)などUDPICMP。これはTCPオプションNEWよりも一般的です--syn

iptablesマニュアルから、次を読むことができます:

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

たとえば、DNS要求はNEW状態と一致し--synますが、オプション付きのルールとは一致しません。単純に、それはUDPデータグラムです。

また、この--synオプションを使用して、不正なフラグの組み合わせを持つTCPパケットをチェックし、それらをドロップできます。

また、これらのオプションの両方を一緒に使用して、最初のパケットとしてNEWTCPフローをチェックし--syn、次のようにドロップできます。

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

ここでは、このタイプのパケットを、bad_tcp_packetsドロップ/ロギングなどと呼ばれるユーザー定義のチェーンに追加しています...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.