|
實驗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
|