透過採用共享秘密金鑰 (也稱為 TSIG 金鑰) 的交易簽章 (TSIG),可以實現安全交易。本節說明如何產生及使用這類金鑰。
不同伺服器之間的通訊,以及區域資料的動態更新,都需要安全交易。讓存取控制依靠金鑰比單純依靠 IP 位址要來得安全許多。
使用以下指令可產生 TSIG 金鑰 (有關詳細資訊,請參閱 man dnssec-keygen):
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
這樣會建立兩個檔案,名稱類似如下:
Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
金鑰本身 (如 ejIkuCyyGJwwuN3xAteKgg== 的字串) 在兩個檔案中都可找到。如果要用於交易,第二個檔案 (Khost1-host2.+157+34265.key) 必須傳輸到遠端主機,最好是以安全的方式傳輸 (例如,使用 scp)。在遠端伺服器上,金鑰必須包含於檔案 /etc/named.conf 內,才能開啟 host1 與 host2 之間的安全通訊:
key host1-host2. {
algorithm hmac-md5;
secret ";ejIkuCyyGJwwuN3xAteKgg==;
};![]() | /etc/named.conf 的檔案權限 |
|---|---|
請確定 include "filename"
將 | |
若要讓伺服器 host1 能夠使用 host2 (在此範例中位址為 10.1.2.3) 的金鑰,伺服器的 /etc/named.conf 必須包含以下規則:
server 10.1.2.3 {
keys { host1-host2. ;};
};
類比項目必須包含於 host2 的組態檔中。
針對為 IP 位址和位址範圍定義的任何 ACL (存取控制清單,切勿與檔案系統 ACL 混淆) 新增 TSIG 金鑰,以確保交易安全性。對應項目應該看起來如下:
allow-update { key host1-host2. ;};
此主題在 update-policy 下的 BIND Administrator Reference Manual 中有詳細討論。