三个月前,我将 DNS 服务器升级到 BIND 9.16(目前运行的是 9.16.25),以利用新dnssec-policy default
选项,该选项允许我轻松地为我的域运行 DNSSEC。文档表明密钥管理将自动进行。我实施了该功能,在本地进行了测试,看起来一切都已顺利签名,一切似乎都很正常。我之前从未以任何形式为这些区域实施 DNSSEC。
后来我才知道,我应该将我的 DS 记录上传到我的注册商,向 TLD 报告我的区域已签名,这样才能完成整个流程,让 DNSSEC 真正生效……所以我本月开始这么做。然而,这样做之后,事情开始变得糟糕,我很快发现,在我实施 DNSSEC 15 天后,我的所有签名都过期了。
我尝试手动对一个区域的密钥进行轮转。这改变了部分记录的签名,但不是全部(例如,没有 A、AAAA、CNAME 记录)。我在文档中查找了如何dnssec-policy default
实施的详细信息,发现密钥设置为不会过期,但签名设置为在 15 天左右后过期……如果密钥不过期,则永远不会安排轮转。那么我应该如何处理过期的签名?
它dnssec-policy default
是否真的像广告中说的那样有效,我是否遗漏了一些关键的东西,或者我真的应该自己动手吗?
named.conf.options中的相关设置:
options {
[..]
dnssec-validation auto;
dnssec-policy default;
dnssec-dnskey-kskonly yes;
managed-keys-directory "/var/lib/bind";
[..]
};
答案1
参见示例https://bind9.readthedocs.io/en/v9_16_26/dnssec-guide.html 说的是:
启用自动 DNSSEC 区域维护和密钥生成
要对区域进行签名,请将以下语句添加到 BIND 9 配置文件中的区域子句中:
options { directory "/etc/bind"; recursion no; ... }; zone "example.com" in { ... dnssec-policy default; ... };
dnssec-policy 语句会导致区域被签名并启用区域的自动维护。这包括在签名过期时重新签名区域并定期更换密钥。值 default 选择默认策略,其中包含适用于大多数情况的值。
不是说它dnssec-policy
可以在zone
语句中,也不是在options
,但它适用于任何地方。特别是在开始时,为了测试事物,您可能希望限制每个区域。但除此之外,它应该可以开箱即用。
如果不是这种情况,您需要根据您的日志文件提供更多详细信息。
稍后在同一页面中您可以查看具有上述配置的预期日志行:
07-Apr-2020 16:02:55.045 zone example.com/IN (signed): reconfiguring zone keys
07-Apr-2020 16:02:55.045 reloading configuration succeeded
07-Apr-2020 16:02:55.046 keymgr: DNSKEY example.com/ECDSAP256SHA256/10376 (CSK) created for policy default
07-Apr-2020 16:02:55.046 Fetching example.com/ECDSAP256SHA256/10376 (CSK) from key repository.
07-Apr-2020 16:02:55.046 DNSKEY example.com/ECDSAP256SHA256/10376 (CSK) is now published
07-Apr-2020 16:02:55.046 DNSKEY example.com/ECDSAP256SHA256/10376 (CSK) is now active
07-Apr-2020 16:02:55.048 zone example.com/IN (signed): next key event: 07-Apr-2020 18:07:55.045
查看signed
最后一行以及某事(可能是新签名)发生时给出的时间戳。至于:
我需要先修复签名过期问题,然后才能上传 DS 记录,以防止上传时出现问题。
即使没有问题,也不要上传 DS,除非您已在本地检查过端到端验证是否有效。您可以使用 DNSViz 等在线工具执行此操作,明确指定您要添加的新 DS,然后该工具将测试一切,就好像 DS 已经正常一样。请注意,通常情况下,KSK(其记录DS
基本上是哈希值)应该“定期”更改,例如每年一次或每两年一次或类似的时间。此时您DS
也需要轮换,但如果您不想破坏解析,请谨慎行事。