通过NAT和PF的FreeBSD Jail访问专用网络

时间:2020-01-09 10:44:02  来源:igfitidea点击:

我的FreeBSD 7.x服务器被配置为三个 Jail,分别运行邮件,Web和MySQL服务。
我的FreeBSD服务器有两个网络接口。
首先,接口连接到LAN,其他接口通过公共IP直接连接到Internet。
我的DNS服务器托管在专用网络(LAN)上。

FreeBSD 7.x Jail只支持一个接口和一个IP地址。
如何配置 Jail(FreeBSD vps)使用PF防火墙访问局域网中托管的DNS服务器?

NAT是您问题的答案。
您可以使用BSD PF或者FreeBSD防火墙来设置NAT。
使用NAT将所有专用流量路由到LAN。

这个简单的pf规则非常明确地说明了它将执行的操作。
我将源指定为我的公共IP子网,并将目标指定为10.0.0.0/8。
这使NAT成为可能,但针对此非常特定的需求。

打开/etc/pf.conf文件,执行:

# vi /etc/pf.conf

追加代码如下:

lan_if="em0"
lan_if_subnet="10.0.0.0/8"
lan_if_ip="10.28.11.10"
jail_vps_server_ip="192.54.2.3"
nat on $lan_if inet proto { tcp, udp, icmp } from $jail_vps_server_ip to $lan_if_subnet -> $lan_if_ip

保存并关闭文件。
重新加载新规则:

# /etc/rc.d/pf reload

其中:

  • lan_if = em0:服务器的真实接口名称。这已连接到局域网。

  • lan_if_subnet = 10.0.0.0/8:添加LAN子网。

  • lan_if_ip = 10.28.11.10:em0 IP地址

  • jail_vps_server_ip = 192.54.2.3: Jail服务器的公共IP地址。如果您为 Jail分配了5-6个公共IP地址(例如192.54.2.3/29),则可以使用子网。