Iptables 过滤和使用辅助 IP 地址的 NAT

Iptables 过滤和使用辅助 IP 地址的 NAT

我的物理 eth 接口上有两个 IP 地址。假设为 192.168.10.7 (eth0:0) 和 192.168.0.7 (eth0)。所以它有效。但我使用应用程序,在端口 12000 上仅使用其中一个地址。它在此应用程序中内部设置为在地址 192.168.0.7 上工作。我也使用 iptables 将应用程序设置为在地址 192.168.10.7 上工作,方式如下:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 192.168.10.7 --dport 12000 -j DNAT --to 192.168.0.7:12000

现在我想阻止除端口 12000 之外的所有传入 IP 地址 192.168.10.7(接口 eth0:0)的流量。其余所有流量必须保持不变。我不是 iptables 专家。有人能帮助我吗?

答案1

假设你的 iptables 规则与你的应用程序在同一台机器上运行,你必须定义一个规则来接受到地址和应用程序端口的传入和传出数据包,然后你只需简单地放弃其他所有内容,看起来像这样:

iptables -A 输入 -p tcp -d 192.168.10.7 --dport 12000 -j 接受
iptables -A 输出 -p tcp -s 192.168.10.7 --sport 12000 -j 接受

iptables -A 输入 -j 丢弃
iptables -A 输出 -j 丢弃

相关内容