iptables u32 最多可以匹配 4 个字节?

iptables u32 最多可以匹配 4 个字节?

我想将 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 规则允许的条件时,可以使用多条规则。第一条规则包含第一个匹配项并跳转到包含第二条规则的链,然后第二条规则包含另一个匹配项和实际目标操作。

相关内容