dnssec-trust-anchors.d 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

dnssec-trust-anchors.d, systemd.positive, systemd.negative — DNSSEC 信任锚配置

大纲

/etc/dnssec-trust-anchors.d/*.positive

/run/dnssec-trust-anchors.d/*.positive

/usr/lib/dnssec-trust-anchors.d/*.positive

/etc/dnssec-trust-anchors.d/*.negative

/run/dnssec-trust-anchors.d/*.negative

/usr/lib/dnssec-trust-anchors.d/*.negative

描述

DNSSEC 信任锚配置文件 定义了 systemd-resolved.service(8) 实现 DNSSEC 完整性验证所依赖的根基:正向信任锚与反向信任锚。

正向信任锚(Positive Trust Anchor)

正向信任锚配置文件包含 DNSKEY 与 DS 资源记录。 参见 RFC 4035, Section 4.4 以了解更多有关 DNSSEC 信任锚 的说明。

正向信任锚依次从 /etc/dnssec-trust-anchors.d/(优先级最高), /run/dnssec-trust-anchors.d/(优先级居中), /usr/lib/dnssec-trust-anchors.d/(优先级最低) 目录下后缀名为 .positive 配置文件中读取。 对于不同目录下的同名配置文件来说, 高优先级目录中的配置文件会覆盖低优先级目录中的同名配置文件。 因此,要想屏蔽 /usr/lib/dnssec-trust-anchors.d/ 目录中的某个配置文件,可以在 /etc/dnssec-trust-anchors.d//run/dnssec-trust-anchors.d/ 目录中 创建一个指向 /dev/null 的同名软连接。

与 DNS区域文件(RFC 1035, Section 5)一样,正向信任锚的配置文件也是一个纯文本文件。 格式上,一行表示一个 DS 或 DNSKEY 资源记录, 空行与分号(";")开头的行将被忽略。 一个 DS 资源记录的例子:

. IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5

第一个字段表示域(尾部的句点可写可不写),本例中的 "." 表示 "根域"。 第二个字段必须是 "IN" 。 第三个字段必须是 "DS" 。 其余的字段分别表示:公钥标签(Key Tag), 签名算法, 摘要算法, 16进制编码的公钥摘要。 参见 RFC 4034, Section 5 以了解 上述各字段含义的详细解释。

DNSKEY 资源记录用于定义信任锚。 一个 DNSKEY 资源记录的例子:

. IN DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=

第一个字段表示域(尾部的句点可写可不写),本例中的 "." 表示"根域"。 第二个字段必须是 "IN" 。 第三个字段必须是 "DNSKEY" 。 其余的字段分别表示:DNSKEY Flags, 协议, 公钥算法, Base64编码的公钥。 参见 RFC 4034, Section 2 以了解 上述各字段含义的详细解释。

如果为同一个域定义了多个 DS 或 DNSKEY 资源记录, 那么 所有公钥都将被认可并且彼此平等 (即使这些记录位于不同目录下的配置文件中)。

注意,如果没有专门为根域配置正向信任锚, 那么 systemd-resolved 将会自动为根域使用内置的信任锚公钥, 因此 通常没必要专门为根域配置信任锚。 仅在根域的信任锚确实发生变化的情况下, 才需要专门为根域配置新的信任锚。

通常建议将信任锚封装为 DS 资源记录(而不是 DNSKEY 资源记录)。

如果发现某个 DS 资源记录中封装的信任锚已经被撤销, 那么在将会自动从信任锚数据库中删除该记录。 参见 RFC 5011 已了解有关信任锚的撤销。 注意,systemd-resolved 不会自动从 DNS 服务器更新自己的信任锚数据库。 推荐的做法是升级 systemd 软件包的版本 或者更新信任锚配置文件。

最新的 Internet 根域 DNSSEC 信任锚 可以从 IANA Trust Anchor and Keys 页面获取。

反向信任锚(Negative Trust Anchor)

反向信任锚用于定义应该针对哪些域关闭 DNSSEC 验证机制。 反向信任锚配置文件与正向信任锚配置文件的存放目录、优先级、覆盖规则都完全相同。 反向信任锚配置文件的名称必须以 .negative 为后缀, 空行与分号(";")开头的行将被忽略。 每行一个域名, 表示关闭该域名及其所有子域名的 DNSSEC 验证机制。

反向信任锚通常用于禁用某些私有域名的DNSSEC验证机制, 因为这些私有域名 无法在互联网DNS服务器上进行验证。

RFC 7646 详细描述了反向信任锚。

如果没有设置任何反向信任锚配置文件, 那么将使用一组内置的众所周知的私有DNS区域 作为反向信任锚。

可以使用 DNSSECNegativeTrustAnchors= 选项(参见 systemd.network(5) 手册)专门针对特定的网络接口设置专属的反向信任锚。

参见

systemd(1), systemd-resolved.service(8), resolved.conf(5), systemd.network(5)