FREEBSD 5.2上安裝配置DNS SERVER(BIND 9)
2024-07-26 00:29:03
供稿:網(wǎng)友
----文 / 重慶.樊禮(夢(mèng)飛)
歡迎轉(zhuǎn)載﹐本文遵循GNU協(xié)議規(guī)則﹗
FREEBSD 5.2出來幾個(gè)月了,一直想系統(tǒng)全面的學(xué)習(xí)一下它的新功能,但最近工作實(shí)在太忙,沒有辦法全面的學(xué)習(xí)。今天下午快下班時(shí)忙里偷閑,花了一個(gè)小時(shí)從新安裝了一遍DNS SERVER ( BIND 9 ),怕自己以后忘記了,俗話說好記性不如爛筆頭嘛,就記在自己的BLOG里面了…
準(zhǔn)備工作:當(dāng)然要安裝FREEBSD,最好更新ports,如果不知道怎么更新,請(qǐng)參考我以前寫和FREEBSD 升級(jí)優(yōu)化大全,^_^
安裝BIND9:
cd /usr/ports/dns/bind9 進(jìn)入bind 9的目錄
make install
運(yùn)行安裝程序,等硬盤響一陣時(shí)間后,系統(tǒng)就安裝好了,方便吧,*^_^*。在安裝完成后,BIND9會(huì)提醒你:"如果你使用FREEBSD 4.X。請(qǐng)瀏覽 http://people.freebsd.org/~dougb/randomness.html 得到更多的信息,如果是FREEBSD 5.X則不需要執(zhí)行這一步,如果你想要BIND 9運(yùn)行在chroot環(huán)境,必須把/dev/random設(shè)備chroot",它還提醒我們要運(yùn)行" rndc-confgen -a "來生成一個(gè)正確的配置文件--隨機(jī)密鑰。系統(tǒng)是以/usr/local為根目錄的,所以BIND9的命令文件都放到/usr/local/sbin目錄里面和/usr/local/bin目錄里面。系統(tǒng)在安裝完成BIND 9后,會(huì)自動(dòng)建立uid為53的" bind "用戶和gid為53的" bind "群組,以供BIND服務(wù)用…
我喜歡FREEBSD的PORTS的強(qiáng)大功能,什么東西,只要make install就行啦,呵呵… linux還要滿世界找RPM包或者源程序,我不喜歡…
PS:我個(gè)人認(rèn)為,只要不是對(duì)效率要求十分高的環(huán)境下,我盡量不采用源代碼編譯,節(jié)約時(shí)間。如果我需要看它詳細(xì)的編譯命令,我可以通過讀Makefile來獲取信息!
安裝好的BIND9,是不能直接運(yùn)行的,還要讓系統(tǒng)根據(jù)我們的需要配置一下…
配置BIND9:
BIND比較重要的配置文件有:named.conf,named.root,rndc.conf,還有/etc/named目錄。因?yàn)槟J(rèn)的安裝把named.conf,localhost.rev等內(nèi)容安裝在此目錄下了(如果我記錯(cuò)了,麻煩大家更正一下),而rndc.conf則被放在了/usr/local/etc目錄里面,名字叫rndc.conf.sample
mv /etc/named/named.conf /usr/local/etc/ 如果我記錯(cuò)了,麻煩大家更正
cd /usr/local/etc 進(jìn)入BIND 9的配置目錄
vi named.conf 打開并編譯named.conf,BIND 9 的配置文件
options {
directory "/etc/namedb"; // 工作目錄
pid-file "/var/run/named/pid"; // 放pid文件到工作目錄
};
......
請(qǐng)大家注意,這文件里面很多垃圾,自己要小心判斷,不要編輯錯(cuò)誤了,要不然你是無法正常運(yùn)行BIND 9的。最后面那一段有/* 和 */注釋的部份和前面內(nèi)容意思相同,你可以根據(jù)需要使用:
zone "onlinecq.com" { //這是域名
type slave;
file "s/onlinecq.com.bak";
masters {
192.168.0.19;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.0.19; //這是本機(jī)的ip
};
};
再使用 :wq 存盤退出,請(qǐng)注意剛才的配置"s/onlinecq.com.bak",我們并沒有s目錄,于是現(xiàn)在就建立并給權(quán)限吧…
mkdir /etc/namedb/s
chown bind:bind /etc/namedb/s
chmod 750 /etc/namedb/s
好了,然后我們?cè)倥渲胠ocalhost.rev文件,一開始,該目錄下面是不存在此文件的,但我們可以運(yùn)行make-localhost,讓系統(tǒng)自動(dòng)生成該文件…
chmod 755 make-localhost 改變make-localhost腳本權(quán)限
./make-localhost
運(yùn)行后/etc/named目錄里面會(huì)自動(dòng)產(chǎn)生 localhost.rev文件和localhost-v6.rev文件,localhost.rev文件是給IPv4使用的,而localhost-v6.rev文件是給IPv6使用的,暫時(shí)用不到…
這是我的localhost.rev文件的內(nèi)容:
$TTL 3600
@ IN SOA freebsd.onlinecq.com. root.freebsd.onlinecq.com. (
20040217 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS freebsd.onlinecq.com.
1 IN PTR localhost.onlinecq.com.
OK,到此為止,/etc/named目錄里面的操作完成…
再進(jìn)入/usr/local/etc目錄
cd /usr/local/etc
你會(huì)發(fā)現(xiàn)一個(gè)rndc.conf.sample的文件,這是一個(gè)rndc的樣本文件,不用管它,我們自己生成一個(gè)即可:
/usr/local/sbin/rndc-confgen > rndc.conf
然后你會(huì)發(fā)現(xiàn),當(dāng)前目錄有一個(gè)rndc.conf的密鑰文件了,呵呵,如果你想看一下內(nèi)容,也可以使用:
vi rndc.conf
查看一下,我的文件內(nèi)容是這樣子的:
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "9lLye919/f2DTE+cObb1kg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "9lLye919/f2DTE+cObb1kg==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
注意,請(qǐng)把后面以:
# Use with the following in named.conf, adjusting the allow list as needed:
開始的這一部份,加到/usr/local/etc/named.conf后面并去掉#才可以,否則后面的rndc status將顯示超時(shí)退出...
嗯,到此為止,好象BIND 9就可以順利運(yùn)行了,請(qǐng)按下面的步驟測(cè)試吧!
/usr/local/sbin/named -g bind -c /usr/local/etc/named.conf &
& 的作用是在后臺(tái)運(yùn)行
-c的作用是以指定的配置文件運(yùn)行
-g的作用是以一個(gè)用戶組名初使化,屏幕上面也會(huì)顯示很多調(diào)試信息出來,我的如下:
freebsd# /usr/local/sbin/named -gc /usr/local/etc/named.conf &
[1] 730
Feb 17 20:20:36.892 starting BIND 9.2.3 -gc /usr/local/etc/named.conf
Feb 17 20:20:36.892 using 1 CPU
Feb 17 20:20:36.894 loading configuration from '/usr/local/etc/named.conf'
Feb 17 20:20:36.894 listening on IPv4 interface fxp0, 192.168.0.19#53
Feb 17 20:20:36.895 listening on IPv4 interface lo0, 127.0.0.1#53
freebsd# Feb 17 20:20:36.896 command channel listening on 127.0.0.1#953
Feb 17 20:20:36.896 ignoring config file logging statement due to -g option
Feb 17 20:20:36.898 zone 0.0.127.IN-ADDR.ARPA/IN: loaded serial 20040217
Feb 17 20:20:36.899 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA/IN: loaded serial 20040217
Feb 17 20:20:36.899 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT/IN: loaded serial 20040217
Feb 17 20:20:36.899 running
當(dāng)你有看到running字樣時(shí),說明已經(jīng)配置正確了,如果要控制BIND 9的運(yùn)行,更方便的使用rndc命令來進(jìn)行,比如檢測(cè)它的狀態(tài)可以使用下面的命令:
/usr/local/sbin/rndc status
當(dāng)顯示如下信息時(shí),可能會(huì)顯示如下信息…
number of zones: 5
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in PRogress: 0
query logging is OFF
server is up and running
如果沒有顯示上面的信息,請(qǐng)檢查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。
還有另外一種測(cè)試方法是:
nslook,dig,netstat 等命令,都可以觀察是否安裝BIND成功,具體方法,建議大家找找其他資料吧,THX!
下面我們?cè)侔袯IND 9加入系統(tǒng)服務(wù)里面,讓它每次開機(jī)時(shí)運(yùn)行…
vi /etc/rc.conf
請(qǐng)?jiān)谒竺婕由舷旅鎺仔?BR>
named_enable="YES"
named_program="/usr/local/sbin/named" # path to named, if you want a different one.
named_flags="-c /usr/local/etc/named.conf" # Flags for named
存盤退出!
因?yàn)镕REEBSD 5.2系統(tǒng)里面自帶了BIND 8的,為了不引起沖突,我們必須加參數(shù),用BIND 9的配置文件引導(dǎo)才可以的。
好了,請(qǐng)重新啟動(dòng)一下你的FREEBSD 即可測(cè)試是否完全安裝成功了。
結(jié)束語
至此為止,一般可以實(shí)際運(yùn)作的BIND 9就建立起來了,您可以reboot一下,讓最新的設(shè)置及軟件生效。
如果在安裝過程中出現(xiàn)錯(cuò)誤,您可以先檢查完錯(cuò)誤,再接著安裝下去。或者你可以選擇你感興趣的某些部份安裝!
當(dāng)然因?yàn)闀r(shí)間倉促,涉及到的知識(shí)太廣,加上本人能力有限,其中錯(cuò)誤在所難免,懇請(qǐng)各位讀者提出來,大家共同提高,共同進(jìn)步!
我的聯(lián)絡(luò)方式是:
cqfanli@163.com
http://cqfanli.blogbus.com
──文 重慶.樊禮(夢(mèng)飛)
2004/02/17