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