bind9 的默认资源记录签名有效期为 30 天,每次我们都必须通过重新签名区域文件来更新签名有效期。否则,如果 RR 签名过期,DNS 解析器将无法解析来自互联网的查询。我在生产中使用 bind 9.11.36 稳定版。
- 有没有办法可以将签名有效期从30天延长至1年?
- 为 bind9 生产环境设置资源记录签名到期期限的行业最佳实践是什么?
答案1
只需自动签名即可。如果您将此作为手动的年度流程,则不能保证下次需要时它能正常工作。人们往往会忘记这些事情是如何完成的 - 或者甚至忘记这些事情的存在并且必须得到处理。
使用内联签名
距离内联签名于 2012 年随 BIND 9.9 推出;所有不支持它的版本都已达到寿命终止。关于如何使用它有几个教程:
- 苏珊娜·戈德拉斯特(2019):在 BIND 9.9+ 中使用 NSEC3 进行内联签名 - 演练
- 苏珊娜·戈德勒斯特 (Suzanne Goldlust) & 埃文·亨特 (Evan Hunt)(2018):ISC BIND 9.9.0 中的内联签名--示例
- 互联网系统联盟:DNSSEC 指南:第 4 章 签名
您甚至可以泡点咖啡,在沙发上放松一下,欣赏有关该主题的 YouTube 视频:
- 互联网系统联盟(2013 年):BIND 和内联签名[46:11]
旧式解决方案
在 BIND 9.9 之前,只有dnssec-keygen
&dnssec-signzone
工具,任何自动化操作都涉及dnssec-signzone
在 cronjobs 或类似程序中运行。除了有效期为 30 天之外,-i
间隔默认为 7.5 天(648000
秒)。自动签名间隔应比此值短,或-i
应增加。
- SIDN:BIND 中的 DNSSEC 签名命名;还涵盖了历史解决方案
要回答你的确切问题,dnssec-signzone(8)
有两个选项可控制 RRSIG 记录的到期时间。(一年的有效期为-e +31556926
。)
-e end-time
此选项指定生成的 RRSIG 记录的过期日期和时间。与 一样
start-time
,绝对时间以YYYYMMDDHHMMSS
符号表示。相对于开始时间的时间用 表示+N
,即距开始时间 N 秒。相对于当前时间的时间用 表示now+N
。如果未end-time
指定,则默认为距开始时间 30 天。end-time
必须晚于start-time
。
-X extended end-time
此选项指定 DNSKEY RRset 生成的 RRSIG 记录的过期日期和时间。当 DNSKEY 签名需要比其他记录上的签名保留更长时间时,可以使用此选项;例如,当 KSK 的私有组件处于离线状态,并且需要手动刷新 KSK 签名时。
与 一样
end-time
,绝对时间用 表示YYYYMMDDHHMMSS
。相对于开始时间的时间用 表示+N
,即距离开始时间 N 秒。相对于当前时间的时间用 表示now+N
。如果未extended end-time
指定,则使用 的值end-time
作为默认值。(而 end-time 则默认为距离开始时间 30 天。)extended end-time
必须晚于start-time
。