在网关实现了之后,现在又需要把内网的机器某些端口映射到网关上,来实现从外网连接内部服务器的需求。
具体网关的实现,请参考:http://garey.bsdart.org/2010/03/freebsd-8-0的网关实现手册ipfwnatd/
在网关实现了之后,只需要作如下调整,即可实现端口重定向。
一、增加映射规则
vi /etc/rc.conf
natd_flags="-f /etc/natd.conf"
vi /etc/natd.conf
log yes
redirect_port tcp 192.168.0.100:21 21
redirect_port tcp 192.168.0.101:80 80
二、修改防火墙规则
vi /etc/ipfw.rules
#!/bin/sh
oif="tun0"
iif="em1"
fwcmd="/sbin/ipfw -q add"valid_tcpport="21, 22, 80"
/sbin/ipfw -q -f flush
$fwcmd 0100 allow all from any to any via $iif
$fwcmd 0110 allow all from any to any via lo0$fwcmd 0120 divert natd ip from any to any via $oif
$fwcmd 0200 check-state
$fwcmd 1000 allow all from any to any out via $oif keep-state
$fwcmd 1100 allow tcp from any to me $valid_tcpport in via $oif setup keep-state
三、重启服务器
这样,端口重定向就实现了。