我正在尝试使用 iptables 和 modbus 作为防火墙。是否可以将下面的两个规则实现为一行规则?
sudo iptables -A INPUT -p tcp --dport 4031 -m u32 ! --u32 "0>>22&0x3c @12>>26&0x3c @0>>24&0xff=0x11" -j REJECT
sudo iptables -A INPUT -p tcp --dport 4031 -m u32 ! --u32 "0>>22&0x3c @12>>26&0x3c @0&0xffff=0x0088,0x0089,0x008A" -j REJECT
iptables 似乎接受下面的规则,但我不确定它是否像预期的那样像 AND 函数一样正常工作。
sudo iptables -A INPUT -p tcp --dport 4031 -m u32 ! --u32 "0>>22&0x3c @12>>26&0x3c @0>>24&0xff=0x11 && 0&0xffff=0x0088,0x0089,0x008A " -j REJECT
答案1
我自己并没有经常使用 u32 匹配引擎,但是看起来你可以将它结合起来,是的。
http://www.stearns.org/doc/iptables-u32.current.html
根据文档,您可以使用 && 进行链接,因此,您想出的方法应该可以正常工作:
sudo iptables -A INPUT -p tcp --dport 4031 -m u32 ! --u32 "0>>22&0x3c @12>>26&0x3c @0>>24&0xff=0x11 && 0>>22&0x3c @12>>26&0x3c @0&0xffff=0x0088,0x0089,0x008A" -j REJECT