小编Sco*_*MVP的帖子

仅用于两个端口的 IPTables 和 SNAT

我想设置一些 NAT 策略,以便某些机器只能对 http/https 进行出站访问。他们不应该能够从他们的机器上进行端口扫描或其他任何事情。

目前我的 NAT 规则是:

-A PREROUTING -d 1.2.3.4 -j DNAT --to-destination 10.10.1.10
-A POSTROUTING -s 10.10.1.10 -j SNAT --to-source 1.2.3.4
Run Code Online (Sandbox Code Playgroud)

我有这个共享规则:

-A POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

1.2.3.4是公网IP,10.10.1.10是内网IP。

这允许直接通过 NAT 的所有入站和出站访问。

我尝试了以下 POSTROUTING 规则而不是上面的规则:

-A POSTROUTING -s 10.10.1.10 -p tcp --dport 80 -j SNAT --to-source 1.2.3.4:80
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用。添加该规则后,我仍然可以从工作站使用 RDP。

概括地说,我的目标是允许某些工作站只能通过 http/https 访问 Internet。应阻止所有其他出站流量。应该允许所有流量。我希望网络中的所有其他工作站都使用现有的 NAT 策略,以允许对所有出站流量进行 NAT。

更新 根据@Zoredache 的回复,我现在有以下 Postrouting 规则。

-A POSTROUTING -s 10.10.1.10/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 1.2.3.4:80
-A POSTROUTING …
Run Code Online (Sandbox Code Playgroud)

nat iptables

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

iptables ×1

nat ×1