当前位置: 主页 > 服务器技术 > DNS服务器 > 用TSIG和DNSSEC增强DNS服务器安全

用TSIG和DNSSEC增强DNS服务器安全

时间:2010-1-5来源:互联网 点击:

       DNS是因特网建设的基础,几乎所有的网络应用,都必须依赖DNS系统做网址查询的指引动作。如果DNS系统运作不正常,即使Web服务器都完好如初,防火墙系统都善尽其职,相关的后端应用服务器以及数据库系统运作正常,因为无法在期限时间内查得到网址,将会导致电子邮件无法传递,想要使用网域名称去连接某个网页,也会因查不出网络地址,以致联机失败。

       DNS服务面临的安全问题主要包括:DNS欺骗(DNS Spoffing)、拒绝服务(Denial of service,DoS)攻击、分布式拒绝服务攻击和缓冲区漏洞溢出攻击(Buffer Overflow)。

1、DNS欺骗

DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如:将用户引导到错误的互联网站点,或者发送一个电子邮件到一个未经授权的邮件服务器。网络攻击者通常通过三种方法进行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” {
172.20.15.100;
172.20.15.123;
};
zone “yourdomain.com” {

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工具进行服务器时间同步。

假设要限制yourdomain.com的主域到IP地址分别是172.20.15.100 (ns1.yourdomain. com) 和 172.20.15.123 (ns2.yourdomain.com). 的两个辅助域名服务器之间进行区带传输。在此将详述 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==”;
};


步骤三:将下面的声明加入服务器ns1.yourdomain.com的设置文件/etc/named.conf中:

以下为引用的内容:
server 172.20.15.123 {
keys { zone-xfr-key; };
};


步骤四:将下面的声明加入服务器ns2.yourdomain.com的设置文件/etc/named.conf中:

以下为引用的内容:
server 172.20.15.100 {
keys { zone-xfr-key; };
};

站长资讯网
.
分页: [1] [2]
TAG: dns服务器 TSIG DNSSEC 安全
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言