Bind9 拒绝来自 nsupdate 的密钥

Bind9 拒绝来自 nsupdate 的密钥

我有一个正在运行(并且正常工作)的 Bind9 DNS 服务器。所有区域都是手动管理的。我现在想将区域更改为自动更新。设置完成后,我尝试使用 nsupdate,但它失败并显示“拒绝”。我不知道为什么会这样。

配置:rndc.key包含在named.conf中

// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/rndc.key";

我还向我的named.conf.local添加了允许更新语句,并确保区域文件位于/var/lib/bind

root@ns1:/etc/bind# cat named.conf.local
zone "somedomain.com" {
        type master;
        file "/var/lib/bind/db.somedomain.com";
        #update-policy {grant "rndc.key" zonesub ANY;} ;
        allow-update { key rndc.key;};
        allow-transfer { some IP; };
};

密钥存在:

root@ns1:/etc/bind# cat rndc.key
key "rndc-key" {
        algorithm hmac-md5;
        secret "<secret>";
};

但是当我尝试从本地主机更新 vie nsupdate 时,它​​拒绝了。

root@ns1:/etc/bind# nsupdate
> server localhost
> key rndc-key <secret>
> zone somedomain.com
> update add test.somedomain.com. 600 IN A someIP
> send
update failed: REFUSED

syslog 也没有给我带来太多帮助

May 24 22:37:20 ns1 named[30755]: client @0x7f1f8c0e3840 127.0.0.1#27482/key rndc-key: signer "rndc-key" denied
May 24 22:37:20 ns1 named[30755]: client @0x7f1f8c0e3840 127.0.0.1#27482/key rndc-key: update 'somedomain.com/IN' denied
May 24 22:38:09 ns1 named[30755]: resolver priming query complete
May 24 22:38:38 ns1 named[30755]: resolver priming query complete

我复制并粘贴了密钥,所以应该没有拼写错误。这些都是原始终端输出,只是域和 IP 发生了变化。

答案1

语句中的键的名称allow-updaterndc.key,但是您在客户端显示的和使用的键的名称是rndc-key

rndc.key(密钥名称,而非文件名称)是否存在?如果不存在,配置是否能干净地加载?无论哪种情况,密钥名称以及机密都必须匹配,因此这似乎是问题所在。

旁注,为什么要将原本用于其他目的的密钥重新用于rndc其他目的?只需为预期目的创建一个新密钥(请参阅tsig-keygen),然后保留该rndc密钥!
(我也会质疑当今时代 MD5 的用途。我想在 HMAC 中使用它并没有完全损坏,但为什么还要去那里呢?)

相关内容