在官方說明文件的第三章中的Tools for use with the name server daemon
有提到rndc這個指令~
The remote name daemon control
(rndc) program allows the
system
administrator to control the operation of a name server.
也就是允許遠端控制DNS Server 啦~
那要如何實作…總不可能讓隨便任何一台主機都能控制DNS Server吧…
來看吧…~基本上這個也不難
@DNS Server(OpenSuSE11.1 32Bits 192.168.148.129)
#cat /etc/rndc.key
#rndc-confgen -a
重新產生rndc.key…前後可用cat指令觀察內容變化~
#cat /etc/rndc.key
key "rndc-key" {
algorithm hmac-md5;
secret "dhvS0tzh2QhK0GpWouix2A==";
};
#rndc-confgen > /etc/rndc.conf
產生/etc/rndc.conf 檔案
#cat /etc/rndc.key >> /etc/rndc.conf
將rndc.key的內容附加到rndc.conf後面…根據rndc.conf內容的註解~有一些地方要修改~
#vi /etc/rndc.conf
刪掉原有的key區段敘述…保留剛才cat過去的rndc.key的內容…也就是說把key區段的敘述改成rndc.key的內容就對了
(這個檔案是執行rndc指令時,預設帶進來的選項內容)
(default-key 等於 -k 選項)
(default-server 等於 -s 選項)
(default-port 等於 -p 選項)
接下來要修改options區段…將default-server 改成192.168.148.129
# Start of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "dhvS0tzh2QhK0GpWouix2A=="; }; options { default-key "rndc-key"; default-server 192.168.148.129; default-port 953; }; |
#vi /etc/named.conf
加入
key "rndc-key" { algorithm hmac-md5; secret "dhvS0tzh2QhK0GpWouix2A=="; }; controls { inet 192.168.148.129 port 953 allow { 192.168.148.129;192.168.148.132; } keys { "rndc-key"; }; }; // inet 選項是打開哪個IP進行Listen動作~ //192.168.148.129 port 953 允許192.168.148.132使用rndc-key連入控制 //192.168.148.129 為Server的IP,port 953則是打開Listen port~可以連入控制 |
#/etc/init.d/named restart
#netstat -tlnup|grep 953
#rndc reload
(不加參數會帶入/etc/rndc.conf的內容,使用rndc-key連入192.168.148.129的port 953進行reload動作)
(在本機上使用rndc控制本機的DNS server)
如果有192.168.148.129的TCP port 953就表示Server準備就緒~
@Client(OpenSuSE11.1 32Bits 192.168.148.132)
#rndc -s 192.168.148.129 -p 953 reload
rndc: recv failed: connection reset
以上訊息表示連線被拒…無法連入192.168.148.129 port 953進行reload指令~
Server端的/var/log/messages檔案則會出現訊息~
rejected command channel message from 192.168.148.132
為何不能控制DNS server吶~?各位有想到原因嗎?就是沒有拿key去交易啦~
因為還有一些步驟~
首先必須將rndc.key經由安全的方式傳到client這台來~
#scp root@192.168.148.129:/etc/rndc.key /root/
#rndc -k /root/rndc.key -s 192.168.148.129 -p 953 reload
使用-k 選項匯入該key,就可以成功啦~
如果覺得每次都要打那麼長的選項才可以控制DNS server的話…可以這樣
#vi /etc/rndc.conf
key "rndc-key" { algorithm hmac-md5; secret "dhvS0tzh2QhK0GpWouix2A=="; }; options { default-key "rndc-key"; default-server 192.168.148.129; default-port 953; }; |
#rndc reload
就可以把rndc.conf檔案預設值帶進來囉~
(使用rndc-key連入192.168.148.129的port 953進行reload動作)
後記:
呼…各位…有沒有什麼心得吶~
還有…千萬別對Server進行stop
就再也不能連進去啦~因為DNS服務停掉了…
連帶打開的953 port也停掉啦~
就得使用其它方法先啟動DNS囉~ >.<
留言列表