所有网站都是部署在网络中的具体某个服务器上的,我们通常在浏览器的地址栏中输入网站的网址来访问这个网站,网址的格式类似于www.xxxx.com,那么我们的浏览器是如何知道这个网址对应了网络中的哪一台服务器呢?

我们知道,在网络中,一般用ip地址来标识一台设备的位置,那么网址和ip之间一定有某种对应关系,才得以让我们不用记住复杂的ip地址而仅仅使用某个朗朗上口的网址就能访问到它。这个对应关系实际是就是网络中的dns服务器来帮助我们完成的。

今天我们就来了解以下DNS的前世今生,部署方式以及它遇到的安全问题。


1、DNS的作用

DNS全称Domain Name Service,域名服务。作用是为客户机提供域名解析服务。

2、域名组成

2.1、概述

如“www.51cto.com.cn”是一个域名,从严格意义上来讲,“51cto.com.cn”才被称为域名,这个域名是全球唯一的,而“www”是主机名。

“主机名.域名“称为完全限定域名(FQDN).一个域名下可以有多个主机,域名全球唯一,那么”主机名.域名“肯定也是全球唯一的。

以”51cto.com.cn“域名为例,一般管理员在命名其主机的时候会根据其主机的功能而命名,比如网站的是www,博客的是blog,论坛的是bbs,难么对应的FQDN为www.51cto.com.cn,blog.51cto.com.cn,bbs.51cto.com.cn,这么多个FQDN,然而我们只需要申请一个域名即”51cto.com.cn“即可。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器

2.2、域名组成

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_02顶级域名:

org:组织

com:公司

edu:教育机构

cn:国家

一级域名:

cctv:自定义

huawei:自定义

com:公司

二级域名:

mail:邮件

www:网页

tsinghua:自定义

三级域名:

mail:邮件

www:网页

3、监听端口

tcp53

udp53

4、dns解析种类

4.1、按照查询方式分类:

1)递归查询:客户机与本地DNS服务器之间

2)迭代查询:本地DNS服务器与根等其他DNS服务器的解析过程#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_03

我们可以看出,过程1和8是递归查询,2-7是迭代查询。

如何区分和判断递归查询和迭代查询这两个概念呢?我们可以从回复内容来进行分析,我们可以看到当我们本地的服务器去问根权威服务器的时候,根服务器并没有告诉我们答案,而是告诉我们应该去问谁。但是本地客户机去问本地的服务器的时候,本地服务器通过自己的努力,直接告诉了本地客户机答案。



这里可能有部分同学有疑问,为什么本地的域名服务器直接去找根域名服务器呢?而不是一级一级从下向上开始呢?这是因为我们本地服务器很难知道所有的下级域名服务器地址,而根域名服务器地址是比较容易知道的。


4.2、按照查询内容分类:

1)正向解析:已知域名,解析ip地址

2)反向解析:已知ip地址,解析域名

绝大多数是正向解析。


5、实验一:DNS服务器搭建

作为dns服务器,ip地址必须固定。我们将其设置为10.1.1.1/24.然后添加dns服务。#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_04


在管理工具中就可以找到DNS。


#yyds干货盘点# web安全day5:DNS部署与安全_主机名_05



我们可以通过netstat -an看到当前开启的服务端口情况。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_06

可以看到TCP和UDP的53号端口都已经开启,这是DNS服务必须要使用的。

我们继续对DNS进行配置,点开服务器,我们可以看到有事件查看器、正向查找区域、反向查找区域。我们之前已经了解过正向查找和反向查找的区别。那么我们现在希望根据某个网址查找到某个ip地址,我们应该使用正向查询。我们右键点击正向查找区域,新建一个区域。

#yyds干货盘点# web安全day5:DNS部署与安全_服务器_07


在区域类型中,提醒我们选择创建的区域类型,主要分为主要区域、辅助区域、存根区域。主要区域的作用是直接在服务器上更新的区域副本、辅助区域是当我们的主要区域出现故障而进行的冗余,存根区域的作用是创建根服务器,作为一个企业,我们显然不需要创建根服务器,在本实验中,我们选择主要区域。


#yyds干货盘点# web安全day5:DNS部署与安全_主机名_08

区域名称我们以baidu.com为例,它的意义是告诉客户机,以后如果访问baidu.com就来找我,我是这个区域的权威服务器,我给的应答叫做权威应答。

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_09

在我们的c盘中就会创建这样一个区域解析文件,文件的名字就叫做baidu.com.dns。我们可以在windows/system32/dns中找到它。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_10

在这里我们选择不允许动态更新,关于active directory我们后续还会讲到。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_11

最后我们确认一下我们的配置。我们创建了一个对于baidu.com的正向解析,它的配置保存在baidu.com.dns这个文件中。

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_12


现在我们可以在我们的主界面看到我们这一条配置了。在右侧,记录了所有关于baidu.com的解析记录,可以发现已经存在两条了,一条的名称是与父文件夹相同表示没有主机名,我们还记得主机名指的是www\mail等信息,表示我们服务器的服务类型,类型是SOA,SOA的意思表示我们是baidu.com的权威服务器,所包含的数据是我们dns服务器的主机名和hostmaster.

一条是名称服务器(NS)。所有可以解析baidu.com的服务器都会在这里显示,目前只有我们自己是名称服务器。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_13



我们接下来需要新建A记录,A记录也叫主机记录,是一条正向查询的记录。我们在右侧空白处右键新建主机

#yyds干货盘点# web安全day5:DNS部署与安全_服务器_14

我们将主机名称定为www,下方的完全合格的域名会自动进行补全,然后为其填写一个ip地址,这表示如果访问www.baidu.com就去1.1.1.1.

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_15

现在在右侧就会多出一个新的类型为主机的数据。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_16



我们在另外一台客户机中验证一下。本实验中还使用了一台windowsxp的客户机,ip地址是10.1.1.2,我们需要将该客户机的dns服务器地址配置为我们的dns服务器,即10.1.1.1。

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_17


在cmd中使用nslookup www.baidu.com来进行验证。

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_18我们可以看到name为www.baidu.com的地址是1.1.1.1.说明解析成功了。另外我们也可以使用ping命令来进行验证,在cmd中使用ping www.baidu.com。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_19虽然没有ping通,但是我们看到地址解析成功了。这代表我们的dns服务器运行正常。

我们继续在cmd中使用ping pan.baidu.com来验证能否解析成功百度网盘的地址。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_20我们发现并没有解析到pan.baidu.com的ip地址。这是因为我们并没有在dns服务器中添加这样一条记录。

我们可以在dns服务器中添加来进行验证。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_21


可以看到已经解析成功了。

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_22

接下来我们可以ping pan.baidu.com,如果还是没有办法解析到,需要我们刷新一下我们的缓存,因为windowxp刚刚没有解析到,所以缓存中记录到了无法解析的内容。这也说明,如果我们的客户机学习到一条假的解析记录导致无法上网,在很长一段时间内,都会无法自行恢复。

我们使用ipconfig /flushdns命令进行本地dns缓存刷新。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_23

我们发现这时候可以解析到了。我们也可以使用ipconfig /displaydns来查看客户机本地缓存的dns解析记录。

#yyds干货盘点# web安全day5:DNS部署与安全_服务器_24

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_25


6、实验二:给DNS服务器定义名称

我们再回过头看一下我们之前对www.baidu.com的解析记录。

#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_18

可以发现有一句”cant find server name for address 10.1.1.1:timed out“。这是什么意思呢?其实我们在进行地址解析的时候,并不是一开始就向服务器去问www.baidu.com的ip地址是什么,而是先问服务器10.1.1.1你叫什么名字,这其实是反向解析的体现。如果连问三遍都没有回应,那么就会显示server:unknown。这并不会影响地址解析和上网。


我们今天可以学习一下如何给我们的服务器起一个名字。

在服务器中新建一个反向查找区域,网络id就是我们的服务器地址所在ip段#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_27

其他都是默认设置

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_28


然后在正向查找区域中新建正向查找,主机名就是我们为dns服务器定义的名称。注意一定要打上更新相关的指针记录的勾。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_29


#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_30

然后在反向查找区域右侧新建一个指针PTR,指向我们的dns1.baidu.com

#yyds干货盘点# web安全day5:DNS部署与安全_服务器_31

最后我们的反向查找区域的内容是这样的。


#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_32


我们回到windowsxp中进行验证。

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_33

发现其server已经不是unknown了,而是我们之前定义的dns1.baidu.com。实验成功。

7、实验三:创建DNS辅助服务器


我们既然知道dns服务器非常重要,那么如果我们的dns服务器发生故障怎么办呢?在大多数企业中,一般部署了两到三台dns服务器,除了一台主服务器外,其他的都是辅助服务器,用来在主服务器发生故障的时候进行替补。

开启一台新的windows2003服务器,ip地址配置为10.1.1.3,将其配置成一台辅助dns服务器。

选择辅助区域。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_34

区域名称和主服务器的名称保持一致,还是baidu.com


#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_35


指定从主服务器复制内容,所以需要输入主服务器的ip地址。

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_36


成功后,我们可以看到记录和主服务器保持了一致,并且是自动从主服务器同步的。


#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_37







8、实验四:别名的使用


#yyds干货盘点# web安全day5:DNS部署与安全_服务器_38



在windowsxp中进行验证


#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_39


这样我们也可以理解我们在访问百度的时候为什么会有www.a.shifen.com的原因了,因为www.baidu.com只是一个别名,而真实名字其实是www.a.shifen.com.

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_40



9、实验五:dns服务器解析顺序

接下来的实验,需要我们的虚拟机能够真实上网,所以在网络设置这方面,还需要不补充一些知识。在v之前的实验中,我们的所有虚拟机都是挂在vmnet2上的,vmnet2我们可以把它看成是一台交换机,这台交换机没有和真实网络连接,为了和真实网络连接,我们需要挂在vmnet0中,vmnet0可以理解是我们电脑真实机所在的交换机

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_41

在编辑中将vmnet0的外部连接设置在我们实际使用的有线或者无线网卡中。

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_42


将所有虚拟机的ip地址设置为自动获取。并且windowsxp的dns服务器地址也设置为自动获取。



windowxp最后的ip地址是:


#yyds干货盘点# web安全day5:DNS部署与安全_服务器_43


windows2003最后的ip地址是:

#yyds干货盘点# web安全day5:DNS部署与安全_服务器_44

此时我们在windowsxp中去ping 百度。

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_45


发现它的ip地址已经不是我们之前所设置的1.1.1.1了。


我们查看一下它的设置。原来的dns服务器地址发生了变化。


#yyds干货盘点# web安全day5:DNS部署与安全_服务器_46




我们把windowsxp的dns服务器地址依然指向windows2003.



#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_47

现在我们再次解析www.qq.com会是什么呢?

#yyds干货盘点# web安全day5:DNS部署与安全_域名服务器_48


#yyds干货盘点# web安全day5:DNS部署与安全_ip地址_49


因为我们的dns服务器中并没有qq.com的解析所以它会从根服务器中迭代到。而对于baidu.com,因为我们的dns服务器中已经包含,所以会依然返回自己所记录的地址。

#yyds干货盘点# web安全day5:DNS部署与安全_主机名_50

#yyds干货盘点# web安全day5:DNS部署与安全_dns服务器_51