DNS软件是黑客热衷攻击的目标,它可能会带来安全问题。本文提供了保护DNS服务器的10种最有效的方法。
1.使用DNS转发器
DNS转发器用于其他DNS服务器
完成DNS查询的DNS服务器。使用DNS转发器的主要目的是减轻DNS处理的压力,将查询请求从DNS服务器转移到转发器,并受益于DNS转发器潜在的更大的DNS缓存。
使用DNS转发器的另一个优点是,它可以防止DNS服务器转发来自Internet DNS服务器的查询请求。如果您的DNS服务器保留您的内部域DNS资源记录,这一点非常重要。与其递归查询内部DNS服务器,直接联系DNS服务器,不如让它使用转发器来处理未授权的请求。
2.使用仅缓冲的DNS服务器
只缓冲DNS服务器是为了授权域名。它被用作递归查询或转发器。当只缓冲DNS服务器收到反馈时,它将结果存储在缓存中,然后将结果发送给向它发出DNS查询请求的系统。久而久之,只有缓冲DNS服务器才能收集到大量的DNS反馈,这样可以大大缩短提供DNS响应的时间。
在您的管理控制下,仅使用缓冲DNS服务器作为转发器,可以提高组织的安全性。内部DNS服务器只能使用缓冲DNS服务器作为自己的转发器,只有缓冲DNS服务器才能代替你的内部DNS服务器完成递归查询。使用自己的仅缓冲DNS服务器作为转发器可以提高安全性,因为你不需要依赖你的ISP的DNS服务器作为转发器,尤其是当你无法确认你的ISP的DNS服务器的安全性时。
3.使用DNS广告商
DNS广告程序是负责解析域中查询的DNS服务器。例如,如果您的主机是domain.com和corp.com的公共资源,您的公共DNS服务器应该为domain.com和corp.com配置DNS区域文件。
其他托管DNS区域文件的DNS服务器之外的DNS广告主的设置是,DNS广告主只回答其授权域名的查询。此DNS服务器不递归查询其他DNS服务器。这可以防止用户使用您的公共DNS服务器解析其他域名。通过降低与运行公共DNS解析器相关的风险,包括缓存中毒,安全性得到了提高。
4.使用DNS解析器
DNS解析器是一个可以完成递归查询的DNS服务器,它可以解析到授权的域名。例如,您可能在内部网络上有一个DNS服务器,它授权内部网络域名internalcorp.com的DNS服务器。当网络中的客户端使用该DNS服务器解析techrepublic.com时,该DNS服务器通过查询其他DNS服务器来获得答案,从而执行递归。
DNS服务器和DNS解析器的区别在于,DNS解析器只解析Internet主机名。DNS解析器可以是不授权DNS域名的仅缓存DNS服务器。你可以让DNS解析器只供内部用户使用,也可以让它只为外部用户服务,这样就不用在外部设置一个你无法控制的DNS服务器,从而提高安全性。当然,您也可以让内部和外部用户同时使用DNS解析器。
5.保护DNS免受缓存污染
DNS缓存污染已经成为一个越来越普遍的问题。大多数DNS服务器可以在回复请求主机之前将DNS查询结果存储在缓存中。DNS缓存可以大大提高组织内的DNS查询性能。问题是,如果你的DNS服务器的缓存被大量虚假的DNS信息‘污染’,用户可能会被送到恶意网站,而不是他们原本想访问的网站。
大多数DNS服务器可以配置为防止缓存污染。WindowsServer 2003 DNS服务器的默认配置状态可以防止缓存污染。如果您使用的是Windows 2000 DNS服务器,您可以配置它,打开DNS服务器的属性对话框,然后单击“高级”表。选择“防止缓存污染”选项,然后重新启动DNS服务器。
6.让DDNS只使用安全连接
许多DNS服务器接受动态更新。更新功能使这些DNS服务器能够记录使用DHCP的主机的主机名和IP地址。DDNS可以大大降低DNS管理员的管理成本,否则管理员必须手动配置这些主机的DNS资源记录。
但是,如果没有检测到DDNS更新,可能会带来严重的安全问题。恶意用户可以配置主机来动态更新文件服务器、web服务器或数据库服务器的DNS主机记录。如果有人想连接这些服务器,就会被转移到其他机器上。
您可以通过要求到DNS服务器的安全连接来降低恶意DNS升级的风险并执行动态升级。做到这一点很容易。您只需将DNS服务器配置为使用Active Directory集成区域,并要求安全的动态升级。这样,所有域成员都可以安全、动态地更新他们的DNS信息。
7.禁用区域传输
区域传送发生在主DNS服务器和从DNS服务器之间。主DNS服务器授权一个特定的域名,并有一个可重写的DNS区域文件,必要时可以更新。从主DNS服务器接收这些区域文件的只读副本。从属DNS服务器用于提高来自内部或互联网的DNS查询的响应性能。
然而,区域转移不仅仅适用于从属DNS服务器。任何可以发出DNS查询请求的人都可能导致DNS服务器配置更改,从而允许区域传输转储其自己的区域数据库文件。恶意用户可以使用这些信息来窥探组织的内部命名计划,并攻击关键的服务架构。您可以配置您的DNS服务器,禁止区域复制请求,或者只允许区域复制到您组织中的特定服务器,以便采取安全预防措施。
8.使用防火墙控制DNS访问
防火墙可以用来控制谁可以连接到您的DNS服务器。对于那些只响应内部用户查询请求的DNS服务器,应该设置防火墙配置,防止外部主机连接到这些DNS服务器。对于用作只缓存转发器的DNS服务器,防火墙的配置应该设置为只允许来自使用只缓存转发器的DNS服务器的查询请求。防火墙策略设置的一个重点是防止内部用户使用DNS协议连接到外部DNS服务器。
9.在DNS注册表中建立访问控制
在基于Windows的DNS服务器中,您应该在与DNS服务器相关的注册表中设置访问控制,以便只有那些需要访问的帐户才能读取或修改这些注册表设置。
HKLM \ current control set \ services \ DNS密钥应该只允许管理员和系统帐户访问,并且这些帐户应该具有完全控制权限。
10.在DNS文件系统入口设置访问控制。
在基于Windows的DNS服务器中,应该在与DNS服务器相关的文件系统入口设置访问控制,这样只有需要访问的帐号才能读取或修改这些文件。
%system_directory%\DNS文件夹及其子文件夹应该只能由系统帐户访问,该帐户应该具有完全控制权限。