受信ウィンドウサイズの iptables 一致ルールですか?

受信ウィンドウサイズの iptables 一致ルールですか?

オプションが設定されていないパケットや特定のウィンドウ受信サイズが設定されているパケットに一致するルールが必要です。

IP (tos 0x0、ttl 66、id 9000、オフセット 0、フラグ [なし]、プロトコル TCP (6)、長さ 40) yyyy11111 > xxxxhttp: フラグ [S]、cksum 0xe425 (正しい)、seq 1729214256、win 715、長さ 0

したがって、このパケットには win 715、フラグ [none] があります -> このようなパケットをどのように一致させることができますか?

答え1

回答ありがとうございます。私は最善の解決策(最速)を見つけたと思います:

iptables -I INPUT -m u32 --u32 "6&0xFF=0x6 && 0>>22&0x3C@12&0xFFFF=0x02CB" -j LOG

上記の行は、TCP パケットであることを確認し、IP の長さを見つけて、それを比較する必要があるバイト (この例では 715) に適用します (追加の 2 バイトの抽出があります)。つまり、誰でも、優れたモジュール -> u32 を使用して、パケット内のすべてのビット/バイトを抽出/検索/比較できます。詳細については、次の URL を参照してください。iptables-u32.v0.1

答え2

Iptables には、TCP フラグと TCP オプションを処理するためのオプション、つまり--tcp-option numberと があります--tcp-flags

ウィンドウサイズについては、オプション 付きの文字列モジュールを使用できます。--hex-string patternしたがって、オプション があなたのケースでは有効になります。正確な結果を得るには、と--hex-string 02CBを使用して検索オフセットを制限する必要があります。 を見てください。--from--toiptables マニュアル詳細については。

関連情報