有人可以提供在 BIND 9.7 下设置 DNSSEC 的分步程序吗?我认为这个版本是相关的,因为它应该让生活更轻松。事实上,ISC 发布了一份名为DNSSEC for Humans的文档,我用它作为起点,虽然它不是一个教程。
我使用 9.7(比如说,而不是全新的 9.9)的主要原因是它是 Debian 6 下的稳定版本。我应该提到我已经启动并运行了基本的 BIND 配置。
我试过的:
包含/etc/bind/named.conf.options
在行中适当的大括号内
dnssec-enable yes;
Run Code Online (Sandbox Code Playgroud)
并重新启动 BIND。
冉 dnssec-keygen example.com
冉 dnssec-keygen -fk example.com
试过 dnssec-signzone –S example.com
但是,最后一步给了我错误
dnssec-signzone: fatal: No signing keys specified or found.
Run Code Online (Sandbox Code Playgroud)
我可以看到这可能是一个错误,因为似乎缺少指示我的密钥在哪里的选项,但在手头上,ISC 引用的指南特别引用了最后一个示例。事实上,标志 -S 实际上代表“智能签名”,所以我希望将密钥放在我执行最后一个命令 ( /etc/bind
)的同一目录中就足够了。
由于这是一个玩具,非生产项目,我不介意重复这些步骤,比如,每 30 天,但我想让它们尽可能简单,并且......让它们正确!
任何想法/指示?提前致谢。
使用 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)
};
Run Code Online (Sandbox Code Playgroud)
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.net和dnssec-debugger.verisignlabs.com等在线工具
添加:
有人可能会问:ZSK 和 KSK 怎么样?- 此过程将使用单个 ZSK 签署整个区域,此处没有 KSK。我试图做的是提供最简单的“指南”,这将导致良好的 DNSSEC 工作。我没有试图涵盖所有可能的细节。而且没有必要让每个人都关心所有可能的细节。恕我直言。