資 訊 分 享
DNSSEC 技術 -- TSIG於ZONE Transfer實驗 -- 實驗B[ 技術專欄 ]


實驗B-master dns與slave dns皆使用TSIG之機制

首先必需為master dns 與 slave dns 進行時間同步化的設定,否則進行ZONE Transfer時會發生失敗的情形。接下來於 master dns 與 slave dns 之設定檔加入TSIG金鑰,之後設定master dns 的allow-transfer 清單,再來在slave dns 設定檔中加入master dns 所使用的金鑰。實驗B的設定流程如下:


步驟一
TSIG金鑰:master dns 與 slave dns 皆需加入TSIG金鑰 (不會產生金鑰?請參考)

key key-mis. {
algorithm hmac-md5;
secret "AcYIGnA8Fufy2B1K6OlWBjT7rjlJxxMFDYggtX+H+EzOaQ1RiPNY1RoD
C0f71E9hgTYAE6UyElG1AZYBOsFDSQ==";
};



步驟二
allow-transfer清單:於master dns設定即可

zone "mis" IN {
type master;
file "/var/named/mis";
allow-transfer { key key-mis.; };
notify yes;
};

PS.記得加入 allow-transfer


步驟三
slave dns設定檔:

server 10.1.1.1 {
keys { key-mis.; };
};
zone "mis" IN{
type slave;
file "/var/named/slave.mis";
masters { 10.1.1.1; };
};

注意:設定好master dns server的金鑰,以便slave dns知道要從哪邊取得金鑰

 

實驗分析

將master dns 與 slave dns 的環境架設好之後,再次啟動與載入設定檔,觀看master dns與slave dns的system log檔(/var/log/messages),查看是否BIND設定檔有設定上的錯誤,並利用sniffer軟體監聽Zone Transfer 時的封包並記錄其封包數量、長度與內容。


實驗B之實驗架構


進行ZONE Transfer時,利用 sinffer 軟體所截取的封包與system log檔如下圖所示:



master dns之system log檔內容



slave dns之system log檔內容

如果出現如上圖中紅框所示的訊息,表示已經成功啟動TSIG機制並開始進行zone transfer。但沒出現上圖所示的訊息而出現一些錯誤的訊息,那就要看看是named.conf、正解檔(mis)或是反解檔(mis.rev)發生誤錯的訊息。基本上,system log檔都會將錯誤的地方顯示出來。

master dns成功訊息:client 10.1.2.1#32827: transfer of 'mis/IN': AXFR started。

 

上圖是slave dns的system log檔內容,觀察內容可以得知zone transfer已經順利地完成。
slave dns成功訊息:transfer of 'mis/IN' from 10.1.1.1#53: end of transfer。

master dns與slave dns進行Zone Transfer時截取之DNS封包

從master dns與slave dns的system log檔中即可得知zone transfer已經順利完成,但是和實驗A比較會發現實驗A與實驗B成功的system log檔內容都是相同的,並沒有辦法知道是否真的有啟動TSIG機制,所以接下來我們以sniffer軟體來截取Zone Transfer時的DNS封包,並觀察封包的內容與實驗A有何不同之處。

 

 



利用sniffer軟體擷取 DNS 之 header



利用sniffer軟體截取的 DNS 封包



利用sniffer軟體截取的封包之一的 DNS response內容

上面三個圖都是master dns與slave dns在進行Zone transfer時所產生出來的封包,我們試著與實驗A的封包進行比較後發現:

* 實驗A與實驗B的封包數量一樣,都會產生28個封包以完成一次Zone Transfer。

* 實驗A的封包數量雖然與實驗B相同,但是某些封包的長度大小卻不一致(如:第八、第十個封包與第二十四個封包……等等)。

實驗A與實驗B封包數量比較


實驗A第十個封包的內容與長度


實驗B封包第十個封包的內容與長度

再次比較實驗A與實驗B的封包內容不難發現到在Domain Name System(response)中,實驗B比實驗A多出一個Additional records,而Additional records則是用來描述key-mis.的內容,即在named.conf中所設定的金鑰。

 


實驗A封包的Domain Name System(response)內容

上圖為實驗A封包的Domain Name System(response)內容,從紅框可以看出在Domain Name System(response)中並沒有Additional records的資訊內容;而下圖為實驗B封包的Domain Name System(response)內容,我們可以明顯發現在Domain Name System(response)中的Answers之後多了描述key-mis.的Additional records。

 


實驗B封包的Domain Name System(response)內容

 

Additional records其中的資訊包含了key-mis.,其包含內容如下所述:

*Name:描述使用TSIG的名稱
*Type:TSIG的種類
*Algorithm name:演算法
*signature:以及再重要的簽章訊息


等等…詳細內容可參考下圖


實驗B封包的Domain Name System(response)內容 -Additional records

現在我們已經成功地在TSIG機制之下完成Zone Transfer的進行,不但知道如何使用TSIG機制保護Zone Transfer的進行,也了解其運作的過程中會傳送的什麼樣的封包內容。接下來我們會試著把slave dns的TSIG機制關閉,並觀察會產生什麼樣的結果。

下次將繼續實驗C,請待續……

TWCERT/CC

[X] close window