9.3.2 Linux下NAT基本操作
下面通过简单例子给出Linux下NAT的启用和简单的地址转换操作。
(1)启动NAT服务
启动NAT服务实际上就是启动iptables服务。
首先建立开机自动启动防火墙的脚本文件。在/etc/rc.d/目录下用touch命令建立firewall_NAT文件,执行chmod u+x firewall_NAT以更改文件属性,指定拥有者才有执行的权限。编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall_NAT以确保开机时能自动执行该脚本。具体命令如下:
其次,在设置NAT之前,一般要先清除所有以前设置的规则,进行初始化,清除所有链中的规则。
在shell提示符#下依次键入下面的命令进行初始化:
[root@ localhost~]#iptables-t nat-F
[root@ localhost~]#iptables-t nat-X
将nat表中的链中规则清除和自定义的链删除。此外在redhat或fedora版本的Linux中,可以使用更简单的办法完成上面的初始化工作:
[root@ localhost~]#service iptables stop
完成以上两个步骤,下面就可以启用iptables服务。
[root@ localhost~]#service iptables start
或者是:
[root@ localhost~]#service iptables restart
如前所述,在使用iptables的NAT功能时,必须在每一条规则中使用“-t nat”指明当前使用nat表。
(2)设置源地址转换
称为Source NAT,即修改数据包的源地址,在POSTROUTING链中进行定义。并使用-o指定出去的网络接口。通过指定“-j SNAT”来完成源地址转换,使用”--to-source”选项指定一个或一段IP地址,以及一个或一段TCP或UDP端口号。
修改数据包源地址为222.17.10.253:
iptables-t nat-A POSTROUTING-o-eth1-j SNAT-to 222.17.10.253
修改数据包源地址为222.17.10.248至222.17.10.253:
iptables-t nat-A POSTROUTING-o-eth1-j SNAT-to 222.17.10.248-222.17.10.253
修改数据包源地址为222.17.10.243,协议类型TCP,端口号为80:
iptables-t nat-A POSTROUTING-p tcp-o-eth1-j SNAT-to 222.17.10.253:80
修改数据包源地址为222.17.10.243,协议类型TCP,端口号为1025-4095:
iptables-t nat-A POSTROUTING-p tcp-o-eth1-j SNAT-to 222.17.10.253: 1025-4095
修改数据包源地址为222.17.10.243,协议类型UDP,端口号为1025-4095:
iptables-t nat-A POSTROUTING-p udp-o-eth1-j SNAT-to 222.17.10.253: 1025-4095
(3)设置目的地址转换
称为Destination NAT,即修改数据包的目的地址,在PREROUTING链中进行定义。并使用-i指定进入的网络接口。通过指定“-j DNAT”来完成目的地址转换,使用”--to-destination”选项指定一个或一段IP地址,以及一个或一段TCP或UDP端口号。
修改数据包目的地址为210.17.10.253:
iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253
修改数据包目的地址为210.17.10.248至210.17.10.253:
iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.248-210.17.10.253
修改数据包目的地址为210.17.10.243,协议类型TCP,端口号为80:
iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:80
修改数据包目的地址为210.17.10.243,协议类型TCP,端口号为1025-4095:
iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:1025-4095
修改数据包目的地址为210.17.10.243,协议类型UDP,端口号为1025-4095: iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:1025-4095这里eth1接口为与外网连接的接口。其他还有IP伪装、重定向等操作可参考iptables的使用手册。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。