我想根据TCP选项字段删除Linux主机的传入流量。 像TCP选项30多路径TCP。 如果数据包包含多路径tcp表示法或选项字段30,那么我的Linux主机需要丢弃连接或数据包。
我的设置是主机1< - >主机2 - < - >主持人3。 主机1通过主机2将数据包发送到主机3。 主机2有两个接口eth0和eth1。 eth0连接主机1,eth1连接主机3。 当传入的eth 0数据包包含选项字段30时,我只想取消连接或丢弃数据包。
我尝试了iptables
字符串比较,但它没有效果。
命令是,
sudo iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "Multipath TCP" --algo bm.
但是上述规则并未阻止多路径TCP通过主机2 eth0,eth1发送和接收。 主机2无法丢弃多路径TCP(选项字段30)流量。 是否可以根据选项字段删除特定的TCP数据包。
答案 0 :(得分:0)
首先,您需要在host2上的FORWARDING链中添加规则(原因是数据包不是以host2为目标,也不会命中INPUT链。)
iptables
中有一个选项可用于匹配TCP选项。请尝试以下iptables
命令:
iptables -I FORWARD -p tcp --tcp-option 30 -j DROP