DNS的工作原理
windows 漏洞攻击与安全防范
早期的时候计算机之间使用IP地址进行通信,那个时候Wcb技术还没有出现,Internet还未普及。在相互通信的时候只是简单地使用P地址。但是P地址不方便人们记忆,不久大家就开始使用了一种叫做主机名( Hostname)的方式来代替P地址。这种机制很简单,就是在本地计算机上存放一个 Hosts文件,该文件以文本方式存放P地址和主机名之间的对应关系。当一个 TCP/IP命令使用了主机名作为参数的时候,系统会自动在 Hosts文件中查找相应的记录。一旦找到相应的记录,则将对应的P地址传递给实际进行网络通信的程序。
在 Windows NT/2000的操作系统中这个文件存放在 System32 driversletc目录下,而Windows9X或 Windows Me则存放在 Windows目录下。默认情况下打开这个文件,该文件只有一项:127.0.0.1 Localhost,如图1.1所示(前面带井号的每行文字代表注释信息)。所以访问 Localhost主机实际上就是访问127.0.0.1(即本机)。当时为了方便 Internet上的用户使用主机名访问计算机,每个分支机构的网络管理员必须将本地的Hos文件定时上传给总部的网管,然后总部的网管再将各地的 Hosts文件合并,排除名字冲突。
最后再将合并后的 Hosts文件传送给各分支机构的网管,各地网管再将这些文件分发给本地的用户,最后由用户更新自己计算机上的Hos文件。经过这些繁琐的过程之后,用户才能够使用共用的主机名访问 Internet上的其他主机,当 Internet f的主机数逐增加的时候,Hots文件也不断地增加,最后 Hosts文件大小可能达到十几兆, Hosts文件的维护和管理都十分麻烦。后来人们发明了DNS技术,并完全抛弃了落后的 Hosts文件方式。
新的名字解释系统(DNS),允许每个网络的管理员自行决定如何为自己管理的计算机命名,并保证这些命名不会发生冲突,从而省去了繁项的 Hosts文件合并过程。DNS通过一种“服务器客户机”的机制让网络上的服务器共同学习以便解释所有的域名,其核心的设计思想就是将服务器的命名权集中到一个分层管理的体系中,每个管理层次只能有自己的名字空间。同时也将用户为自己计算机命名的权利取消了,因为用户的计算机在网络上叫什么名字己由DNS服务器的管理员决定了。
DNS在结构上实际是一个巨大的分布式数据犀。它是通过命名服务器( name server)提供一个指定的域的信息来实现的。在每个区域,至少有两个以上的保存其所在区域的所有主机授权信息的命名服务器。例如为了获得www.sina.com.cn中www这台服务器的IP地址,就必须与 sina. com.cn区域的命名服务器联系。具体过程是:当应用程序想查询www的信息时,它就需要与本地的域名服务器进行联系,此时本地的域名服务器向根域的命名服务器发送一个请求,查询ww.sina.com.cn的地址:根命名服务器发现不属于自己的管辖区,而是属于cn下的一个域,它就会通告去联系一个ca区的命名服务器以获得更多的信息,并发送一个所有cn名字服务器的地址列表;
本地的命名服务器会维续向这些服务器发送解析请求,而其中负贵cn域的服务器判别是属于自己的区域,则将重复上述过程,直到找到解析www这台机器的域名服务并获得以www.sina.com.cn命名计算机的P地址为了进一步提高查询的响应速度,命名服务器会将其获得的值息缓存在本地的J cache中,缓存信息不会保留根久,通常是2个小时成一天,缓存时间一到命名服务器会再次进行域名查询,这可以通过DNS服务器自行设置。这样当再有本地网络希组查询地址属于sinacom cn域的主机地址时,名字服务器将直接和此域的名字服务器联系。每个名字服务器都会有一个保存根服务器信息的文件,同样保存根服务器信息的文件也需要随时根据变化进行更新,但通常保存根服务器信息的文件被更新的频率不是很频紧
DNS的安全隐患
1.利用DNS进行入侵前的分析和信息藏获平时个人用户对DNS技术使用得不多,但在大型网络中DNS服务器比其他的网络设备更注重安全性,通常DNS的安全隐患包括:
(1)防火墙不会限制对DNS的访问,通常防火墙上会开放80(IS端口)和53(DNS端口)这两个端口
(2)DNS可以泄漏内部的网络拓扑结构,这是DNS服务器暴露的信息,不是通过禁止Ping可以屏蔽掉的
(3)DNS存在许多简单有效的远程级冲区溢出攻击,级冲区溢出攻击是比较难的攻击手段,平时大家对它的了解不多,对它的防护和危害更是知之基少。
(4)几乎所有的网站都需要DNS,因为不管是门户网站还是企业网站都是需要DNS服务器来帮助解析域名的
(5)DNS本身的性能问题可能关系到整个网络服务体系的应用,如果DNS信息被错误地指向了黑客的计算机,则后果不堪设想:
安全的一个重要标志是可用性。对于DNS服务器而言这点尤其重要,平时攻击者入侵系统是为了获取用户的数据,但是对于DNS服务器来说,遭到了拒绝服务攻击则会带来更为严重的后果。例如DNS服务器不能正常工作,则任何在 Internet网络上的人将不能够再使用域名找到Www、FTP等服务器,不可想象让普通的网民在访问新浪网站(wwv.sina.com.cn)时,每次都输入202.106.184.200会是什么后果。更严重的是,没有了DNS服务的支持,所有的邮件发送都将失败,而内部网络也将由于解析域名的失败而失去和外部网络的联系。
2.配置DNS的一些注意事项
成功注册一个域名以后,最多可以为域名设置6个DNS服务器名。例如microsoft. com公司的就为自己设置了5个DNS服务器来解析自己的域名Name Servers
Windows河攻击与安全防范
DNS4 CP MSFT.NET 20746.138.11
DNS5. CP MSFT.NET.46.138.12
ZI MSFT.AKADNS COM 216.32.118.104
Z7 MSFT. AKADNS COM213161.158
DNSITK. NET 207.46.23237
这样,即使这三个DNS服务器中的两个服务器停止工作,仍然会有一个DNS服务器对外提供服务,而对于广大的用户而言,当出现这种多个DNS服务器停止服务带来的唯的影响就是查询域名的时候会出现延退,因为此时只有少于正常数量的DNS服务器在进行查询。而配置多台DNS服务器也是应付恶意攻击者进行拒绝服务攻击的一个有效保护手段。通常在DNS服务器前面还需要加一道防火墙,让防火墙把攻击者阻挡在内部网络的外面。
此处需要指出的是,如果DNS服务器的处理能力接近饱和状态,那么应该为DNS服务器做负载均衡处理,这也是做大项目的时候经常说到的冗余性和高可用性。其实DNS的安全问题在许多安全威胁列表里面一向都是名列前三名的。一个称职的网络管理员一定会把DNS的安全问题摆在整个系统安全最重要的位置上。