gpt4 book ai didi

linux - 如何在 linux 中基于 tcp 选项字段丢弃数据包

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:43 24 4
gpt4 key购买 nike

我想根据 TCP 选项字段丢弃我的 Linux 主机的传入流量。像 TCP 选项 30 多路径 TCP。如果数据包包含多路径 tcp 表示法或选项字段 30,那么我的 Linux 主机需要丢弃连接或数据包。

我的设置是主机 1 <-> 主机 2 <-> 主机 3。主机 1 通过主机 2 向主机 3 发送数据包。主机 2 有两个接口(interface) 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 数据包。

最佳答案

首先,您需要在 host2 上的 FORWARDING 链中添加规则(原因是数据包不以 host2 为目标,不会命中 INPUT 链)。

iptables 中有一个选项可以匹配 TCP 选项。请尝试以下 iptables 命令:

iptables -I FORWARD -p tcp --tcp-option 30 -j DROP

关于linux - 如何在 linux 中基于 tcp 选项字段丢弃数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com