DNS日常的安全管理维护
星期天, 七月 22nd, 2007从DNS服务器的安全运行管理可以考虑采用下面几种方法:
1、采用多个域名服务器应付恶意攻击者,对DNS服务器进行拒绝服务攻击。
如果纯粹从理论上出发,那么一台DNS服务器是完全可以完成所有任务的。当注册了一个域名以后,实际上可以最大为企业的域名设置6个DNS服务器名。如 果主域名服务器被人攻击了,可以启用辅域名服务器,如果主辅域名服务器都被同时攻破了,也可以用第三台或第四台域名服务器进行工作,具体设置几个域名服务 器可根据企业构建网络情况而设定。
而对于广大的用户而言,当出现这种多个DNS服务器停止服务带来的唯一的影响就是查询域名的时候会延迟,因为它需要一个一个的去查询,直到找到最后的一个为止。
2、启动BIND(DNS)安全选项来进行配置。
named进程启动选项如下:
-r:关闭域名服务器的递归查询功能(缺省为打开)。该选项可在配置文件的
options中使用”recursion”选项覆盖。
-u 和-g :定义域名服务器运行时所使用的UID和GID。 这用于丢弃启动时所需要的root特权。
-t :指定当服务器进程处理完命令行参数后所要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是允许进行域名查询的主机IP列表,如”202.102.24.35; 61.132.57/24;”。
要限制对DNS服务器进行域名递归查询的主机,在options(或特定的zone区域)节中增加:
allow-recursion { };
address_match_list是允许进行域名递归查询的主机IP列表,如 “202.102.24.35; 61.132.57/24;”。
l 要限制对DNS服务器进行区域记录传输的主机,在options(或特定的zone区域)节中增加:
allow-transfer { };
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 (启动脚本)
=============
#!/bin/sh
#
#Description: named (BIND) is a Domain Name Server (DNS)
export PATH=/usr/sbin
case “$1″ in
start)
echo -n “Starting named: ”
named -c /etc/named.conf
echo “done”
;;
stop)
echo -n “Shutting down named: ”
rndc stop
echo “done”
;;
status)
rndc status
exit $?
;;
restart)
echo -n “Reload named: ”
rndc reload
echo “done”
;;
reload)
echo -n “Reload named: ”
rndc reload
echo “done”
;;
*)
echo “Usage: named {start|stop|status|restart|reload}”
exit 1
esac
exit 0
阅读(141 次)