我正在尝试配置绑定以接受来自 dhcp 服务器的更新,我已对 dhcpd.conf 文件进行了更改以引用适当的区域和 rndc.key 密码文件,但是当我重新启动 dhcp 服务器时,我得到:
Can't open /etc/bind/rndc.key: Permission denied
rndc.key 具有权限 640,组和所有者是绑定的。
如果我将 rndc.key 更改为具有 666 的权限,它就可以工作,但这不安全,有没有更好的方法?
Ubuntu 11.04
答案1
对我来说,使用 rndc.key 进行 DHCP 更新似乎是一个奇怪的想法。(我在 Google 上搜索了一些使用此类设置的 Debian 手册,也许这就是它的来源)。此外,根据 bind 手册,rndc.key 只是为了向后兼容 bind8 而保留的。
我的建议如下:对于 DHCP,直接在 named.conf 和 DHCP 配置文件中插入以下语句:
key "zone-updates-key" {
algorithm hmac-md5;
secret "lgkbhjhtthgtlghtl6567==";
};
(当然要更改密码;),你可以通过运行 rndc-confgen 来生成随机密码)
不需要任何“include rndc.key”语句。现在在named.conf中的区域配置中添加
allow-update { key "zone-updates-key"; };
并在 dhcp 区域配置中:
key zone-updates-key;
就这样。照常,这两个文件应该可以被各自的进程读取。
** 您也可以选择在这里停下来 **
对于 rndc,您可以运行 rndc-confgen 并在 rndc 中使用它的输出。会议和named.conf - 这样bind将根本不使用rndc.key。
(至于为什么不使用 rndc.key 进行动态更新:此密钥可以完全控制绑定,如果您需要的只是单个区域的动态更新,那么没有理由妥协这一点。)
或者,在较新的绑定版本中,/var/run/named/session.key 可能会有帮助 - 看看“session-...”绑定指令。