强制 LAN 内机器的传出端口

强制 LAN 内机器的传出端口

我正在运行 Ubuntu Server (natty) 作为专用网络前的网关/防火墙。我已成功启用 IP 转发和 NAT,以便防火墙后面的机器可以连接到 Internet(按照以下说明操作https://help.ubuntu.com/11.04/serverguide/C/firewall.html)。

我现在想要的是,这个防火墙后面的特定 IP,每当想要连接到外部服务时,强制只使用特定端口:

192.168.0.2(应用程序)-> 184.72.64.256(网关,虚构 IP)-> 51.72.64.256(服务,虚构 IP)

因此,每当 192.168.0.2 想要连接到 51.72.64.256 时,我希望路由器强制使用端口 10002(端口范围为 10002-12000)。51.72.64.256 允许从网关到端口 10002-12000 的连接。

有没有办法创建一个自定义链并将其插入 ufw,这样我仍然能够以预期的方式使用 ufw,并且能够在我在此防火墙后面添加机器时动态更新此链。

答案1

您可以通过添加 iptables 规则来实现这一点,该规则用于将对特定主机REDIRECT的所有请求重定向到另一个特定主机。--src--dport--to-ports

我看起来是这样的:

iptables -t nat -I OUTPUT --src 192.168.0.2 --dst 51.72.64.256 -p tcp --dport 80 -j REDIRECT --to-ports 10002

编辑:

Calin Don 经过测试后给出了正确答案:

iptables -t nat -I PREROUTING --src 192.168.0.2 --dst 51.72.64.256 -p tcp --dport 11000:12000 -j DNAT --to-destination 51.72.64.256:11002

相关内容