欢迎加入王导的VIP学习qq群:==>932194668<==
安装部署bind-chroot
系统环境
服务器:腾讯云主机,有公网IP
OS:CentOS Linux release 7.4.1708 (Core)
bind-chroot:bind-chroot-9.9.4-73.el7_6.x86_64
yum 安装
1  | # yum install bind-chroot -y  | 
配置bind-chroot
bind-chroot本质上是使用chroot方式给bind软件换了个“根”,这时bind软件的“根”在/var/named/chroot下,弄懂这一点,配置起来就跟BIND9没什么区别了
把yum安装的bind-chroot在/etc下的产生的配置文件硬链接到/var/named/chroot/etc下
1  | [root@VM_0_13_centos ~]# cd /var/named/chroot/etc/  | 
1  | [root@VM_0_13_centos named]# ln /var/named/named.* .  | 
/etc/named.conf主配置文件
编辑主配置文件,这里把53端口开放到公网
1  | options {  | 
使用dnssec技术维护一个业务域
在公网上使用BIND9维护的业务域,最好使用dnssec技术对该域添加数字签名
DNSSEC(DNS Security Extension)—-DNS安全扩展,主要是为了解决DNS欺骗和缓存污染问题而设计的一种安全机制。
打开dnssec支持选项
1  | dnssec-enable yes;  | 
配置一个业务域bkjf-inc.com
1  | zone "bkjf-inc.com" IN {  | 
创建数字签名证书
1  | [root@VM_0_13_centos dnssec-key]# mkdir bkjf-inc.com  | 
这里如果生成密钥的速度很慢,需要yum安装一下haveged软件并开启
1  | # systemctl start haveged.service  | 
创建区域数据库文件
1  | [root@VM_0_13_centos named]# cat bkjf-inc.com.zone  | 
启动bind-chroot服务
1  | # systemctl start named-chroot  | 
自动生成了签名zone
如果启动成功且配置无误,应该自动生成了带签名的zone
1  | [root@VM_0_13_centos named]# ll  | 
检查签名区需要用到完全区域传送命令
1  | [root@VM_0_13_centos named]# dig -t AXFR bkjf-inc.com @localhost  | 
这里看到了每个记录都附带了一个RRSIG记录,说明已经进行了数字签名
检查本地解析
1  | [root@VM_0_13_centos named]# dig -t A www.bkjf-inc.com @localhost +dnssec +short  | 
DS记录
在生成证书的目录对ZSK执行dnssec-dsfromkey命令,得到bkjf-inc.com的DS记录,这里我们使用比较长的那个
1  | [root@VM_0_13_centos bkjf-inc.com]# dnssec-dsfromkey `grep -l zone-signing *key`  | 
其中:
- 53901:关键标签,用于标识域名的DNSSEC记录,一个小于65535的整数值
 - 8:生成签名的加密算法,8对应RSA/SHA-256
 - 2:构建摘要的加密算法,2对应SHA-256
 - 最后一段:摘要值,就是DS记录值
 
参考万网(阿里云)上关于dnssec配置的文档:参考文档
DS记录需要通过运营商提交到上级DNS的信任锚中,这里是通过万网的配置页面,提交到.com域
注意:要在阿里云上将该域名的dns服务器指向自定义DNS服务器:参考文档
后续维护
dnssec需要定期轮转,所以需要经常变更签名,其中
- ZSK轮转
建议每年轮转
 - KSK轮转
建议更新ssl证书后尽快轮转?
 
轮转方法:
ZSK(zone-signing key)
/var/named/chroot/var/named/dnssec-key/bkjf-inc.com 1
2
3
4
5$ cd /var/named/chroot/var/named/dnssec-key/bkjf-inc.com
$ dnssec-settime -I yyyy0101 -D yyyy0201 Kbkjf-inc.com.+008+53901
$ dnssec-keygen -S Kbkjf-inc.com.+008+53901
$ chgrp bind *
$ chmod g+r *.privateKSK轮转(key-signing key)
/var/named/chroot/var/named/dnssec-key/bkjf-inc.com 1
2
3
4
5$ cd /var/named/chroot/var/named/dnssec-key/bkjf-inc.com
$ dnssec-settime -I yyyy0101 -D yyyy0201 Kbkjf-inc.com.+008+40759
$ dnssec-keygen -S Kbkjf-inc.com.+008+40759
$ chgrp bind *
$ chmod g+r *.private
注意:KSK轮转需要同步在万网上更新DS记录
在任意客户端验证解析
1  | #dig -t A www.bkjf-inc.com @8.8.8.8 +dnssec +short  | 
在第三方网站验证
https://en.internet.nl/site/www.bkjf-inc.com/473349/