ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:213.73KB ,
资源ID:9292193      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9292193.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第11章 构建DNS安全.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第11章 构建DNS安全.docx

1、第11章 构建DNS安全第11章 构建DNS安全本章要点DNS服务简介DNS服务管理中存在的问题和面临的威胁正确配置DNS相关文件配置辅助域名服务器进行冗余备份配置高速缓存服务器缓解DNS访问压力配置DNS负载均衡Linux下的DNS安全保障十大技巧一、DNS服务简介1基本原理DNS(Domain Name System,域名系统)用于命名组织到域层次结构中的计算机和网络服务。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息,如IP地址。因为,用户在上网时输入的网址,是通过

2、域名解析系解析找到相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。值得一提的是,在引入DNS之前,网络中的主机是将容易记忆的域名映射到IP地址并将它保存在一个共享的静态文件hosts(该文件路径为/etc/hosts)中,再由hosts文件来实现网络中域名的管理。最初Internet非常小,仅使用这个集中管理的文件就可以通过FTP为连入Internet的站点和主机提供域名的发布和下载。每个Internet站点将定期地更新其主机文件的副本,并且发布主机文件的更新版本来反映网络的变化。但是,当Internet上的计算机迅速增加时,通过一个中心授权机构为所有Internet主机管理一个主

3、机文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难。域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串来表示,但在文本中用“.”来书写。树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步划分成子分区(域),每个域都有一个标签(la

4、bel),标明了它与父域的关系。域也有一个域名(domain name),给出它在整个分布式数据库中的位置。在DNS中,域名全称是一个从该域到根的标签序列,以“.”分隔这些标签。该标签最多可包含63个字符。树中每一节点的完整域名为从该节点到根之间路径上的标签序列。如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾)。这些以点结尾的域名被称之为绝对域名(Absolute Domain Name)。不以点结尾的域名被称之为相对域名。域(Domains)即为树状域名空间中的一棵子树,域的域名同该子树根节点的域名一样。也就是说,域的名字就是该域中最高层节点的名字。图1给出

5、了DNS分层结构的图示:图1 DNS域名空间的分层结构DNS基于C/S(Client/Server,客户机/服务器)模式,因而分为Client和Server两种角色。Client扮演询问的角色,也就是向Server询问一个Domain Name,而Server必须要回答此Domain Name所对应的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的其他DNS进行求助询问,依此得到答案之后,将收到的答案存起来,并回答客户。DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。在每一个名称服

6、务器中都有一个高速缓存区(Cache),这个高速缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在高速缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该名称记录资料,传回给客户端,以加速客户端对名称查询的速度。举个例子,当DNS客户端向指定的DNS服务器查询网Internet上的某一台主机名称时,DNS服务器会在该资料库中找寻用户所指定的名称。如果没有,该服务器会先在自己的高速缓存区中查询有无该条纪录,如果找到该条名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端;如果DNS务器

7、在资料记录查不到且高速缓存区中也没有时,服务器才会向别的DNS服务器查询所要的名称。例如,本地的DNS服务器会向最接近(比如属于同一个IP地址段或者同一个ISP)的DNS服务器去要求帮忙找寻该名称的IP地址.在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到高速缓存区中,最后在将所查询到的结果回复给客户端。这样就成功地完成了一次标准的DNS查询-应答过程。2DNS系统的组成DNS系统基于客户机/服务器模式,从概念上说他主要由三个部分组成:(1)域名空间:域名空间中的记录标识

8、一组主机并提供他们的有关信息。域中的每一个节点都有它的有关信息的数据库。查询命令试图从这个数据库中提取适当的信息。简单地说,域名空间是所有不同类型信息的列表,这些信息是域名、IP地址、邮件别名和那些在DNS系统中能查到的内容。(2)域名服务器:保持并维护域名空间中的数据的程序。每个域名服务器含有一个域名空间子集的完整信息,并保存其它有关部分的信息。一个域名服务器拥有它控制范围的完整信息。控制的信息按区进行划分,区可以分布在不同的域名服务器上,以便为每个区提供服务。每个域名服务器都知道所有负责其他区的域名服务器。如果来了一个请求,它请求给定域名服务器负责的那个区的信息,那么这个域名服务器只是简单

9、地返回信息。但是,如果请求是不同区的信息,那么这个域名服务器就要与控制该区的相应服务器联系。(3)解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间内主机的查询。DNS是一个很复杂的概念,下表列出了常用的DNS术语。?域:代表网络一部分的逻辑实体或组织。?域名:主机名的一部分,它代表包含这个主机的域。它可以和域交换使用。?主机:网络上的一台计算机。?节点:网络上的一台计算机。?域名服务器:提供DNS服务的计算机,它将DNS名字转化为IP地址。?解析:把一个域名转化为与其相应的IP地址的过程。?解析器:从域名服务器中提取DNS信息的程序或库子程序。?反向解析:将给出的IP

10、地址转化为其相应的DNS名字。?欺骗:使网络看上去好象具有不同的IP地址或域名的行为。3DNS服务器的类型DNS域名服务器是用来存储主机-域名映射信息的,这些服务器具体又可以分为3类:(1)主DNS服务器(primary name server):它是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。(2)辅助DNS服务器(secondary name server):它可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来

11、的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为“区文件复制”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。(3)高速缓存服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件

12、,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。 二、DNS服务管理中存在的问题和面临的威胁1DNS设计中存在的问题在系统设计方面,DNS的设计受到当时条件限制,因而存在许多设计缺陷问题。(1)单点故障。DNS采用层次化的树形结构,由树叶走向树根就可以形成个全域名(Fully Qualified Domain Name,FQDN),DNS服务器作为该FQDN唯一对外的域名数据库和对内部提供递归域名查询的系统,因而其安全和稳定就存在单点故障风险。(2)无认证机制。DNS没有提供认证机制,查询者在收到应答时无法确认应答信息的真假,就容易导致DNS欺骗。假设当提交给某个域名服务器

13、的域名解析请求的数据包被黑客截获,然后黑客将一个虚假的IP地址作为应答信息返回给请求者,那么原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行连接,显然它被欺骗到了别处而连接不上原本想要连接的那个域名,这样就导致了DNS欺骗。如图2所示。图2 DNS欺骗原理示意(4)访问量和维护量巨大以及远距离集中式数据库。单个名字服务器不得不处理所有DNS查询消息,并保存所有因特网主机的记录,数据库会相当巨大,需要为每台新增的主机频繁更新,而且单台名字服务器主机不可能在所有请求查询的客户主机附近,就可能导致相当大的延迟。(5)BIND(Berkeley Intemet Name Domain)的漏

14、洞:BIND是域名软件,它在提供高效服务的同时也存在许多的安全性漏洞。现已证明在BIND版本4和8上存在缺陷,攻击者利用这些缺陷能成功地进行DNs欺骗攻击,这些漏洞可以被利用取得系统最高权限。构成严重威胁的漏洞主要有两种:一种是缓冲区溢出漏洞,严重的可以使攻击者在DNS服务器上执行任意指令,如BIND SIG Cached RR Ovemow DoS(CAN.2002-1219)在BIND 4和BIND 8中存在一个远程缓冲溢出缺陷,该缺陷使得攻击者可以在DNS服务器上运行任意指令。另一种是DoS漏洞,受攻击后DNS服务器不能提供正常服务,而且其所辖的子网无法正常工作。2DNS面临的网络威胁(

15、1)内部攻击:攻击者在非法或合法地控制一台DNS服务器后,可以直接操作域名数据库,修改指定域名所对应的IP为自己所控制的主机IP,当客户发出对指定域名的查询请求后,将得到伪造的IP地址。(2)序列号攻击:DNS协议格式中定义了用来匹配请求数据包和响应数据报序列ID,欺骗者利用序列号伪装成DNS服务器向客户端发送DNS响应数据包,在DNS服务器发送的真实DNS响应数据报之前到达客户端,从而将客户端带到攻击者所希望的网站,进行DNS欺骗。(3)信息插入攻击:攻击者可以在DNS应答报文中随意添加某些信息,指示权威域名服务器的域名及IP,那么在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的

16、域名服务器上去,从而威胁到网络数据的完整性。(4)缓存(cache)中毒:DNS使用超高速缓存,即当一个名字服务器收到有关域名和IP的映射信息时,它会将该信息存放在高速缓存中。当再次遇到相同的映射请求,能直接使用缓存中的结果,这种映射表是动态更新的,刷新也是有时限的,这样假冒者如果在下次更新之前成功地修改了DNS服务器上的映射缓存,就可以进行DNS欺骗或者DoS(Denial of Service)拒绝服务攻击了。(5)信息泄漏:BIND的缺省设置允许任何人进行区传送,区传送可能会造成信息泄漏,区传送一般用于主服务器和辅服务器之间的数据同步,辅服务器可以从主服务器获取最新区数据文件的副本,也就

17、可以获得整个授权区域内的所有主机信息。一旦这些信息泄漏,攻击者就可以根据它轻松地推测主服务器的网络结构,并从这些信息中判断其功能或发现那些防范措施较弱的机器。(6)不安全的动态更新:随着动态主机配置协议(DHCP)的出现,客户计算机由DHCP服务器动态分配IP地址,使原来手工更新其A记录和PTR记录变得很难管理。因此在RFC2136中提出了DNS动态更新,使得DNS客户端在IP地址或名称出现更改的任何时候都可利用DNS服务器来注册和动态更新其资源记录。尽管DNS动态更新协议规定只有经过授权的主机才能动态更新服务器的zone file,但是攻击者还是可以利用IP欺骗伪装成DNS服务器信任的主机对

18、区数据进行添加、删除和替换。 三、正确配置DNS相关文件(1)几个重要的DNS服务器配置文件类型在使用DNS服务器之前,需要对与之相关的配置文件进行安全配置,因而首先需要了解这些基本文件,表1详细给出了几种主要的与DNS有关的文件以及详细描述:表1 DNS相关配置文件介绍(2)named.conf主配置文件在使用named.conf进行配置时,需要了解如下常用的配置语句,如表2所示。表2 named.conf主配文件配置语句说明根据在实际应用中的广泛程度和重要性,下面我们着重对option语句和zone声明的使用进行介绍。1使用option语句option语句的使用语法为:option语句的使

19、用语法为:option 配置子句1;配置子句2;;在上述语法中,其配置子句常用的主要有如下两类:?directory:该子句后接目录路径,主要用于定义服务器区配置文件的工作目录,如/home等;?forwarders:该子句后接IP地址,定义转发器;2使用zone声明区声明是主配置文件中非常常用而且是最重要的部分,它一般要说明域名、服务器类型以及域信息源三个重要部分。它的语法为:zone “zone_name” IN type 子句;file 子句;其他子句;;那么,围绕上述三个重要部分,区声明语句有如下两类子句:?type:其主要有如下三种,master(说明一个区为主域名服务器)、slav

20、e(说明一个区为辅助域名服务器)和hint(说明一个区为启动时初始化高速缓存的域名服务器)。?file:后接文件路径,主要说明一个区的域信息源的路径。3使用ACL(访问控制列表)访问控制列表(ACL,Access Control List)就是一个被命名的地址匹配列表。使用访问控制列表可以使配置简单而清晰,一次定义之后可以在多处使用,不会使配置文件因为大量的IP地址而变得混乱。要定义访问控制列表,可以在BIND的主配置文件/etc/named.conf中使用acl语句来实现。acl语句的语法为:acl acl_name address_match_list;BIND里默认预定义了4个名称的地址

21、匹配列表,他们可以直接使用,分别为:? Any:表示所有主机;?Localhost:表示本机;?Localnets:表示本地网络上的所有主机;?None:表示不匹配任何主机。需要注意的是:acl是named.conf中的顶级语句,不能将其嵌入其他的语句。要使用用户自己定义的访问控制列表,必须在使用之前定义。因为可以在options语句里使用访问控制列表,所以定义访问控制列表的acl语句应该位于options语句之前。另外,为了便于维护管理员定义的访问控制列表,可以将所有定义acl的语句存放在单独的文件/etc/named.conf.acls中,然后在主配置文件/etc /named.conf中

22、如下语句:include /etc/named.conf.options;之前添加如下的配置行include /etc/named.conf.acls; 定义了ACL之后,可以在如下的子句中使用:?allow-query options,zone:指定哪主机或网络可以查询本服务器或区,默认的是允许所有主机进行查询。allow-transfer options,zone:指定哪些主机允许和本地服务器进行域传输,默认值是允许和所有主机进行域传输。 ?allow-recursion options:指定哪些主机可以进行递归查询。如果没有设定,缺省是允许所有主机进行递归查询的。注意禁止一台主机的递归查

23、询,并不能阻止这台主机查询已经存在于服务器缓存中的数据。 ?allow-update zone:指定哪些主机允许为主域名服务器提交动态DNS更新。默认为拒绝任何主机进行更新。 ?blackhole options:指定不接收来自哪些主机的查询请求和地址解析。默认值是none。上面列出的一些配置子句既可以出现在全局配置options语句里,又可以出现在zone声明语句里,当在两处同时出现时,zone声明语句中的配置将会覆盖全局配置options语句中的配置。(3)区文件区文件定义了一个区的域名信息,通常也称域名数据库文件。每个区文件都是由若干个资源记录(RR,resource records)和

24、区文件指令所组成。1资源记录每个区域文件都是由SOA RR开始,同时包括NS RR。对于正向解析文件还包括A RR、MX RR、CNAME RR等等;而对于反向解析文件还包括PTR RR。RR具有基本的格式。标准资源记录的基本格式是:name ttl IN type redata各个自字节之间由空格或制表符分隔。表3描述了这些字段的含义:表3 标准资源纪录中的字段2区文件指令表4列出了可以在区文件中使用的4个区文件指令。表4 区文件指令为了方便读者对DNS服务器配置文件的使用有个详细的了解,本节将针对一个实际的配置文件例子来进行讲解。该配置文件如下所示。我们虚构了一个域来举例说明主服务器的配置

25、,下面是定义域的主服务器的named.conf文件:/ generated by named-bootconf.ploptions directory /var/named;/* If there is a firewall between you and nameservers you want* to talk to, you might need to uncomment the query-source* directive below. Previous versions of BIND always asked* questions using port 53, but BIND

26、8.1 uses an unprivileged* port by default.*/ query-source address * port 53;/ a caching only nameserver config/zone . type hint;file named.ca;zone type master;file ;zone 0.0.127.in-addr.arpa type master;file named.local;zone 132.211.in-addr.arpatype master;file named.rev;上例中第一个master告诉我们这是域的主服务器。该域的

27、数据是从named.hosts文件中加载的。在我们这个例子中,我们将文件名named.hosts作为区文件名。第三个master语句指向能将IP地址211.132.0.0映射为主机名的文件。它假定本地服务器是反向域132.211.in-addr.arpa的主服务器,该域的数据从文件named.rev中加载。除了定义上述的主文件外,还需要定义如下的区文件(/var/named/):$TTL86400$ORIGIN .1D IN SOA root (42; serial (d. adams)3H; refresh15M; retry1W; expiry1D ); minimum IN NS IN

28、A127.0.0.1www IN A211.132.211.80ftp IN A211.132.211.68web IN CNAMEwww(5)使用Dlint工具进行DNS配置文件检查Dlint是一个专门检查DNS配置文件开放源代码的软件,用户可以从网站上自行下载安装,目前该网站上的最新版本为Dlint1.4.1。需要注意:使用该软件前要求系统安装支持Perl语言和Dig命令(BIND中一个软件包)的相关软件包。Dlint软件的安装步骤如下所示,系统会将Dlint安装在/usr/bin/目录下:(1)解压缩软件包#tar dlint1.4.1.tar.gz(2)切换到解压缩的目录下,执行安装命

29、令#cd dlint1.4.1#makeDlint主要针对DNS配置文件进行如下检查:?检查配置文件是否存在拼写错误;?检查配置文件中是否有A(Address)记录的主机名称都有配套的PTR(反向解析记录的简称)记录。如果有A记录的主机名称没有PTR,则配置文件不能通过。另外,Dlint可以在用户配置文件中为A记录查找丢失的PTR记录;?记录in-addr.arpa区的每一条PTR记录是否有对应的A记录存在,并以递归的方式检查子区,查找它们的配置问题;如下显示了使用Dlint工具进行DNS配置文件检查的运行结果:#dlint localhost.localhost; dlint version

30、 1.4.1, Copyright (C) 1998 Paul A. Balyoz ; Dlint comes with ABSOLUTELY NO WARRANTY.; This is free software, and you are welcome to redistribute it; under certain conditions. Type man dlint for details.; command line: /usr/local/bin/dlint localhost.localhost; flags: normal-domain recursive.; using dig version 9.2.1; run starting: 涓? 4鏈?15 07:08:18 CST 2009; =; Now linting localhost.localhostERROR: no name servers found for domain localhost.localhostThat domain i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1