iptables 接收視窗大小的符合規則?

iptables 接收視窗大小的符合規則?

我需要一條規則來匹配未設定選項和/或設定特定視窗接收大小的資料包:

IP (tos 0x0, ttl 66, id 9000, 偏移0, 標誌[無], proto TCP (6), 長度40) yyyy11111 > xxxxhttp: 標誌[S], cksum 0xe425 (正確), seq 17292142566 , 長度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)。總之,每個人都可以使用偉大的模組 -> u32 提取/尋找/比較資料包中的每一位/位元組。欲了解更多資訊:iptables-u32.v0.1

答案2

Iptables 有處理 TCP 標誌和 TCP 選項的選項,即--tcp-option number--tcp-flags

對於視窗大小,您可以使用 string 模組和選項:--hex-string pattern。因此,該選項將--hex-string 02CB根據您的情況而定。為了獲得準確的結果,您應該使用--from和限制搜尋偏移量--to。看著iptables手冊了解更多。

相關內容