我设置了一台 Windows Server 2022 PC 来监控所有 LAN 流量。我的计算机通过以太网连接到监视器 PC,并将其作为Firewall
我的 DD-wrt 路由器的脚本:
iptables -t mangle -A POSTROUTING -d 0.0.0.0/0 -j ROUTE --tee --gw 192.168.1.254
iptables -t mangle -A PREROUTING -s 0.0.0.0/0 -j ROUTE --tee --gw 192.168.1.254
当我对以太网适配器进行wireshark时,我没有看到任何镜像流量。我缺少什么想法吗?
答案1
我发现您的设置中可能存在两个问题。
1. 您的 dd-wrt 是否能够看到您感兴趣的流量?
你的dd-wrt实际上可能是一个小型交换机和路由器的组合。如果交换机组件已实现为简单的非托管交换机,则任何两个本地系统之间的任何流量都可以由交换机组件单独处理,并且路由器组件根本看不到它。在这种情况下,将流量传输到路由器组件的唯一方法是对交换机组件执行 MAC 表攻击。
如果您遇到此问题,那么您可能需要具有端口镜像功能的托管交换机。
2. 您正在尝试使用过时的 iptables 插件。
两者都不通用iptables
文档也不dd-wrt特定文档提及名为 的 iptables 目标ROUTE
。
即使它存在,您是否正在尝试调用过滤器链ROUTE
中的目标POSTROUTING
?我相信在当前存在的 iptables 处理中,“那艘船已经起航了”:没有办法从 POSTROUTING 步骤返回到路由决策步骤。 (简单图,更详细的图)重复的数据包必须从与原始数据包相同的接口发出,这可能不是正确的。
这个答案在 Server Failure.SE建议采用与您类似的语法,但请注意,答案是在 2011 年编写的,引用了 2008 年的博客,该博客似乎不再可访问。另一个链接涉及 patch-o-matic:过时的 iptables 附加系统它们太新/未经测试,无法进入主内核源代码。由于 patch-o-matic 首先被 patch-o-matic NG 取代,然后又被当前的xtables 插件,ROUTE
目标显然是在途中的某个地方掉落的。
即使您运行的是 10 年以上版本的 dd-wrt,它也可能包含也可能不包含 patch-o-matic 附加组件。您是否曾经iptables -L -vn -t mangle
确认过您的脚本命令确实已被接受并生效?
现代的等效方法将使用TEE
来自 的目标iptables-extensions
,并且出于谨慎考虑,我会添加一个条件来阻止它复制已经发送到监视器主机的任何数据包:
iptables -t mangle -A PREROUTING -d \! 192.168.1.254 -j TEE --gateway 192.168.1.254
上面的命令应该涵盖该主机的所有传入流量,但对于本地生成的传出流量,您将需要另一行:
iptables -t mangle -A OUTPUT -d \! 192.168.1.254 -j TEE --gateway 192.168.1.254
由于克隆发生在 PREROUTING 步骤中(如文档示例中给出的;我不确定是否可以在 POSTROUTING 步骤中完成,因为扩展的文档TEE
很少)
免责声明:我实际上没有测试过这些。