| 订阅 | 在线投稿
分享
 
 
 

BIND8+ 域名服务器安全增强

来源:互联网网民  宽屏版  评论
2011-12-03 10:53:06

为什么要写这篇文章?第一个原因当然就是前段时间出现的BIND 8.2.x TSIG安全漏洞(还有去年公布的BIND 8.1.x/8.2.x NXT安全漏洞),直到目前为止,国内也还没有关于DNS服务安全配置方面的较为完整的文章(即使是国外也不多见)。另一个原因是经过调查发现,几乎任何一种Unix家族的操作系统,都使用BIND软件作为其DNS的唯一实现,比起其它诸如ftp/http/pop3等网络服务有各种各样的发行版本,所以一旦被发现有安全问题,则受影响的主机之多也是其它漏洞很难比拟的。所以觉得应该写一份针对BIND DNS服务软件的安全配置资料,充分利用BIND自身已经实现的保护功能,加强BIND安全性,从而能抵御目前已知的BIND安全漏洞,并使潜在的安全漏洞所可能对服务器造成的影响尽可能地减少。

配置环境:

FreeBSD 4.1-RELEASE

BIND 8.2.3

---[[ 启动安全选项 ]]---------------------------------------------------

named进程启动选项:

-r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的options中使用"recursion"选项覆盖。

-u <user_name>和-g <group_name>:定义域名服务器运行时所使用的UID和GID。这用于丢弃启动时所需要的root特权。

-t <directory>:指定当服务器进程处理完命令行参数后所要chroot()的目录。

---[[ 配置文件中的安全选项 ]]-------------------------------------------

1、假如希望记录安全事件到文件中,但同时还希望保持原有的日志模式,可以添加以下内容:

logging {

channel my_security_channel {

file "my_security_file.log" versions 3 size 20m;

severity info;

};

category security {

my_security_channel;

default_syslog; default_debug; };

}

其中my_security_channel是用户自定义的channel名字,my_security_file.log 是安全事件日志文件,可包含全路径(否则是以named进程工作目录为当前目录)。安全事件日志文件名为my_security_file.log,保存三个最近的备份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量为20MB(如果达到或超这一数值,直到该文件被再次打开前,将不再记录任何日志消息。缺省(省略)时是没有大小限制。)

2、在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。

version "Who knows?";

// version 9.9.9;

此时如果通过DNS服务查询BIND版本号时,返回的信息就是"Who knows?"。^_^

3、要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加:

recursion no;

fetch-glue no;

4、要增加出站查询请求的ID值的随机性,在options节中增加:

use-id-pool yes;

则服务器将跟踪其出站查询ID值以避免出现重复,并增加随机性。注意这将会使服务器多占用超过128KB内存。(缺省值为no)

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
为什么要写这篇文章?第一个原因当然就是前段时间出现的BIND 8.2.x TSIG安全漏洞(还有去年公布的BIND 8.1.x/8.2.x NXT安全漏洞),直到目前为止,国内也还没有关于DNS服务安全配置方面的较为完整的文章(即使是国外也不多见)。另一个原因是经过调查发现,几乎任何一种Unix家族的操作系统,都使用BIND软件作为其DNS的唯一实现,比起其它诸如ftp/http/pop3等网络服务有各种各样的发行版本,所以一旦被发现有安全问题,则受影响的主机之多也是其它漏洞很难比拟的。所以觉得应该写一份针对BIND DNS服务软件的安全配置资料,充分利用BIND自身已经实现的保护功能,加强BIND安全性,从而能抵御目前已知的BIND安全漏洞,并使潜在的安全漏洞所可能对服务器造成的影响尽可能地减少。 配置环境: FreeBSD 4.1-RELEASE BIND 8.2.3 ---[[ 启动安全选项 ]]---------------------------------------------------   named进程启动选项: -r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的options中使用"recursion"选项覆盖。 -u <user_name>和-g <group_name>:定义域名服务器运行时所使用的UID和GID。这用于丢弃启动时所需要的root特权。 -t <directory>:指定当服务器进程处理完命令行参数后所要chroot()的目录。 ---[[ 配置文件中的安全选项 ]]------------------------------------------- 1、假如希望记录安全事件到文件中,但同时还希望保持原有的日志模式,可以添加以下内容: logging { channel my_security_channel { file "my_security_file.log" versions 3 size 20m; severity info; }; category security { my_security_channel; default_syslog; default_debug; }; }   其中my_security_channel是用户自定义的channel名字,my_security_file.log 是安全事件日志文件,可包含全路径(否则是以named进程工作目录为当前目录)。安全事件日志文件名为my_security_file.log,保存三个最近的备份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量为20MB(如果达到或超这一数值,直到该文件被再次打开前,将不再记录任何日志消息。缺省(省略)时是没有大小限制。) 2、在options节中增加自定义的BIND版本信息,可隐藏BIND服务器的真正版本号。 version "Who knows?"; // version 9.9.9;   此时如果通过DNS服务查询BIND版本号时,返回的信息就是"Who knows?"。^_^ 3、要禁止DNS域名递归查询,在options(或特定的zone区域)节中增加: recursion no; fetch-glue no; 4、要增加出站查询请求的ID值的随机性,在options节中增加: use-id-pool yes;   则服务器将跟踪其出站查询ID值以避免出现重复,并增加随机性。注意这将会使服务器多占用超过128KB内存。(缺省值为no)
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有