我想设置一些 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)