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

前端之家收集整理的这篇文章主要介绍了linux – 使用iptables过滤镜像端口流量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从镜像端口接收流量,我想将其发送到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
...

猜你在找的Linux相关文章