DNS(Domain Name System)即域名系统是历史悠久的方法,它可以为具有IP地址的计算机分配域名,使计算机拥有字符型名称,如如IP地址为207.46.193.254的计算机即微软服务器www.microsoft.com。DNS采用了设计精良,多数时间运行都相当出色。然而,总有一些不如人意的情况,它会罢工,让管理员们头痛不已。那么如何查找其故障的蛛丝马迹?你的DNS系统中有哪些不尽如人意的地方?
有没有一些规律性的东西可以遵循?答案是肯定的,我们这儿给出DNS服务器的七大罪状,供您参考:
1.使用老版本的BIND。
Bind作为一款开放源码的DNS服务器软件,是目前世界上使用最为广泛的DNS服务器软件。几乎多数BIND 的老版本都存在着严重的、众所周知的漏洞。攻击者可以利用这些漏洞将我们的DNS域名服务器搞毁,并可以借此侵入运行它们的主机。因此应确保使用最新的BIND,并及时打补丁。
2.将所有重要的域名服务器放置到同一个子网中。
在这种情况下,一个设备的故障,如一台交换机或路由器,或一个网络连接的故障就会使互联网上的用户无法访问你的网站或向你发送电子邮件。
3.允许对未授权查询者的递归。
如果设置为下面这种情况:
(recursion yes no; [yes]
allow-recursion { address_match_list }; [all hosts]
则是不安全的。在这里,recursion选项指定named是否代替客户机查询其他域名服务器。通常不把域名服务器设置成关闭递归。至少我们应该对自身的客户机允许递归,但对外来查询禁止递归。因为如果可以为任意一个客户端处理递归查询,将会将域名服务器暴露给缓存投毒(Cache poisoning)和拒绝服务攻击。
4.允许那些未获得授权的辅助域名服务器进行区域传送。
区域传送(Zone Transfer)是指在多个DNS服务器之间复制区域数据库文件的过程。如果为任意的查询者提供区域传送服务,就会把域名服务器暴露给攻击者,导致服务器瘫痪。
5.没有采用DNS转发器。
DNS转发器是代表其他DNS服务执行DNS查询的服务器。许多域名服务器软件,包括微软的DNS Servers和一些更老的BIND域名服务器,并没有充分地保护自身以抵御缓存投毒,其它的DNS服务器软件也都存在着可被恶意响应利用的漏洞。但是许多管理员却允许这些域名服务器直接查询互联网上的其它域名服务器,根本不使用转发器。
6.错误地设置授权开始(Start of Authority :SOA)值。
SOA 标记区数据的开始,定义影响整个区的参数。许多管理员将区的值设得太低了,在刷新查询或区域传送开始失效时,这会导致系统运转的中断。自从RFC重新定义了SOA之后,还有一些人重置了逆向缓存(negative caching)TTL,结果又导致其值太高。
7.授权与区域数据中的不匹配的NS记录。
有一些管理员添加或删除了首要的域名服务器,却忘了对其区域的委托授权数据(即所谓的delegation data)作相应的改变。这样就会延长其解析域名时间,并会减少弹性。
当然,这些仅是管理员可能犯的一些一般性错误,不过却可以作为你配置DNS服务器的基本参考。