目标:阻止到此网关 LAN 端设备的 UDP 流量(使用 dd-wrt 固件),这些设备与互联网和彼此进行通信,以测试在每个设备上运行的特定通信应用程序。
例外:允许支持这些设备基本网络操作所需的最低限度的 UDP,以便这些设备继续与互联网和彼此进行通信(例如:通过 TCP)。
到目前为止我尝试过的:在此路由器/网关上添加规则(通过 SSH 会话):
iptables -I FORWARD -p udp -j DROP
iptables -I INPUT -p udp -j DROP
观察(哪些方面运作良好):
- 该规则
iptables -I FORWARD -p udp -j DROP
成功阻止了 LAN 端的设备通过 UDP 与 WAN 端的设备进行通信,这已通过实用程序在这些设备之间无法通信得到验证ncat -u
。
观察到(什么不起作用):
- LAN 端的设备可以使用 UDP 相互通信:
- 在设备 1 上(LAN 端):
ncat -lvu
# 使用默认端口 31337 上的 UDP 启动 ncat 监听器 - 在设备 2 上(LAN 端):
ncat -vu <ip-addr-device-1>
# 使用默认端口 31337 上的 UDP 启动 ncat 调用者
- 在设备 1 上(LAN 端):
期望(期望结果):
- 设备 2 上的 ncat 调用者无法使用 UDP 与设备 1 上的 ncat 监听器进行通信。
- 设备 2 上的 ncat 调用者有能力的通过不使用 ncat 参数,使用 TCP 与设备 1 上的 ncat 监听器进行通信
-u
。
附加信息:
- 使用命令
iptables -I INPUT -p udp -j DROP
会对太多其他通信产生影响,但无论如何都会使用,以证明该规则在阻止这两个设备之间的 UDP 通信方面无效。 - 使用硬件:tp-link AC1750(Archer C7 v5)
- 使用固件:dd-wrt,设置“操作模式 = 网关”
- 网关后面的设备是 UWP、iOS、Android。此处给出的示例使用 UWP(Windows 10)设备。
- 我见过如何阻止 UDP,同时仍允许使用 iptables 进行出站 UDP 连接?,但就我而言似乎无效,正如尝试所证明的那样
iptables -I INPUT -p udp -j DROP
。
答案1
您很可能无法干扰 LAN 到 LAN 的流量。据我所知,所有运行 DD-WRT / OpenWRT 的设备都配有集成交换机,可在第 2 层直接在 LAN 设备之间切换流量。
只有需要转发的流量才会被传递到系统的路由器部分(第 3 层),Netfilter 可以在此拦截流量。
您可以尝试设置一个带有多个以太网适配器的 Linux 机器,然后将这些适配器桥接在一起。然后您可以使用它br_netfilter
来强制 L2 流量通过 Netfilter,从而允许拦截流量。