Iptables(二):NAT转换
简介:
NET:Network Address Translation,网络地址转换;是一种在IP封包通过路由器或防火墙时重写源IP地址或目的IP地址的技术。
早期发明NAT是为了在网络中隐藏自己真实的IP,以实现一定的安全保护功能;随着互联网的飞速发展,ipv4地址逐渐耗尽,NAT作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。
SNAT:源地址转换
DNAT:目标地址转换
PNAT:端口转换
实验拓扑:
实验目标:
内网访问内外网web服务器,地址解析为防火墙的外网地址;
外网访问内网web服务器,地址解析为防火墙的内网地址;
实验环境:
OS:CentOS6.7-x86_64
防火墙:
eth0外网IP:172.16.0.1/16
eth1内网IP:192.168.0.1/24
外网web服务器:
IP:172.16.0.2/16
网关:172.16.0.1
内网web服务器:
IP:192.168.0.2/24
网关:192.168.0.1
实验流程:
所有主机关闭selinux
两台web服务器关闭防火墙
外网web服务器:
安装httpd服务:
[root@node1 ~]# yum install httpd
提供web页面文件:
[root@node1 ~]# echo "domain1.chencer.org" > /var/www/html/index.html
启动httpd服务并设置为开机自动启动:
[root@node1 ~]# service httpd start
[root@node1 ~]# chkconfig httpd on
内网web服务器:
安装httpd服务:
[root@node2 ~]# yum install httpd
提供web页面文件:
[root@node2 ~]# echo "domain2.chencer.org" > /var/www/html/index.html
启动httpd服务并设置为开机自动启动:
[root@node2 ~]# service httpd start
[root@node2 ~]# chkconfig httpd on
防火墙配置:
启动iptables服务,并设置为开机自动启动:
[root@node0 ~]# service iptables start
[root@node0 ~]# chkconfig iptables on
打开网络转发功能:
[root@node0 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@node0 ~]# sysctl –p
配置SNAT:允许内网多台主机通过1个外网IP访问外网资源;
[root@node0 ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 172.16.0.1
配置DNAT:允许内网多台web服务器通过1个外网IP提供服务;
[root@node0 ~]# iptables -t nat -A PREROUTING -d 172.16.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
保存防火墙配置:
[root@node0 ~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
访问测试:
内网主机访问外网web服务:
[root@node2 ~]# curl http://172.16.0.2/
domain1.chencer.org
外网主机访问内网web服务:
[root@node1 ~]# curl http://192.168.0.2
domain2.chencer.org