on  It Road.com

在主 DNS 服务器上配置 DNSSEC:

编辑 BIND 配置文件。

[root@dns-01 ~]# vi /etc/named.conf

其中查找并设置以下指令。

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

使用以下命令创建区域签名密钥 (ZSK)。

[root@dns-01 ~]# cd /var/named
[root@dns-01 named]# dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE onitroad.com
Generating key pair...........................................................................+++ ...........................................................................................+++
Konitroad.com.+007+28013

使用以下命令创建密钥签名密钥 (KSK)。

[root@dns-01 named]# dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE onitroad.com
Generating key pair.......................................++ .................................................++
Konitroad.com.+007+65445

在我们的区域文件中包含生成的密钥。

[root@dns-01 named]# echo "$include Konitroad.com.+007+28013.key" >> /var/named/onitroad.com 
[root@dns-01 named]# echo "$include Konitroad.com.+007+65445.key" >> /var/named/onitroad.com

使用 dnssec-signzone 命令签署区域。

[root@dns-01 named]# dnssec-signzone -A -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N INCREMENT -o onitroad.com -t onitroad.com
Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone fully signed:
Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
                         ZSKs: 1 active, 0 stand-by, 0 revoked
onitroad.com.signed
Signatures generated:                       21
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.039
Signatures per second:                 529.233
Runtime in seconds:                      0.046

上面的命令为 onitroad.com 区域创建了一个签名区域文件。

我们现在需要编辑区域配置以使用 onitroad.com.signed 文件而不是 onitroad.com 文件。

[root@dns-01 named]# vi /etc/named.conf.local

更新文件指令如下。

zone "onitroad.com" {
   type master;
   file "/var/named/onitroad.com.signed";
   allow-transfer {192.168.1.102;fd15:4ba5:5a2b:1008::2; };
   also-notify {192.168.1.102;fd15:4ba5:5a2b:1008::2; };
   # DNSSEC keys Location
   key-directory "/var/named/*.keys";
   # Publish and Activate DNSSEC keys
   auto-dnssec maintain;
   # Use Inline Signing
   inline-signing yes;
};

重新启动 named.service 以加载更改。

[root@dns-01 named]# systemctl reload named.service

使用 dig 命令检查 DNSKEY 记录。

[root@dns-01 named]# dig DNSKEY onitroad.com. +multiline
; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> DNSKEY onitroad.com. +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14498
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;onitroad.com.           IN DNSKEY
;; ANSWER SECTION:
onitroad.com.            3600 IN DNSKEY 256 3 7 (
                                AwEAAaGAIKYjx3rjdGVfTHShyBqZfYruv9XFdla4skgK
                                f1lLSSDJ+1MN90rc5EjobINEgXJp9g8t6j6W3H5osa50
                                CQCmwIxXVWcCKzdm5goJBy0L26FPzl9KNFAExdyVnlyN
                                CPXnBwTvxS2nS4iJM2zbTRynWxjcLebsOC+wAzkJmxcN
                                +DLgkTH/M1dPx1m8R78gOCsNxJfEKy+Zzyq5cZ0H6IJ/
                                EnC3IDWuULHwQ5knmVo9LcP/7FiaZKmmd+SBjJF7rfSm
                                xXmxEe//B5cIhedhMkkBcTCB1UPyhRnv8VX43tCfwxax
                                u8t7iC31QdaN2gfQ2xd2a7lK5I+ceCbPJ+etQ3U=
                                ) ; ZSK; alg = NSEC3RSASHA1; key id = 28013
onitroad.com.            3600 IN DNSKEY 257 3 7 (
                                AwEAAfAS59V3GImmv9JpgmJxqDDCDxVmy/avEMViA8Zk
                                W6MtC+PbWfywMWu1m+aCbCqBqx6GtbjVwvLMi9ccVfGs
                                gJd0G5kXvdfSI3XvmbXsubby3ZF7Bz1abHVc/hoVeuQT
                                2p9q1UpjTy3jpgnxrouF7ROiFmyZEgKcNUzbmeJ12mIZ
                                5WMvd1TuOEguXHlv+H+wmGbqdfjsuqu/yJlqO8wT9eI5
                                JvuXL1SjXd3nDkcYwRNw352FsH9NxQ186BS6UwiUoVJN
                                lKB98pidjIRHZngaHNnqzRrGGT/5HJjroZtRjooKcGWI
                                mYdUhnTNIO3HXL6kS6yJzgAEoaKbnnuQQ4vME07/bJEN
                                9CYNqLGv2HsrHFyT1UQtZGlsyI+uyzOJOznQHBIKmVX8
                                uGD1a8twyYJy7U7xuiLgyAqLjNjTgDQiCwyW+0/TMys1
                                M6n/86S+xEzi0Z7HYbqMupfBJVB1xDiSh+vOjFetdWxB
                                pyEkPRDlg1F3QONifkTA1u6rybCHtaZXa9BAJAWJRYrM
                                tBN15tvc3UjSi0gNLEC73/cBYT39kca9ETni9rESQyXH
                                Nh3tFahJU7GK1Ym+0sCzvnPbIjl2axJFY53cYUdtErkR
                                PmNdno3x0IsVF+zDbcoGh4af5lNmNBZ12aZMEiKHY304
                                vPnlbXG+H1rvPdGP/54yVlG8GNxV
                                ) ; KSK; alg = NSEC3RSASHA1; key id = 65445
;; Query time: 0 msec
;; SERVER: 192.168.1.101#53(192.168.1.101)
;; WHEN: Sun Sep 01 22:11:18 PKT 2019
;; MSG SIZE  rcvd: 848

我们已经在 主 DNS 服务器上配置了 DNSSEC。

在 CentOS 7 中为 BIND DNS 服务器配置 DNSSEC

DNSSEC(域名系统安全扩展)是一套 IETF(互联网工程任务组)规范,用于保护 IP(互联网协议)网络上使用的 DNS(域名系统)提供的某些类型的信息。

它是 DNS 的一组扩展,向 DNS 客户端(解析器)提供 DNS 数据的原始身份验证、已验证的拒绝存在和数据完整性,但不提供可用性或者机密性。

在本文中,我们将为 CentOS 7 中的 BIND DNS 服务器配置 DNSSEC。

配置环境

首先参考下面的教程搭建DNS服务器。

在 CentOS 7 中使用 BIND 搭建 DNS 服务器

主DNS服务器

  • 主机名 - dns-01.onitroad.com
  • IPv4 地址 - 192.168.1.101 /24

从 DNS 服务器:

  • 主机名 - dns-02.onitroad.com
  • IPv4 地址 - 192.168.1.102 /24

在 CentOS 7 上安装 Haveged

登录到 dns-01.onitroad.com。

hasged 项目试图提供一个易于使用、不可预测的随机数生成器,它基于 HAVEGE 算法的改编。
Haveged 的创建是为了解决 Linux 随机设备中可能在某些工作负载下出现的低熵条件,尤其是在无键鼠显示器服务器上。

我们正在 CentOS 7 服务器上安装 hasged 以加快 DNSSEC 配置期间的密钥生成过程。

Havaged 在 EPEL(企业 Linux 的另外包)yum 存储库中可用。
因此,我们必须在安装 hasged 包之前安装 EPEL。

安装 EPEL yum 存储库如下。

[root@dns-01 ~]# yum install -y epel-release

为 EPEL yum 存储库构建缓存。

[root@dns-01 ~]# yum makecache fast

现在,我们可以使用 yum 命令从 EPEL 存储库安装 hasged。

[root@dns-01 ~]# yum install -y haveged

启用并启动 hasged.service 。

[root@dns-01 ~]# systemctl enable --now haveged.service
Created symlink from /etc/systemd/system/multi-user.target.wants/haveged.service to /usr/lib/systemd/system/haveged.service.

在从 DNS 服务器上配置 DNSSEC:

登录到 dns-02.onitroad.com。

将 KSK 和 ZSK 文件从主 DNS 服务器复制到从 DNS 服务器。

[root@dns-02 ~]# scp root@dns-01.onitroad.com:/var/named/Konitroad.com.* /var/named/

在我们的区域文件中包含 KSK 和 ZSK 密钥。

[root@dns-02 ~]# echo "$include Konitroad.com.+007+28013.key" >> /var/named/onitroad.com 
[root@dns-02 ~]# echo "$include Konitroad.com.+007+65445.key" >> /var/named/onitroad.com

编辑 BIND 配置文件。

[root@dns-02 ~]# vi /etc/named.conf

并设置以下指令以启用 DNSSEC 。

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

编辑区域配置文件。

[root@dns-02 ~]# vi /etc/named.conf.local

并更新文件指令如下。

zone "onitroad.com" {
   type slave;
   masters { 192.168.1.101; };
   file "/var/named/onitroad.com.signed";
   # DNSSEC keys Location
   key-directory "/var/named/*.keys";
   # Publish and Activate DNSSEC keys
   auto-dnssec maintain;
   # Use Inline Signing
   inline-signing yes;
};

重新启动 named.service 以加载更改。

[root@dns-02 ~]# systemctl reload named.service

检查 onitroad.com.signed 区域是否已转移到从 DNS 服务器。

[root@dns-02 ~]# ls /var/named
116.168.192.in-addr.arpa  onitroad.com         named.empty      slaves
data                      onitroad.com.signed  named.localhost
dynamic                   named.ca            named.loopback

我们已经在CentOS 7 中为 BIND DNS 服务器配置了 DNSSEC。

日期:2020-09-17 00:12:48 来源:oir作者:oir