我有一台带有 2 个接口的服务器。一个小网络连接到 eth0 并通过 eth1 连接到互联网。为了允许 1 个 ip 进行 nat,我使用
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.23 -j SNAT --to-source=23.x.x.x
我想添加一条规则,允许单个 IP 进行 nat 并阻止 iptables 中已经存在的其他 IP(不删除它们)
iptables -t nat -A POSTROUTING -o OUT_IF \! -s ip_sursa -j SNAT --to-source=x3.xxx.1xx.1xx -j DROP
会工作?
或者,只允许 1 个 ip 通过 eth0 到 eth1 并进行 nat。
答案1
不建议DROP
在 NAT 表中使用。如果您想拒绝对这些 IP 地址的访问,最好使用过滤表。
否则,您可以使用不同的规则将这些 IP NAT 为不同的公共 IP。
更新
以下是仅允许一个 IP(192.168.0.100)所需的规则
iptables -A FORWARD -o eth1 -s 192.168.0.100 -j ACCEPT
iptables -A FORWARD -o eth1 -s 192.168.0.0/24 -j DROP
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.100 -j SNAT --to-source=23.x.x.x