FREEBSD 5.2上安裝配置DNS SERVER(BIND 9)
2024-07-26 00:29:03
供稿:網友
----文 / 重慶.樊禮(夢飛)
歡迎轉載﹐本文遵循GNU協議規則﹗
FREEBSD 5.2出來幾個月了,一直想系統全面的學習一下它的新功能,但最近工作實在太忙,沒有辦法全面的學習。今天下午快下班時忙里偷閑,花了一個小時從新安裝了一遍DNS SERVER ( BIND 9 ),怕自己以后忘記了,俗話說好記性不如爛筆頭嘛,就記在自己的BLOG里面了…
準備工作:當然要安裝FREEBSD,最好更新ports,如果不知道怎么更新,請參考我以前寫和FREEBSD 升級優化大全,^_^
安裝BIND9:
cd /usr/ports/dns/bind9 進入bind 9的目錄
make install
運行安裝程序,等硬盤響一陣時間后,系統就安裝好了,方便吧,*^_^*。在安裝完成后,BIND9會提醒你:"如果你使用FREEBSD 4.X。請瀏覽 http://people.freebsd.org/~dougb/randomness.html 得到更多的信息,如果是FREEBSD 5.X則不需要執行這一步,如果你想要BIND 9運行在chroot環境,必須把/dev/random設備chroot",它還提醒我們要運行" rndc-confgen -a "來生成一個正確的配置文件--隨機密鑰。系統是以/usr/local為根目錄的,所以BIND9的命令文件都放到/usr/local/sbin目錄里面和/usr/local/bin目錄里面。系統在安裝完成BIND 9后,會自動建立uid為53的" bind "用戶和gid為53的" bind "群組,以供BIND服務用…
我喜歡FREEBSD的PORTS的強大功能,什么東西,只要make install就行啦,呵呵… linux還要滿世界找RPM包或者源程序,我不喜歡…
PS:我個人認為,只要不是對效率要求十分高的環境下,我盡量不采用源代碼編譯,節約時間。如果我需要看它詳細的編譯命令,我可以通過讀Makefile來獲取信息!
安裝好的BIND9,是不能直接運行的,還要讓系統根據我們的需要配置一下…
配置BIND9:
BIND比較重要的配置文件有:named.conf,named.root,rndc.conf,還有/etc/named目錄。因為默認的安裝把named.conf,localhost.rev等內容安裝在此目錄下了(如果我記錯了,麻煩大家更正一下),而rndc.conf則被放在了/usr/local/etc目錄里面,名字叫rndc.conf.sample
mv /etc/named/named.conf /usr/local/etc/ 如果我記錯了,麻煩大家更正
cd /usr/local/etc 進入BIND 9的配置目錄
vi named.conf 打開并編譯named.conf,BIND 9 的配置文件
options {
directory "/etc/namedb"; // 工作目錄
pid-file "/var/run/named/pid"; // 放pid文件到工作目錄
};
......
請大家注意,這文件里面很多垃圾,自己要小心判斷,不要編輯錯誤了,要不然你是無法正常運行BIND 9的。最后面那一段有/* 和 */注釋的部份和前面內容意思相同,你可以根據需要使用:
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; //這是本機的ip
};
};
再使用 :wq 存盤退出,請注意剛才的配置"s/onlinecq.com.bak",我們并沒有s目錄,于是現在就建立并給權限吧…
mkdir /etc/namedb/s
chown bind:bind /etc/namedb/s
chmod 750 /etc/namedb/s
好了,然后我們再配置localhost.rev文件,一開始,該目錄下面是不存在此文件的,但我們可以運行make-localhost,讓系統自動生成該文件…
chmod 755 make-localhost 改變make-localhost腳本權限
./make-localhost
運行后/etc/named目錄里面會自動產生 localhost.rev文件和localhost-v6.rev文件,localhost.rev文件是給IPv4使用的,而localhost-v6.rev文件是給IPv6使用的,暫時用不到…
這是我的localhost.rev文件的內容:
$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目錄里面的操作完成…
再進入/usr/local/etc目錄
cd /usr/local/etc
你會發現一個rndc.conf.sample的文件,這是一個rndc的樣本文件,不用管它,我們自己生成一個即可:
/usr/local/sbin/rndc-confgen > rndc.conf
然后你會發現,當前目錄有一個rndc.conf的密鑰文件了,呵呵,如果你想看一下內容,也可以使用:
vi rndc.conf
查看一下,我的文件內容是這樣子的:
# 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
注意,請把后面以:
# Use with the following in named.conf, adjusting the allow list as needed:
開始的這一部份,加到/usr/local/etc/named.conf后面并去掉#才可以,否則后面的rndc status將顯示超時退出...
嗯,到此為止,好象BIND 9就可以順利運行了,請按下面的步驟測試吧!
/usr/local/sbin/named -g bind -c /usr/local/etc/named.conf &
& 的作用是在后臺運行
-c的作用是以指定的配置文件運行
-g的作用是以一個用戶組名初使化,屏幕上面也會顯示很多調試信息出來,我的如下:
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
當你有看到running字樣時,說明已經配置正確了,如果要控制BIND 9的運行,更方便的使用rndc命令來進行,比如檢測它的狀態可以使用下面的命令:
/usr/local/sbin/rndc status
當顯示如下信息時,可能會顯示如下信息…
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
如果沒有顯示上面的信息,請檢查你的/usr/local/etc/named.conf文件里面是否配置了/usr/local/etc/rndc.conf里面的key。
還有另外一種測試方法是:
nslook,dig,netstat 等命令,都可以觀察是否安裝BIND成功,具體方法,建議大家找找其他資料吧,THX!
下面我們再把BIND 9加入系統服務里面,讓它每次開機時運行…
vi /etc/rc.conf
請在它后面加上下面幾行
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
存盤退出!
因為FREEBSD 5.2系統里面自帶了BIND 8的,為了不引起沖突,我們必須加參數,用BIND 9的配置文件引導才可以的。
好了,請重新啟動一下你的FREEBSD 即可測試是否完全安裝成功了。
結束語
至此為止,一般可以實際運作的BIND 9就建立起來了,您可以reboot一下,讓最新的設置及軟件生效。
如果在安裝過程中出現錯誤,您可以先檢查完錯誤,再接著安裝下去。或者你可以選擇你感興趣的某些部份安裝!
當然因為時間倉促,涉及到的知識太廣,加上本人能力有限,其中錯誤在所難免,懇請各位讀者提出來,大家共同提高,共同進步!
我的聯絡方式是:
cqfanli@163.com
http://cqfanli.blogbus.com
──文 重慶.樊禮(夢飛)
2004/02/17