欢迎加入王导的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/