当前位置:Linux教程 - 域名服务 - 提供安全的域名服务(Bind安全)

提供安全的域名服务(Bind安全)

BIND简介
BIND的安全考虑
BIND的安装与配置
更多信息

BIND简介 (历史)
•University of California at Berkeley研究生课题研究
•US DARPA资助研究项目
•Computer Systems Research Group维护4.8.3之前的版本
•BIND 4.9 和4.9.1由前DEC发表
•BIND 4.9.3以后的版本都是由ISC开发、维护

BIND简介 (功能)
•BIND (Berkeley Internet Name Domain)是Domain Name System (DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括
–域名服务器 (named)
–DNS解析库函数
–DNS服务器运行调试所用的工具
•BIND DNS 服务器承载着绝大多数的因特网域名解析业务,时间证明了它的强壮和稳定。 其解析库提供了需要域名服务的程序开发过程中可以连接的标准API函数

BIND简介 (版本)
•免费软件,自由下载 •收费的支持、培训
•两个系列
–4.9.x •/etc/named.boot,/var/named
•除安全补丁外,不再开发更新的版本
–8.2.x •/usr/local/etc/named.conf, /var/named
•当前最新版本
BIND Version 9.0.0
–重写几乎全部底层结构
–解决超大型“域”的解析负载分担,.com
–查询和更新数据时的安全问题
–适应IPv6特性的协议增强

BIND——RFCs
•RFC2065 Domain Name System Security Extensions
•RFC2137 Secure Domain Name System Dynamic Update
•RFC2535 Domain Name System Security Extensions
•RFC2536 DSA KEYs and SIGs in the Domain Name System (DNS)
•RFC2537 RSA/MD5 KEYs and SIGs in the Domain Name System (DNS)
•RFC2539 Storage of Diffie-Hellman Keys in the Domain Name System (DNS)

BIND的安全考虑

CERT Advisory CA-98.05
•Inverse Query 的缓冲区溢出让远程用户直接获得超级用户权利,
–<4.9.7, 8.1.2
–检查在named.conf的选项中是否有“fake-iquery yes”
•恶意格式的查询消息使DNS服务器产生大量垃圾数据,或直接宕机
–全部低于4.9.7, 8.1.2的版本
•错误配置的“CNAME”项会导致拒绝服务攻击
–<8.1.2
–全局配置中关闭所有域传送,而在单个域中设置

CERT Advisory CA-99-14
•“nxt bug”使远程用户以DNS运行用户身份运行任意命令
– 8.2, 8.2 patchlevel 1, 8.2.1
•“solinger bug”产生拒绝服务攻击
– 8.1, 8.1.1, 8.1.2, 8.2, 8.2 patchlevel 1, 8.2.1
•“fdmax bug”拒绝服务攻击
–8.1, 8.1.1, 8.1.2, 8.2, 8.2 patchlevel 1
• “sig bug”拒绝服务攻击
– 4.9.5, 4.9.5 patchlevel 1, 4.9.6, 8.1, 8.1.1, 8.2, 8.2 patchlevel 1, 8.2.1

“ls”命令...
攻击者可以收集网络主机信息
增加服务器负担
•安全运行要求细化控制粒度
•BIND 4.9.x功能不足

BIND安装与配置

BIND安装 (空间确认)
•确认机器上面有足够的空间。使用#df -k
•大约需要/usr区空间30M,以及作业空间10M。

BIND安装 (下载程序)
•下载软件包,地址:
–http://www.isc.org/view.cgi?/products/BIND/index.phtml
•软件包分为三个部分,一般安装只需要第一个包:
–BIND 8.2.2 patchlevel 5 source package (1.3M,程序主体)
–BIND 8.2.2 patchlevel 5 documentation (1.3M,程序文档)
–BIND 8.2.2 patchlevel 5 contrib packages (875K,程序库)

BIND安装 (解压缩)
•在工作目录下,解压缩下载软件包,命令行:
#gzip –dc bind-src.tar.gz | tar xvf –
•解压会在当前目录下产生目录src,所有源文件都在其中。

BIND安装(编译)
•确信主机上面安装有编译器,例如gcc。并且gcc 和make在路径中。
•在缺省安装时,解压后进入src目录,运行
• #make depend
• #make
• #make install

BIND安装 (转换配置文件)
•缺省安装目录在/usr/local/sbin
•执行文件包括
•named(主解析服务器)
•nslookup(域名查询)
•named-xfer(域名数据备份)
•named-bootconf(转换配置文件格式)
•named-bootconf将4.9.x版本的配置文件转换成8.2的格式。格式为:
#./named-bootconf < /etc/named.boot > /usr/local/etc/named.conf

BIND安装 (更换进程)
•将原来运行的in.named进程杀掉,然后运行新的named
–#ps -aef | grep in.named
–#kill -9
–#/usr/local/sbin/named

开机自动启动新版DNS
•/etc/rc2.d/S72inetsvc
……
–if [ -f /usr/local/sbin/named -a -f
/usr/local/etc/named.conf ]; then
/usr/local/sbin/named; echo ""starting internet domain name server.""
–fi
……

合理配置 (关闭 ‘ls’输出)
•编辑文件/usr/local/etc/named.conf,在其中的options{}中添加选项:
–allow-transfer{202.97.1.1;202.97.1.2;xxx.xxx.xxx.xxx};
–其中的地址是备份域名服务器和允许接收zone-xfer数据的地址列表
•重新启动named进程

更多信息...
•http://www.isc.org/products/BIND/bind8.html
•http://www.isc.org/products/BIND/bind-security-19991108.html
•http://www.cert.org/advisories/CA-99-14-bind.html
•http://www.cert.org/advisories/CA-98.05.bind_problems.html