BIND 8+ 域名服务器安全增强 zt域名服务器教程
|
| 论文作者:佚名 论文来源:不详 论文发布时间:2006-6-19 17:58:29 论文发布人:chjchjchj |
减小字体
增大字体
摘要:BIND 8+ 域名服务器安全增强 zt 为什么要写这篇文章?第一个原因当然就是前段时间出现的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)
5、要限制对DNS服务器进行域名查询的主机,在options(或特定的zone区域)节 中增加:
allow-query { <address_match_list> };
address_match_list是允许进行域名查询的主机IP列表,如"1.2.3.4; 5.6.7/24;"。
6、要限制对DNS服务器进行域名递归查询的主机,在options(或特定的zone区域) 节中增加:
allow-recursion { <address_match_list> };
address_match_list是允许进行域名递归查询的主机IP列表,如 "1.2.3.4; 5.6.7/24;"。
7、要指定允许哪些主机向本DNS服务器提交动态DNS更新,在options(或特定的 zone区域)节中增加:
allow-update { <address_match_list> };
address_match_list是允许向本DNS服务器提交动态DNS更新的主机IP列表,如 "1.2.3.4; 5.6.7/24;"。 缺省时为拒绝所有主机的提交。
8、要限制对DNS服务器进行区域记录传输的主机,在options(或特定的zone区域) 节中增加:
allow-transfer { <address_match_list> };
address_match_list是允许进行区域记录传输的主机IP列表,如"1.2.3.4; 5.6.7/24;"。
9、要指定不接受哪些服务器的区域记录传输请求,在options(或特定的zone区域 )节中增加:
blackhole { <address_match_list> };
address_match_list是不接受区域记录传输请求的主机IP列表,如"1.2.3.4; 5.6.7/24;"。
10、在options节中还有一些资源限制选项,不同用户可根据实际情况灵活设置, 但一定要注意不当的设置会损失DNS服务的性能。
coresize <size_spec> ; // core dump的最大值。缺省为default。
datasize <size_spec> ; // 服务器所使用的最大数据段内存。缺省为 default。
files <size_spec> ; // 服务器能同时打开的最大文件数。缺省为 // unlimited(不限制)。 // (注意,并非所有操作系统都支持这一选项。)
max-ixfr-log-size <size_spec> ; // (目前版本暂不使用。)限制增量区域 记 录传输时会话日志的大小。
stacksize <size_spec> ; // 服务器所使用的最大堆栈段内存。缺省为 default。
11、定义ACL地址名(即用于上面的<address_match_list>)。注意,如果要使用 这里定义的列表名,必须先定义,后使用! 例如:
acl intranet { 192.168/16; }; acl partner { !172.16.0.1; 172.16/12; // 除172.168.0.1外172.16.0.0/12网络中其它主机 };
BIND已内置以下四个ACL:
all
|
|
|
|
|
|
|
| ∷相关技术评论 |
(评论内容只代表网友观点,与本站立场无关!) [查看发表评论...] | |
|
|
| |
站内广告 |
| |
|
站内搜索 |
| |
栏目导航 |
| |
|
|
本月热门 |
| |
|
|
本日热门 |
| |
|
|
|