DNS 为互联网提供域名解析服务,对任何互联网应用都十分关键。正因为如此,对DNS服务器要采取特别的安全保护措施。
首先,内部 DNS 服务器应该和外部 DNS 服务器分隔开。比如,为互联网服务的外部 DNS 服务器不应该包含对外禁止访问的内部网络系统的相关条目。将内网的相关条目放置在外部 DNS 服务器上只会为远程攻击者提供攻击对象名单。这种将内部 DNS 服务器和外部 DNS 服务器分隔开的方案又称作"分割 DNS "。
其次,要对 DNS 进行必要的访问控制。基本上, DNS 应用有两种服务模式:对用户查询采用 UDP 协议;对服务器到服务器的查询采用 TCP 协议。用户一定直接控制用 TCP 模式提供 DNS 服务的服务器:盲目使用这种方式可能导致 DNS 信息被修改破坏。如果攻击者成功修改 DNS 信息,他就可能将网络访问重新定向到一个非法的站点上去。
图3.10描述了一个典型的"分割 DNS "例子:
内部 DNS 服务器用来为内部网络系统解析名字,使得它们可以连接到其它内部系统、 DMZ 、和互联网;外部 DNS 使得外部网络能够解析出主防火墙、外部 DNS 本身、外部 DMZ 的名字,但不能解析出内网系统的名字。