Я пытаюсь использовать 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
Я не очень хорошо использовал u32 match engine, но похоже, что вы могли бы объединить его, да.
http://www.stearns.org/doc/iptables-u32.current .html
Согласно документации, вы можете связываться с & amp; & amp; так что то, что вы придумали, должно работать нормально:
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
Я не очень хорошо использовал u32 match engine, но похоже, что вы могли бы объединить его, да.
http://www.stearns.org/doc/iptables-u32.current .html
Согласно документации, вы можете связываться с & amp; & amp; так что то, что вы придумали, должно работать нормально:
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