服务器 频道

UNIX下DNS服务器之管理维护篇

三、DNS日常的安全管理维护

    针对BIND DNS服务软件的安全配置情况,我们要充分利用BIND自身已经实现的保护功能,加强BIND安全性,从而能抵御目前已知的BIND安全漏洞,并使潜在的安全漏洞所可能对服务器造成的影响尽可能地减少。这也是我们针对UNIX DNS日常管理维护非常重要的一项工作。

    从DNS服务器的安全运行管理可以考虑采用下面几种方法:

    1、采用多个域名服务器应付恶意攻击者,对DNS服务器进行拒绝服务攻击。
    如果纯粹从理论上出发,那么一台DNS服务器是完全可以完成所有任务的。当注册了一个域名以后,实际上可以最大为企业的域名设置6个DNS服务器名。如果主域名服务器被人攻击了,可以启用辅域名服务器,如果主辅域名服务器都被同时攻破了,也可以用第三台或第四台域名服务器进行工作,具体设置几个域名服务器可根据企业构建网络情况而设定。

    而对于广大的用户而言,当出现这种多个DNS服务器停止服务带来的唯一的影响就是查询域名的时候会延迟,因为它需要一个一个的去查询,直到找到最后的一个为止。

    2、启动BIND(DNS)安全选项来进行配置。
    named进程启动选项如下:
-r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的
    options中使用"recursion"选项覆盖。
-u <user_name>和-g <group_name>:定义域名服务器运行时所使用的UID和GID。  这用于丢弃启动时所需要的root特权。
-t <directory>:指定当服务器进程处理完命令行参数后所要chroot()的目录。

    在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。
version "No know?";
// version 8.2.3;
    此时如果通过DNS服务查询BIND版本号时,返回的信息就是"No know?"。

    要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加:
recursion no;
fetch-glue no;

    要限制对DNS服务器进行域名查询的主机,在options(或特定的zone区域)节中增加:
allow-query { <address_match_list> };
address_match_list是允许进行域名查询的主机IP列表,如"202.102.24.35; 61.132.57/24;"。

    要限制对DNS服务器进行域名递归查询的主机,在options(或特定的zone区域)节中增加:
allow-recursion { <address_match_list> };
address_match_list是允许进行域名递归查询的主机IP列表,如 "202.102.24.35; 61.132.57/24;"。

l 要限制对DNS服务器进行区域记录传输的主机,在options(或特定的zone区域)节中增加:
allow-transfer { <address_match_list> };
address_match_list是允许进行区域记录传输的主机IP列表,如"202.102.24.35; 61.132.57/24;"。

    3、通过TSIG(Transaction Signature)对区域记录传输进行认证和校验。

    首先请确保BIND域名服务器软件已更新到最新版本,因为最新的BIND版本解决了在以前版本中发现的bug和/或安全漏洞。

    如果需要用TSIG签名来进行安全的DNS数据库手工更新,具体操作步骤很简单:
    ①  用BIND自带的dnskeygen工具生成TSIG密钥。
# dnskeygen -H 128 -h -n tsig-key.
    则会生成两个文件,将它们放到本地域名服务器的配置文件中,记住要重启named守护进程。 然后将这两个密钥文件复制到客户端系统(或辅助域名服务器),例如为/etc/tsig目录。最后运行如下命令即可:
nsupdate -k /etc/tsig:tsig-key.

    ② 如果需要对区域记录传输(自动或手工)进行TSIG签名,则有两种方法:
   第一种方法:用dnskeygen生成TSIG密钥,方法同上。
   第二种方法:主域名服务器配置文件的内容(节选)如下:
// 定义认证的方法和共享密钥
key master-slave {
        algorithm hmac-md5;
        secret "mZiMNOUYQPMNwsDzrX2ENw==";
};
// 定义辅助域名服务器的一些特性
server 61.132.62.137 {
        transfer-format many-answers;
        keys { master-slave; };
};
// 区域记录定义
zone "ghq.js.com"
       type master;
        file ghq.js.com
        allow-transfer { 61.132.62.137; };
};

    总之,我们在对BIND进行安全增强配置的基础上,仍然需要密切关注最新的安全公告、安全补丁和安全技术,要经常向有关的安全专家请教,再辅以必要的安全产品和安全服务,才能更充分地保护好企业的网络,抵御各种恶意攻击,确保UNIX系统环境下DNS服务器正常安全稳定的运行。

0
相关文章