使用 ebtables-iptables-ddwrt 记录 LAN 流量

使用 ebtables-iptables-ddwrt 记录 LAN 流量

目标

我正在尝试将内部(eth0->eth0[via br0])流量记录到 DD-WRT 上的 syslog。

问题

iptables 无法看到桥接流量。通过 ebtables 也无法看到相同的流量。

我尝试过的事情

我会发布我已经尝试过的方法,但我基本上已经尝试了所有方法,快速回顾一下:

insmod ebt*  #load all ebtables and extensions

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

ebtables -t nat -A PREROUTING --logical-in br0 -p ipv4 -j redirect --redirect-target ACCEPT

将日志记录[作为第一条规则]添加到 ebtables 和 iptables 的所有表和链中

通过将“桥接”流量重定向到网络层来“欺骗” iptables

设置(基本上是库存的 DD-WRT v3):

br0 = eth0[lan] + ath0[wlan]

没有静态路由

无 STP

我想要的是

编辑:
我想记录从 192.168.2.3(lan/eth0/br0)到 192.168.2.4(lan/eth0/br0)的所有流量,基本上是 eth0(lan 端口)上设备之间的任何流量

[我可以记录通过网桥的所有其他流量,从局域网到广域网,反之亦然。查看日志后,我确实通过 ebtables 和 iptables 的某种组合非常短暂地实现了这一点(示例输出:

2016-XX-XXTXX:XX:41-XX:00 XXXXX kernel: [  XXX.850000] ACCEPT_ebt IN=br0 OUT=br0 MAC=XXXXXXXXXXXXXXXXXX SRC=192.168.2.12 DST=192.168.2.16 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=35259 DF PROTO=TCP SPT=45879 DPT=22 etc....
`] 

为我指明正确的方向

告诉我我做错了什么

告诉我如何实现这一点

修改

Module                  Size  Used by
ebt_802_3                708  0 
ebt_among               2116  0 
ebt_arp                 1572  0 
ebt_arpreply            1060  0 
ebt_dnat                 804  0 
ebt_ip                  1252  0 
ebt_limit                948  0 
ebt_log                 2100  0 
ebt_mark                 692  0 
ebt_mark_m               628  0 
ebt_nflog                660  0 
ebt_pkttype              580  0 
ebt_redirect             868  0 
ebt_snat                 852  0 
ebt_stp                 1780  0 
ebt_ulog                2724  0 
ebt_vlan                 916  0 
ebtable_broute           756  0 
ebtable_filter           916  0 
ebtable_nat              916  0 
ebtables               14253  3 ebtable_broute,ebtable_filter,ebtable_nat

路线

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.11.AA.BB     0.0.0.0         UG    0      0        0 ppp0
10.11.AA.BB     *               255.255.255.255 UH    0      0        0 ppp0
10.137.0.0      SerVer          255.255.0.0     UG    0      0        0 br0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
169.254.0.0     *               255.255.0.0     U     0      0        0 br0
192.168.2.0     *               255.255.255.0   U     0      0        0 br0

答案1

如果您所说的“eth0 上的设备”是指集成硬件交换机,该交换机为您提供路由器上通常的四个 LAN 端口和eth0在 SoC 上显示的第五个端口,那么您不能那样做,因为流量停留在硬件交换机中,永远不会进入 SoC,也永远不会出现在eth0或上br0

根据您拥有的硬件,您可能能够使用swconfig将实际交换机端口作为网络接口公开给内核(例如 VLAN 接口eth0.1eth0.4。然后您可以将所有这些添加到br0,并记录流量(与硬件交换机相比,此配置的带宽也将显着减少)。

但并非所有硬件都支持此功能。

相关内容