前提条件:
1、一台已经安装好CentOS 5.5操作系统的双网卡PC机;
2、设置好2个网卡的IP地址;在本实验中,做如下设置:
外网地址(eth1):172.16.40.10/255.255.248.0 (网关:172.16.40.254)
内网地址(eth0):192.168.0.254 (根据实际环境需要定义)
3、在Linux机器上ping172.16.*.*网段和192.168.*.*网段都能正常ping通。
配置过程:
注:蓝色字符代表我们需要输入的命令或者参数
1、启用防火墙
[root@localhost /]# service iptables start |
2、启用转发功能
查看系统是否启用了转发功能,可以执行如下命令:
[root@localhost /]# cat /proc/sys/net/ipv4/ip_forward |
如果结果为1,代表已启用,0代表未启用。如果为0,则我们需要启用转发功能;
启用转发功能:
# 设置Linux内核支持ip数据包的转发(让Linux主机有router功能) [root@localhost /]# echo "1" > /proc/sys/net/ipv4/ip_forward |
3、加载实现NAT功能必要的内核模块:
# 设置Linux内核支持ip数据包的转发(让Linux主机有router功能) [root@localhost /]# modprobe ip_tables [root@localhost /]# modprobe ip_nat_irc [root@localhost /]# modprobe ip_conntrack [root@localhost /]# modprobe ip_conntrack_irc |
如果需要允许外网用户访问内网的FTP服务器,需要加载以下内核模块
[root@localhost /]# modprobe ip_nat_ftp [root@localhost /]# modprobe ip_conntrack_ftp |
4、配置NAT规则
# 对iptables中的规则表进行初始化: # 刷新nat与链的所有规则 iptables -F iptables -F -t nat # 删除非默认的链和nat表的规则 iptables -X iptables -X -t nat # 把所有链的包及字节的计数器清空 iptables -Z iptables -Z -t nat
# 设置三条链的默认规格: iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
# 重置NAT表 iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT
# 允许本地回还接口(即运行本机访问本机) iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许已建立的或相关联的通行 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# NAT转换 iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth1 -j MASQUERADE
# FORWARD 点出规则(保证所有进入内网卡(eth0)的包都被 FORWARD点 ACCEPT) iptables -A FORWARD -i eth0 -j ACCEPT
# 允许本机往外ping iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# 允许SSH工具登陆 iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT |
防火墙保存、重启
[root@localhost /]# service iptables save [root@localhost /]# service iptables restart |
5、开机重置部分配置
[root@localhost etc]# vi /etc/rc.local 在尾部增加: echo "1" > /proc/sys/net/ipv4/ip_forward echo "1024" > /proc/sys/net/ipv4/neigh/default/gc_thresh1 echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh2 echo "4096" > /proc/sys/net/ipv4/neigh/default/gc_thresh3 |
这里echo的值根据我们实际情况进行调整,可以在服务器运行过程中通过输入arp -an|wc –l来确定你设置的参数,如果参数过小,则会导致新的链接无法通过NAT服务器。
NAT服务器已经搭建好了,192网段的设备网关地址设置为NAT服务器的内网地址(192.168.0.254)即可以通过NAT服务器正常访问外网了