BIND 9.7 下的基本 DNSSEC 配置?

BIND 9.7 下的基本 DNSSEC 配置?

有人能提供在 BIND 9.7 下设置 DNSSEC 的分步过程吗?我认为该版本很重要,因为它应该使生活更轻松。事实上,ISC 发布了一篇名为DNSSEC 为人类服务,我用它作为起点,尽管它不完全是一个教程。

我使用 9.7(而不是全新的 9.9)的主要原因是它是 Debian 6 下的稳定版本。我应该提到我已经启动并运行了基本的 BIND 配置。

我尝试过的:

  1. /etc/bind/named.conf.options包含在行中的相应花括号内

    dnssec-enable yes;
    

    并重新启动 BIND。

  2. dnssec-keygen example.com

  3. dnssec-keygen -fk example.com

  4. 尝试过dnssec-signzone –S example.com

然而,最后一步给了我错误

dnssec-signzone: fatal: No signing keys specified or found.

我知道这可能是一个错误,因为似乎缺少指示我的密钥在哪里的选项,但 ISC 引用的指南特别引用了最后一个例子。事实上,标志 -S 实际上代表“智能签名”,所以我希望将密钥放在我执行最后一个命令 ( /etc/bind) 的同一目录中就足够了。

由于这是一个玩具、非生产项目,我不介意每 30 天重复这些步骤,但我想让它们尽可能简单并且......正确执行!

有什么想法/指示吗?提前致谢。

答案1

使用 BIND 启用 DNSSEC 的最简单方法是自动签名,下面是分步教程:

先决条件: 我假设你的区域文件是/var/lib/bind/example.net/db。区域文件和文件夹应该是可写用于绑定过程!您可能需要调整权限,和/或编辑您的/etc/apparmor.d/usr.sbin.named

步骤 1:生成 DNSSEC 密钥:

dnssec-keygen -K /var/lib/bind/example.net example.net

-K 指定新生成的密钥的输出文件夹,第二个参数是区域名称。此命令可能需要很长时间才能完成,因为它会等到您的系统上有足够的熵。如果您只想尝试配置,并且您没有为生产系统生成密钥,您可以添加-r /dev/urandom- 它将快速生成不太安全的密钥。还请注意,如果您多次运行此命令,每次它都会生成一组新密钥,并且所有密钥集都将用于签署您的区域。

第 2 步:配置 BIND 以启用区域的自动签名:

zone example.net {
    type master;
    file "/var/lib/bind/example.net/db";        
    auto-dnssec maintain;
//Enable The Magic
    key-directory "/var/lib/bind/example.net";
//Look for DNSSEC keys in "/etc/bind/example.net" folder
    update-policy local;
//Enable dynamic updates (required for auto-dnssec)
};

auto-dnssec maintain告诉 bind 定期搜索 中指定的文件夹key-directory,查找新的 DNSSEC 密钥,将这些密钥添加到区域并签署区域。所有操作均自动完成,无需您的交互。核心 DNSSEC 支持本身已默认启用。您的 named.conf 可能仅包含此区域部分。

步骤 3:重新加载绑定

rndc reload将加载新的配置并绑定将加载您的 DNSSEC 密钥并签署区域。

完毕。 确认它与 兼容dig +dnssec @localhost example.net DNSKEY。您应该会获得 DNSKEY 和 RRSIG 记录。

安全委派

如果您将 DNNSEC 添加到真实域,为了完全启用 DNNSEC 验证,您需要通过域名注册商将 DS 记录添加到您的父区域 - 这与 NS 记录的添加方式相同。

为了验证一切是否正常,您可以使用以下在线工具:dnsviz.netdnssec-debugger.verisignlabs.com

添加:

有些人可能会问:ZSK 和 KSK 呢?- 此过程将使用单个 ZSK 签署整个区域,这里没有 KSK。我试图做的是提供最简单的“指南”,这将导致 DNSSEC 正常工作。我没有尝试涵盖所有可能的细节。而且没有需要为了大家关心所有可能的细节。依我之见。

相关内容