我想将 RDP 数据包与 mstshash cookie 和 u32 iptable 的扩展进行匹配。在 Debian Jessie 上使用
Linux version 3.16.0-4-amd64 ([email protected]) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07)
下一条规则有效(TPKT v3,长度 47):
-m u32 --u32 "0>>22 & 0x3C @ 12>>26 & 0x3C @ 0=0x0300002f"
但是,如果为 COTP PDU“CR 连接请求”添加接下来的 4 字节校验:
-m u32 --u32 "0>>22 & 0x3C @ 12>>26 & 0x3C @ 0=0x0300002f && 0=0x2ae0000"
规则不再匹配。但我需要检查数据包中的更多字节序列。
我正在检查的数据包的一部分:
0x0030: ffff fab3 0000 0300 002f 2ae0 0000 0000 ........./*.....
0x0040: 0043 6f6f 6b69 653a 206d 7374 7368 6173 .Cookie:.mstshas
这是否意味着 u32 只能检查 4 个字节而不能检查不同位置的字节序列?
答案1
当你需要匹配超过一条 iptables 规则允许的条件时,可以使用多条规则。第一条规则包含第一个匹配项并跳转到包含第二条规则的链,然后第二条规则包含另一个匹配项和实际目标操作。