我需要一條規則來匹配未設定選項和/或設定特定視窗接收大小的資料包:
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手冊了解更多。