Domain-Name-System

Bind9 拒絕來自 nsupdate 的密鑰

  • May 25, 2021

我有一個 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>";
};

但是當我嘗試從 localhost 更新 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。

allow-update語句中的密鑰rndc.key名稱是 ,但您顯示並在客戶端使用的密鑰名稱是rndc-key?

(如密鑰的名稱,而不是文件的名稱)是否rndc.key存在?如果沒有,配置是否甚至可以乾淨地載入?無論如何,密鑰名稱和秘密必須匹配,所以這似乎是問題所在。

旁注,為什麼要重新使用打算用於rndc其他目的的密鑰?只需為預期目的創建一個新密鑰(請參閱 參考資料tsig-keygen),然後不要使用該rndc密鑰!

(我也會質疑在這個時代使用 MD5。我想在 HMAC 中使用它並沒有完全損壞,但為什麼還要去那裡呢?)

引用自:https://serverfault.com/questions/1064616