iptables 接收窗口大小的匹配规则?

neo*_*eoX 2 linux iptables

我需要一个规则来匹配没有设置选项和/或设置特定窗口接收大小的数据包:

IP (tos 0x0, ttl 66, id 9000, offset 0, flags [none], proto TCP (6), length 40) yyyy11111 > xxxxhttp: Flags [S], cksum 0xe425 (正确), seq 17292147256, win length 0

所以这个数据包有 win 715, flags [none] -> 我怎么能匹配这样的数据包?

小智 5

感谢您的回答,但我想我找到了最好的解决方案(速度最好):

iptables -I INPUT -m u32 --u32 "6&0xFF=0x6 && 0>>22&0x3C@12&0xFFFF=0x02CB" -j LOG
Run Code Online (Sandbox Code Playgroud)

上面的行确保它是一个 TCP 数据包,然后找到 IP 长度并将其采用(有额外的两个字节提取)需要比较的字节(在示例中为 715)。总之,每个人都可以使用伟大的模块 -> u32 提取/查找/比较数据包中的每一位/字节。更多信息:iptables-u32.v0.1