任何人都可以提供在BIND 9.7下设置DNSSEC的分步过程吗? 我认为这个版本是相关的,因为它可以让生活更轻松。 事实上,ISC发布了一个叫做DNSSEC的文件,我以此为出发点,尽pipe这不是一个教程。
我使用的主要原因是9.7(而不是全新的9.9),它是Debian 6下的稳定版本。我应该提到,我有一个基本的BINDconfiguration启动和运行。
我试过的:
包含在/etc/bind/named.conf.options
相应的大括号内的行
dnssec-enable yes;
并重新启动BIND。
Ran dnssec-keygen example.com
Ran dnssec-keygen -fk example.com
试过dnssec-signzone –S example.com
但是,最后一步给我的错误
dnssec-signzone: fatal: No signing keys specified or found.
我可以看到这是一个可能的错误,因为似乎缺less指示我的钥匙在哪里的选项,但是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指定新生成的键的输出文件夹,第二个参数是区域名称。 这个命令可能需要很长时间才能完成,因为它会等到系统中有足够的熵可用。 如果你想要的只是尝试configuration,并且你没有为生产系统生成密钥,那么你可以添加-r /dev/urandom
– 它会快速生成不太安全的密钥。 另请注意,如果多次运行此命令,则每次都会生成一组新的密钥,并且所有组都将用于签署您的区域。
步骤2:configurationBIND以启用您的区域的自动签名:
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
通知绑定,定期search在key-directory
指定的文件夹中的新DNSSEC密钥,将这些密钥添加到区域并对区域进行签名。 全部自动,没有你的互动。 核心DNSSEC支持本身已经默认启用。 你的named.conf可能只包含这个区段。
第3步:重新加载绑定
rndc reload
将加载新的configuration和绑定将加载您的DNSSEC密钥和签署区域。
完成。 确认它与dig +dnssec @localhost example.net DNSKEY
。 你应该得到DNSKEY和RRSIGlogging。
安全委派
如果您将DNNSEC添加到实际域中,为了完全启用DNNSECvalidation,您需要通过域名注册商将DSlogging添加到您的父区域 – 这与NSlogging完成的方式相同。
要validation这一切的工作,你可以使用在线工具,如dnsviz.net和dnssec-debugger.verisignlabs.com
加成:
有人可能会问:ZSK和KSK呢? – 这个过程将用一个ZSK来签署整个区域,这里没有KSK。 我试图做的是提供最简单的可能的“指南”,这将导致DNSSEC工作良好。 我没有试图涵盖所有可能的细节。 而且没有必要关心所有可能的细节。 恕我直言。