服务器 频道

全面提升BIND DNS服务器安全(下)




    【IT168 专稿】接上篇)下面以使用最为广泛的Unix类DNS软件BIND为例,介绍如何配置一个安全DNS服务器。本文以RHEL 4.0为工作平台。

    1. 隔离DNS服务器

    首先应该隔离BIND服务器,不应该在DNS服务器上跑其他服务,尽量允许普通用户登陆。减少其它的服务可以缩小被攻击的可能性,比如混合攻击。
 
    2. 隐藏BIND的版本号

    通常软件的BUG信息是和特定版本相关的,因此版本号是黑客寻求最有价值的信息。黑客使用dig命令可以查询BIND的版本号,然后黑客就知道这个软件有那些漏洞。因此随意公开版本号是不明智的。隐藏BIND版本号比较简单,修改配置文件:/etc/named.conf,在option部分添加version声明将BIND的版本号信息覆盖。例如使用下面的配置声明,当有人请求版本信息时,迫使nmaed显示:“Unsupported on this platform ”
 


    3. 避免透露服务器信息

    和版本号一样,也不要轻易透露服务器其他信息。为了让潜在的黑客更难得手,建议不要在DNS配置文件中使用这HINFO 和 TXT两个资源记录。
 
    4. 关闭DNS服务器的glue fetching选项

    当DNS服务器返回一个域的域名服务器纪录并且域名服务器纪录中没有A纪录,DNS服务器会尝试获取一个纪录。就称为glue fetching,攻击者可以利用它进行DNS欺骗。关闭glue fetching是一个好方法,修改配置文件:/etc/named.conf.加入一行:
 


    5. 使用非root权限运行BIND

    在Linux内核2.3.99以后的版本中,可以以-u选项以非root权限运行BIND。命令如下:
 


    上面的命令表示以nobody用户身份运行BIND。使用nobody身份运行能够降低缓冲区溢出攻击所带来的危险。
 
    6. 控制区域(zone)传输

    默认情况下BIND的区域(zone)传输是全部开放的,如果没有限制那么DNS服务器允许对任何人都进行区域传输的话,那么网络架构中的主机名、主机IP列表、路由器名和路由IP列表,甚至包括各主机所在的位置和硬件配置等情况都很容易被入侵者得到。因此,要对区域传输进行必要的限制。可以通过在/etc/named.conf文件当中添加以下语句来限制区域传输:
 


   这样只有IP地址为:从192.168.0.52到192.168.0.109的主机能够同DNS服务器进行区域传输。

0
相关文章