linux – 使用iptables过滤镜像端口流量
发布时间:2020-12-14 02:47:56 所属栏目:Linux 来源:网络整理
导读:我从镜像端口接收流量,我想将其发送到NFQUEUE进行处理.由于镜像端口,数据包目标MAC地址不是我的主机MAC地址.因此,流量永远不会达到我的NFQUEUE. (如果我拿一个数据包并使用Scapy手动用我的主机MAC地址替换目标MAC地址,它可以工作) 即使在过滤管道中尽快应用i
我从镜像端口接收流量,我想将其发送到NFQUEUE进行处理.由于镜像端口,数据包目标MAC地址不是我的主机MAC地址.因此,流量永远不会达到我的NFQUEUE. (如果我拿一个数据包并使用Scapy手动用我的主机MAC地址替换目标MAC地址,它可以工作)
即使在过滤管道中尽快应用iptable规则,它也不能与镜像端口一起使用: iptables -A PREROUTING -t raw -j NFQUEUE --queue-num 1 正如其他一些主题中所提到的,我尝试在我的界面上创建一个桥接器并使用以下命令过滤流量. tunctl -u root brctl addbr br0 brctl addif br0 eth0 brctl addif br0 tap0 brctl setfd br0 0 brctl stp br0 off ifconfig br0 up ifconfig eth0 up 0.0.0.0 ifconfig tap0 up 0.0.0.0 echo 0 > /sys/class/net/br0/bridge/ageing_time echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables iptables -F iptables -A FORWARD -j NFQUEUE --queue-num 1 但即便是这个解决方案也无法解决我的问题.由于bridge-nf-call-iptables指令,流量不会通过网桥.但是我无法在队列中获取数据包. 顺便说一句,我的内核版本是3.13.0-32. 我正在寻找任何解决方案,允许将带有随机mac地址的接收数据包放入我的NFQUEUE. 谢谢你的帮助, 解决方法
您的内核会忽略未发送到本地网络接口的软件包.您应该将eth0更改为混杂模式:
ip link set dev eth0 promisc on 您可以通过网络配置使其持久化: Debian的 auto eth0 iface eth0 inet manual up ifconfig eth0 promisc up down ifconfig eth0 promisc down 红帽 BOOTPROTO=static DEVICE=eth0 TYPE=Ethernet PROMISC=yes ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |