linux – 使用iptables过滤镜像端口流量

linux – 使用iptables过滤镜像端口流量,第1张

概述我从镜像端口接收流量,我想将其发送到NFQUEUE进行处理.由于镜像端口,数据包目标MAC地址不是我的主机MAC地址.因此,流量永远不会达到我的NFQUEUE. (如果我拿一个数据包并使用Scapy手动用我的主机MAC地址替换目标MAC地址,它可以工作) 即使在过滤管道中尽快应用iptable规则,它也不能与镜像端口一起使用: iptables -A PREROUTING -t raw -j NF 我从镜像端口接收流量,我想将其发送到NFQUEUE进行处理.由于镜像端口,数据包目标MAC地址不是我的主机MAC地址.因此,流量永远不会达到我的NFQUEUE. (如果我拿一个数据包并使用Scapy手动用我的主机MAC地址替换目标MAC地址,它可以工作)

即使在过滤管道中尽快应用iptable规则,它也不能与镜像端口一起使用:

iptables -A PREROUTING -t raw -j NFQUEUE --queue-num 1

正如其他一些主题中所提到的,我尝试在我的界面上创建一个桥接器并使用以下命令过滤流量.

tunctl -u rootbrctl addbr br0brctl addif br0 eth0brctl addif br0 tap0brctl setfd br0 0brctl stp br0 off  ifconfig br0 upifconfig eth0 up 0.0.0.0ifconfig tap0 up 0.0.0.0echo 0 > /sys/class/net/br0/brIDge/ageing_timeecho 1 > /proc/sys/net/brIDge/brIDge-nf-call-iptablesiptables -Fiptables -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 eth0iface eth0 inet manual    up ifconfig eth0 promisc up    down ifconfig eth0 promisc down

红帽

BOOTPROTO=staticDEVICE=eth0TYPE=EthernetPROMISC=yes...
总结

以上是内存溢出为你收集整理的linux – 使用iptables过滤镜像端口流量全部内容,希望文章能够帮你解决linux – 使用iptables过滤镜像端口流量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1035774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存