Domain-Name-System
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>"; };
但是當我嘗試從 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 中使用它並沒有完全損壞,但為什麼還要去那裡呢?)