dnssec实践

Domain Name System Security Extensions (DNSSEC)DNS安全扩展,是由IETF提供的一系列DNS安全认证的机制,可参考RFC2535。DNSSEC主要是解决递归DNS到权威DNS直接的信任机制问题,并不能解决终端用户的任何问题。
目前在国内企业中使用dnssec的比较少。究其原因有两点:
1. 不配置也可以用。
2. 配置了意义也不大。
在国内绝大部分终端用户都是使用ISP分配的递归DNS,而这些递归dns还指望着对流量较大的域名做缓存加速以便节省网间结算费用,因此不会主动去支持DNSSEC。当这些递归DNS都不支持DNSSEC时,在权威DNS上实时DNSSEC的意义就很小了。
DNSSEC本身实施起来不难,以我自己购买的1个域名gnuers.info为例.
1. 域名注册在godaddy,支持添加DS记录。
2. 域名服务器是自己在阿里云虚拟机上部署的bind,可以支持DNSSEC。
当具备了这2个前提条件后,我就可以配置好域名服务器支持DNSSEC
屏幕快照 2015-11-12 下午6.58.26
实施的步凑如下:
1. 在本地生成密钥对


root# dnssec-keygen -a NSEC3RSASHA1 -b 4096 -n ZONE gnuers.info.
root# dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE gnuers.info
root#:/opt/bind/etc# ls *gnuers.info*
Kgnuers.info.+007+15644.key  Kgnuers.info.+007+15644.private  Kgnuers.info.+007+38841.key  Kgnuers.info.+007+38841.private
  1. 对zone做签名
    签名前需要先把公钥添加到zone文件内

$INCLUDE Kgnuers.info.+007+15644.key
$INCLUDE Kgnuers.info.+007+38841.key

然后直接签名会生成一个新的zone文件,以.signed结尾。


 dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o gnuers.info -t gnuers.info
  1. 配置named挑战zone文件为签名过的zone文件,并确认bind内开启dnssec支持。

     dnssec-enable yes;
     dnssec-validation yes;
     dnssec-lookaside auto;
  1. 在注册商添加ds记录
    签名zone文件的时候会同步生存ds文件:dsset-gnuers.info.,需要把里面的ds记录在godaddy上加上。
    屏幕快照 2015-11-12 下午7.10.16

至此dnssec的配置就结束了。可以dig +trace验证了。
屏幕快照 2015-11-12 下午7.11.03

参考:
1. https://www.digitalocean.com/community/tutorials/how-to-setup-dnssec-on-an-authoritative-bind-dns-server–2

此条目发表在dns分类目录。将固定链接加入收藏夹。

发表回复