Linux应用使用TSIG和DNSSEC加固域名服务器.doc_第1页
Linux应用使用TSIG和DNSSEC加固域名服务器.doc_第2页
Linux应用使用TSIG和DNSSEC加固域名服务器.doc_第3页
Linux应用使用TSIG和DNSSEC加固域名服务器.doc_第4页
Linux应用使用TSIG和DNSSEC加固域名服务器.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux应用使用TSIG和DNSSEC加固域名服务器一、DNS服务器的重要性DNS是因特网建设的基础,几乎所有的网络应用,都必须依赖DNS系统做网址查询的指引动作。如果DNS系统运作不正常,即使Web服务器都完好如 初,防火墙系统都善尽其职,相关的后端应用服务器以及数据库系统运作正常,因为无法在期限时间内查得到网址,将会导致电子邮件无法传递,想要使用网域名称 去连接某个网页,也会因查不出网络地址,以致联机失败。2001年1月24日,美国微软公司所管理的相关网络系统,遭受网络黑客的拒绝服务攻击后导致全球 各地的用户接近24小时的时间无法连上该公司相关的网站,造成该公司相当严重的商业损失。根据以往的经验之中,网络攻击的对象多数主要集中在控制网络路由 的设备(路由器,防火墙等)和各类应用服务器(Web、邮件等)。因此,目前多数的网络系统安全保护,通常都集中在路由设备和应用服务器本身。然而,这一 次的微软公司被攻击事件,与以往其它网站攻击事件的最大不同,就在于这一次被攻击的对象是DNS服务器而不是WEB服务器本身。这次的事件宣告另一种新型 的网络攻击类别,往后将可能成为常态。互联网上DNS服务器的事实标准就是ISC(/ )公司的Berkeley Internert Name Domain(BIND),它具有广泛的使用基础,互联网上的绝大多数DNS服务器都是基于这个软件的。Netcraft在域名服务器上的统计 (/ )显示 2003年第二季度进行的一个调查发现,在互联网上运行着的DNS服务器中,ISC的BIND占据了95%的市场份额。互联网是由很多不可见的基础构件组 成。这其中就包含了DNS,它给用户提供了易于记忆的机器名称(比如),并且将它们翻译成数字地址的形式。对于那些用于公共服务的机器一 般还提供“反向查询”的功能,这种功能可以把数字转换成名字。由于历史的原因,这种功能使用的是被隐藏的“”域。对in- addr域的调查,可以让我们更加了解整个Internet是如何运作的。Bill Manning对in-addr域的调查发现,有95%的域名服务器(2的2000次方个服务器中)使用的是各种版本的“bind”。这其中包括了所有的 DNS根服务器,而这些根服务器对整个服务器的正常运转起着至关重要的作用。如何能加强确保 DNS 系统的运作正常, 或者当DNS系统在遭受网络攻击时候, 能够让管理者及早发现是日益重要的系统安全的课题。首先我们要了解DNS服务面临的安全问题。二、DNS服务面临的安全问题:DNS服务面临的安全问题主要包括:DNS欺骗(DNS Spoffing)、拒绝服务(Denial of service,DoS)攻击、分布式拒绝服务攻击和缓冲区漏洞溢出攻击(Buffer Overflow)。1、DNS欺骗DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器 就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如:将用户引导到错误的互联网站点,或者发送一个电子邮件到一个未经授权的邮 件服务器。网络攻击者通常通过三种方法进行DNS欺骗。图1是一个典型的DNS欺骗的示意图。图1 典型DNS欺骗过程(1)缓存感染黑客会熟练的使用DNS请求,将数据放入一个没有设防的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给客户,从而将客户引导到入侵者所设置的运行木马的Web服务器或邮件服务器上,然后黑客从这些服务器上获取用户信息。(2)DNS信息劫持入侵者通过监听客户端和DNS服务器的对话,通过猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。黑客在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。(3)DNS复位定向攻击者能够将DNS名称查询复位向到恶意DNS服务器。这样攻击者可以获得DNS服务器的写权限。2、拒绝服务攻击黑客主要利用一些DNS软件的漏洞,如在BIND 9版本(版本9.2.0以前的 9系列)如果有人向运行BIND的设备发送特定的DNS数据包请求,BIND就会自动关闭。攻击者只能使BIND关闭,而无法在服务器上执行任意命令。如 果得不到DNS服务,那么就会产生一场灾难:由于网址不能解析为IP地址,用户将无方访问互联网。这样,DNS产生的问题就好像是互联网本身所产生的问 题,这将导致大量的混乱。3、分布式拒绝服务攻击DDOS 攻击通过使用攻击者控制的几十台或几百台计算机攻击一台主机,使得服务拒绝攻击更难以防范:使服务拒绝攻击更难以通过阻塞单一攻击源主机的数据流,来防范服务拒绝攻击。Syn Flood是针对DNS服务器最常见的分布式拒绝服务攻击。4、缓冲区漏洞Bind软件的缺省设置是允许主机间进行区域传输(zone transfer)。区域传输主要用于主域名服务器与辅域名服务器之间的数据同步,使辅域名服务器可以从主域名服务器获得新的数据信息。一旦起用区域传输 而不做任何限制,很可能会造成信息泄漏,黑客将可以获得整个授权区域内的所有主机的信息,判断主机功能及安全性,从中发现目标进行攻击。应对以上这些安全问题有两个比较有效方法:TSIG和DNSSEC技术。二、TSIG技术DNS的事务签名分为 TSIG (Transaction Signatures) 与 SIG0 (SIGnature)两种。该如何选择呢? 首先,要先判断客户端与服务器间的信任关系为何,若是可信任者,可选择对称式的 TSIG。TSIG 只有一组密码,并无公开/私密金钥之分;若是非完全信任者,可选择非对称式金钥的 SIG0,虽有公开/私密金钥之分,相对的,设定上也较复杂。至于要选用哪种较适合,就由自己来判断。通常区带传输是主域名服务器到辅助域名服务器。通常 在主域名服务器配置文件/etc/named.conf的dns-ip-list的访问控制列表(ACL,access control list)会列出一些IP地址,它们只能为主域进行传输区带信息。一个典型例子如下:以下为引用的内容:acl “dns-ip-list” 00; 23; ; zone “” type master; file “mydomain.dns”; allow-query any; ; allow-update none; ; allow-transfer dns-ip-list; ; ;都是黑客会利用IP欺骗一个DNS服务器,迫使其进行非法区带传输。TSIG技术可以进行有效防范。1、TSIG技术交易签章 (TSIGRFC 2845),是为了保护 DNS安全而发展的。从BIND 8.2版本开始引入 TSIG 机制,其验证 DNS 讯息方式是使用共享金钥(Secret Key) 及单向杂凑函式(One-way hash function) 来提供讯息的验证和数据的完整性。主要针对区带传输(ZONE Transfer)进行保护的作用,利用密码学编码方式为通讯传输信息加密以保证 DNS 讯息的安全,特别是响应与更新的讯息数据。也就是说在DNS服务器之间进行辖区传送时所提供保护的机制,以确保传输数据不被窃取及监听。下面以BIND 9.21为例:首先在开始设置,必须为主域名服务器(master DNS)和辅助域名( slave DNS) 进行时间同步,否则会造成区带传输的失败。可以使用ntp或者rdate工具进行服务器时间同步。假设要限制的主域到IP地址分别是00 (ns1.yourdomain. com) 和 23 (). 的两个辅助域名服务器之间进行区带传输。在此将详述 TSIG 的实际操作,可以防止DNS服务器和黑客的DNS服务器之间不会发生IP欺骗。步骤一:执行 dnssec-keygen function 产生加密金钥,一个为 public key 文件,另一个为 private key 文件:产生加密金钥:dnssec-keygen -a hmac-md5 -b 128 -n HOST zone-xfr-key该文件中公开金钥(public key)是: Kzone-xfr-key.+157+08825.key;私有金钥(private key)是Kzone-xfr-key.+157+08825.private。此时查看文件通常包括以下内容:以下为引用的内容:Private-key-format: v1.2 Algorithm: 157 (HMAC_MD5) Key: YH8Onz5x0/twQnvYPyh1qg=步骤二:使用TSIG 金钥在主域名服务器和辅助域名服务器的设置文件named.conf设定:以下为引用的内容:key zone-xfr-key algorithm hmac-md5; secret “YH8Onz5x0/twQnvYPyh1qg=”; ;步骤三:将下面的声明加入服务器的设置文件/etc/named.conf中:以下为引用的内容:server 23 keys zone-xfr-key; ; ;步骤四:将下面的声明加入服务器的设置文件/etc/named.conf中:以下为引用的内容:server 00 keys zone-xfr-key; ; ;步骤五:为主域名服务器的区带的设置文件/etc/named.conf写入以下配置:以下为引用的内容:acl “dns-ip-list” 00; 23; ; key zone-xfr-key algorithm hmac-md5; secret “YH8Onz5x0/twQnvYPyh1qg=”; ; server 23 keys zone-xfr-key; ; ; zone “” type master; file “mydomain.dns”; allow-query any; ; allow-update none; ; allow-transfer dns-ip-list; ; ;步骤六:为辅助域名服务器的区带的设置文件/etc/named.conf写入以下配置:以下为引用的内容:acl “dns-ip-list” 00; 23; ; key zone-xfr-key algorithm hmac-md5; secret “YH8Onz5x0/twQnvYPyh1qg=”; ; server 00 keys zone-xfr-key; ; ; zone “” type master; file “mydomain.dns”; allow-query any; ; allow-update none; ; allow-transfer dns-ip-list; ; ;步骤七:再次重新启动主域名服务器和辅助域名服务器。说明为确保安全性的问题,TSIG 可确认 DNS 之信息是由某特定 DNS Server 所提供。通常TSIG 应用于域名服务器间的区带传输,确保数据不会被篡改或产生 dns spoofing。步骤八:验证TSIG技术是否生效,步骤如下:删除辅助域名服务器()的区带文件。重新启动辅助域名服务器。检查辅助域名服务器的区带文件是否自动建立。辅助域名服务器用来从主服务器中转移一整套域信息。区带文件是从主服务器转移出的,作为磁盘文件保存在辅助域名服务器中。注意事项:如果为域名服务器配置了TSIG,那么要确保普通用户不能接触主域名服务器和辅助域名服务器的配置文件/etc/named.conf。另外也不能修改两台服务器的共享的TSIG密钥。2、SIG0 技术简介SIG0是一九九九年三月 由 IBM公司的D. Eastlake 提出成为标准。其是利用公开金钥机制为辖区资料进行数字签章的动作,以保证每笔传输的 source record 具有可验证性与不可否认性。实际上 SIG0 才是防止 DNS Spoofing 发生最主要的技术,SIG0 是使用公开金钥加密法,让辖区管理者为其辖区数据加上数字签章,由此证明辖区资料的可信赖性。除此之外,SIG0 保有是否选择认证机制的弹性,以及可灵活地配合自订的安全机制。三、DNSSEC技术DNS欺骗是对目前网络应用,最大的冲击在于冒名者借着提供假的网域名称与网址的对照信息,可以将不知情用户的网页联机,导引到错误的网站,原本属 于用户的电子邮件也可能因而遗失,甚而进一步空开成为阻断服务的攻击。所幸,目前较新的 BIND 版本,针对这一类问题,已经有加入许多改进的方法,不过真正的解决方案,则有赖封包认证机制的建立与推动。DNSSEC就是试图解决这一类问题的全新机 制, BIND9 已经完整加以设计并完成。DNSSEC引入两个全新的资源记录类型:KEY和SIG,允许客户端和域名服务器对任何DNS数据的来源进行密码验证。DNSSEC主要依靠公钥技术对于包含在DNS中的信息创建密码签名。密码签名通过计算出一个密码hash数来提供DNS中数据的完整性,并将该 hash 数封装进行保护。私/公钥对中的私钥用来封装hash数,然后可以用公钥把hash数译出来。如果这个译出的hash值匹配接收者刚刚计算出来的hash 树,那么表明数据是完整的。不管译出来的hash数和计算出来的hash数是否匹配,对于密码签名这种认证方式都是绝对正确的,因为公钥仅仅用于解密合法 的hash数,所以只有拥有私钥的拥有者可以加密这些信息。下面我们看看如何为名称是的域建立DESSEC配置。步骤一:为 域建立一对密钥。在 /var/named 目录下,使用命令: “/usr/local/sbin/dnssec-keygen -a DSA -b 768 -n ZONE ” 这个命令产生一对长度768位DSA算法的私有密钥(K.+003+29462.private)和公共密钥 (K.+003+29462.key)。其中29462称作密钥标签( key tag)。 步骤二:使用命令:“ /usr/local/sbin/dnssec-makekeyset -t 3600 -e now+30 K.+003+29462“建立一个密钥集合。该命令以3,600 seconds 的生存时间(time-to-live)建立密钥集合,有效期限三十天,并且创建一个文件:.keyset。步骤三:使用命令“ /usr/local/sbin/dnssec-signkey .keyset K.+003

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论