iptables:使用-m u32函数时如何显示“不等于/匹配”

iptables:使用-m u32函数时如何显示“不等于/匹配”

在 iptables 中,可以使用 -m u32 --u32 将数据包中的某些字节与用户定义的值进行匹配。例如,

iptables -A 输入 -p tcp --dport 1000 -m u32 --u32 “xxxxxxxxxxx=0x11” -j 拒绝

通过上面的iptables规则,如果某个1字节的值是等于0x11。

我的问题是:如何呈现“不等于“ 或者“不匹配”? 从 iptables 的 man 页面来看,好像没有 !-m 或 -m! 这个功能。

答案1

-m u32命令行的部分指定模块。部分--u32指定实际表达式。因此,您要查找的语法是:

iptables -A INPUT -p tcp --dport 1000 -m u32 ! --u32 "xxxxxxxxxxx=0x11" -j REJECT

另请参阅iptables-extensions 手册页,摘录如下:

 u32
       U32 tests whether quantities of up to 4 bytes extracted from a
       packet have specified values. The specification of what to
       extract is general enough to find data at given offsets from
       tcp headers or payloads.

       [!] --u32 tests
              The argument amounts to a program in a small language described below.

相关内容