一、 实验说明
1、通过DNS服务器实现内、外网IP智能解析
1)内网用户访问Apache服务器时,解析为其内网IP
2)外网用户访问Apache服务器时,解析为Fairwall的外网地址
3)Fairwall的外网IP:1.1.1.1/8
4)Apache服务器的内网IP:172.16.251.93/16
2、网站域名
www.shuishui.com
内网IP:172.16.251.93
外网IP:1.1.1.1/8
3、网络安全规划
1)为了安全,服务器使用内网IP,但允许外网用户通过防火墙访问
2)外网用户访问web服务器时,解析为防火墙的外网IP
4、实验平台环境
1)一台Apache服务器
2)一台cgi服务器
3)一台mysql服务器
4)DNS服务器部署到Apache服务器上
5、操作系统使用
共使用3台CentOS6.4,一台CentOS6.5
内网中的服务器全部采用CentOS6.4,外网中的用户作用CentOS6.5
6、IP分配
将在下面的拓扑图上直观的标出
7、关于网卡模式
1)内网的网卡都在桥接模式
2)防火墙的外网网卡及外网主机的网卡在VMnet5中
8、本实验关联博文:
1)《LAMP之一:apache、mysql、php的安装及互联互通》
http://nmshuishui.blog.51cto.com/1850554/1381822
2)《DNS服务器系列之一:DNS服务原理、安装及主从配置》
http://nmshuishui.blog.51cto.com/1850554/1378368
3) 《DNS服务器系列之二:高级配置之-DNS子域授权、区域转发、acl列表及view》
http://nmshuishui.blog.51cto.com/1850554/1379440
4)《iptables原理及语法》
http://nmshuishui.blog.51cto.com/1850554/1384802
9、关于DNS
DNS服务器的搭建及智能DNS解析的view功能,详情请参考第6条中的博文,这里将只做简单说明
10、关于网络环境
这里只搭建了一个内部网络环境,模拟一个公司的整个网络架构,对于外部的网络没再搭建,原理和方法都是一样的,在实验的时候,为了方便,只使用了一台电脑做为外网的用户,使用公网IP
二、网络拓扑
三、本次实验所用简单网络拓扑
为了实验方便,对于互联网中的用户,没有再为其搭建一个网络,而是直接使用一个公网IP来模拟一个互联网用户,原来是一样的,所以这里就不再搭建第二个网络了。
四、DNS智能解析规划
关于DNS的搭建、acl列表及view功能,这里只做使用,不再详解,详情情查看第一部分中第七条的链接
1、为了让不同的用户访问Web服务器时,能够根据其IP解析到不同的Web地址上(内网用户访问时使用内网IP,外网用户访问时得到防火墙的外网IP),所以我们需要为DNS服务器建立view功能,使其能够实现智能DNS解析,域名为shuishui.com
vim /etc/named.rfc1912.zones
1)定义内网用户的view
2)定义其它所有用户的view
2、定义完区域后,接下来就是为区域创建区域文件数据库,在编辑完区域文件数据库后,为了保证DNS服务器的正常运行,不要忘了执行DNS的六大步骤
1)创建区域数据库文件shuishui.com.zone
2)创建区域数据库文件shuishui.com.out
3、重启named服务,检查端口是否监听成功
4、检查DNS的view功能是否生效
五、防火墙配置
1、防火墙安装两块网卡,一块配到内网,一块连接外网
2、开启FORWARD转发功能
防火墙配置有两块网卡,内网的所有用户都要经过内网网卡(内网的网关),再经过转发到外网的网卡上实现网络通信;这两块网卡虽然安装在一台主机上,但是由于并不在一个网络中,所以默认并不可以通信,因此需要为其开启转发功能
vim /etc/sysctl.conf
1、NAT简单介绍
由于内网中的客户端较多,而公网IP有限,所以我们只能通过做NAT实现了
1)Basic NAT:静态NAT,这种NAT需要有地址池,第个内网地址都应该在地址池中有一个与之对应的外网地址,所以不用
2)NAPT:(Network Address Port Translation),即网络地址端口转换,它是一种动态的NAT
①、SNAT:源地址转换,用于让内网主机访问互联网,POSTROUTING链
②、DNAT:让互联网上主机访问本地内网中的某服务器上的服务,用于服务器发布
iptables就是基于SNAT和DNAT这两个目标实现地址转换的,我们这里这将内网的服务器发布到外面去,所以用的是DNAT
2、NAT使用格式:
1)-j SNAT --to-source SIP
规则添加:POSTROUTING链
-j MASQUERADE
地址伪装,无固定源IP,如果是ADSL的话,就需要用这种机制来实现
2)-j DNAT --to-destination DIP
规则添加:PREROUTING链
3、数据包流向图
所以,根据上图,我们内网的服务器要想经过防火墙发布出去,实现目标地址转换,把内网IP转换成防火墙的外网IP,就需要把规则定义在PREROUTING这个链上,而且我们是实现NAT转换的,所以应该针对的是nat这个表
4、配置规则
特别注意:在规则配置之前别忘了给内部主机配置网关,就是防火墙的内网IP!外部主机千万别配网关到1.1.1.1,人家是外部网络中的主机,我们不是运营商,所以我们的1.1.1.1它就不是一个网关
1)在PREROUTING上添加规则
默认我的Web主机在内网中,所以外网的用户是不能访问的,因此现在就需要在防火墙上做一个目标地址转换,凡是请求防火墙外网1.1.1.1这个地址的web和DNS请求都要给它转换到Web服务器的内网地址(172.16.251.93)中来。因为这个请求是先到POSTROUTING再经过FORWARD送到内网用户的,所以如果你的FORWARD链上默认规则是ACCEPT的话,则仅需定义下面这两条规则就可以了;如果你的FORWARD链上的默认规则是DROP,那你不得不再在FORWARD链上做tcp80,53和UDP53端口的转发
[root@stu7 ~]# iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp -m multiport --dports 80,53 -j DNAT --to-destination 172.16.251.93 [root@stu7 ~]# iptables -t nat -A PREROUTING -d 1.1.1.1 -p udp --dport 53 -j DNAT --to-destination 172.16.251.93
为了直观,贴两个图吧
nat表的规则
filter表的规则
六、外网客户端测试
1、IP地址设为1.1.1.2/8,与防火墙的外网地址(1.1.1.1/8)处于一个网络中,并且可以ping通
2、外网客户端的DNS设置为1.1.1.1
[root@stu7 ~]# vim /etc/resolv.conf search dns.shuishui.com nameserver 1.1.1.1
3、使用curl命令测试用IP是否能够请求到网站信息
4、使用curl命令测试用主机名是否能够请求到网站信息
5、为了消除疑惑,再ping一下网站吧,看看解析的到底是不是防火墙的外网IP地址
到这里,又要说拜拜了,谢谢光临!下次再来!