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