如何定义 iptables 规则以将给定接口的所有传输添加到 nfqueue

如何定义 iptables 规则以将给定接口的所有传输添加到 nfqueue

在 Ubuntu 上运行。我有机器 1 < - > 机器 2 < - > 机器 3。我不知道机器 1 或机器 3 的 IP。它可以是任何 IP。机器 1 向机器 3 发送数据包,机器 3 向机器 1 发送数据包。

机器2作为桥梁:

ifconfig eth0 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth0 eth2
ifconfig br0 up

我希望在机器 2 中有一个 iptable 规则,将所有进入 eth0 的流量添加到 nfqueue1,将所有进入 eth2 的流量添加到 nefqueue2。

现在我有以下规则:

iptables -A FORWARD -p tcp -j NFQUEUE --queue-num 0

这对我来说并不好,因为我想区分来自机器 3 的流量和来自机器 1 的流量,所以我想要有 2 条规则。

将 -i eth0 添加到规则中没有帮助。

答案1

因为你在操作一座桥,所以你需要使用-m physdev

为了使用,运行iptables -m physdev -h- 如果您编译自己的内核,则可能需要添加此模块。

相关内容