BIND DNS - 内部私有域上的 DNSSEC

BIND DNS - 内部私有域上的 DNSSEC

有关 DNSSEC 的问题。

我有一个内部私有 TLD,例如 corp。其下有多个子域,例如 region-a.corp、region-b.corp 等。并且可能在区域下还有其他子域,例如 edge.region-a.corp

无论域名和子域名的数量是多少,它们都将是完全私密的,并且不需要互联网访问,因为它是一个安全的环境。我的问题是 - DNSSEC 会在这样的设置中工作吗?如果不行,为什么不行?如果是,那么你如何建立信任链?

如果有帮助的话 – DNS 基础设施将在 BIND 上运行。

答案1

由于你的私有域与全局 DNS 层次结构是分开的,因此你必须将 DNS 树顶层的公钥 ( corp.) 保存为DNSSEC 信任锚并将其提供给组织中所有支持 DNSSEC 的解析器。您还可能希望对最高级别的适用反向 DNS 区域(*.in-addr.arpa.和/或*.ip6.arpa.)执行相同操作。

对于 Windows,您显然可以让 Active Directory 处理信任锚的分发。

对于 Linux,您可以依赖于信任您的解析器 DNS 服务器为您验证 DNSSEC,或者如果您在单个主机上使用 DNSSEC 验证解析器(例如systemd-resolved),则您必须在 中提供信任锚(一个或多个类型为 DNSKEY 或 DS 的常规文本 DNS 记录)/etc/dnssec-trust-anchors.d/corp.positive

如果需要更改顶级 DNSSEC 密钥,您必须先确保所有解析器都拥有更新后的信任锚,然后才能实际切换新的顶级密钥。一个域的信任锚可以包含多个公钥记录,其中一个是活动密钥,其他则是等待使用的新密钥或已停用的旧密钥。

对于子域,较新版本的 BIND 具有内置的 DNSSEC 密钥管理自动化功能。

对于 DNSSEC 验证解析器,DNSSEC 保护的子域的验证方法是:由父域的名称服务器提供其密钥,使用父域的密钥或信任锚密钥(位于 DNSSEC 层次结构的最顶层)进行签名。

如果父域使用 DNSSEC 但其子域不使用,则父域必须为子域提供“非安全证明”DNSSEC记录,否则验证解析器将假定子域是恶意域并拒绝向客户端提供有关它的任何信息。

如果您的 DNS 层次结构的顶部使用 DNSSEC,但某些委派子域不使用,则该子域可以像往常一样拥有子子域等,而对委派子域的管理完全没有任何变化。

如果 DNSSEC 采用在 DNS 层次结构中自上而下的方式进行,则会更容易,因为层次结构最顶层的一个信任锚就足够了;如果从下往上开始,则每个启用 DNSSEC 的“孤岛”都必须维护自己的信任锚,直到其父域也启用了 DNSSEC(并承担起为其自身及其所有 DNSSEC 保护的子域维护单个信任锚的任务)。

相关内容