歡迎您光臨本站 註冊首頁

RHEL5下搭建DNS服務詳細攻略

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

今天做了一個比較簡單的正向解析的DNS服務,只要了解了DNS服務裡面配置文件的意思那麼做起來就很簡單了.下面開始切入正題.

Bind是Berkeley Internet Name Domain Service的簡寫,它是一款實現DNS伺服器的開放源碼軟體.Bind原本是美國DARPA資助伯克里大學(Berkeley)開設的一個研究生課題,後來經過多年的變化發展,已經成為世界上使用最為廣泛的DNS伺服器軟體,目前Internet上絕大多數的DNS伺服器有都是用Bind來架設的.

DNS服務介紹:

後台進程:named
腳本:/etc/rc.d/init.d/named


使用埠:53(tcp,udp)
所需RPM包:bind-9.3.3-10.el5
相關RPM包:bind-chroot

caching-nameserver


配置文件:/var/named/chroot/etc/named.conf
相關路徑:/var/named/

1990年以後,bind-chroot增加了bind伺服器的安全性,早期Linux服務都是以root許可權啟動和運行的,隨著技術的發展,各種服務變得越來越複雜,導致BUG和漏洞越來越多.黑客利用服務的漏洞入侵系統,能獲得root級別的許可權,從而控制整個系統.
為了減緩這種攻擊所帶來的負面影響,現在伺服器軟體通常設計為以root許可權啟動,然後伺服器進程自行放棄root,再以某個低許可權的系統賬號來運行進程.這種方式的好處在於該服務被攻擊者利用漏洞入侵時,由於進程許可權很低,攻擊者得到的訪問許可權又是基於這個較低許可權.

bind的主配置文件/etc/named.conf ,我們先安裝bind伺服器

bind-9.3.3-10.el5.i386.rpm
bind-libbind-devel-9.3.3-10.el5.i386.rpm
bind-sdb-9.3.3-10.el5.i386.rpm
bind-devel-9.3.3-10.el5.i386.rpm
caching-nameserver-9.3.3-10.el5.i386.rpm
bind-chroot-9.3.3-10.el5.i386.rpm

bind的配置文件默認是沒有的,需要自己手寫,但是很多,容易寫錯,我們安裝模板文件,然後來修改.由於安裝了chroot環境,我們的/etc/named.conf 應該在/var/named/chroot/etc/ 目錄.

cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf

編輯named.conf這個文件,把文件裡面多餘的東西刪除了,只剩下紅色中的內容,然後我們來寫

[root@www /]# cat /var/named/chroot/etc/named.conf

options {


listen-on port 53 { 192.168.55.201; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.55.0/24; };
};

先檢查主機的名字,使用hostname

[root@www /]# hostname
www.bolin.com

我修改我的主機名為:www.bolin.com .這裡我們要用FQDN樣式把你們的主機名改改,這裡很重要.linux的主機名要修改3個地方不知道大家還記得不.

www.bolin.com
[root@www /]# vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 www.bolin.com
::1 localhost6.localdomain6localhost6

[root@www /]# vi /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=www.bolin.com 我們把這裡也要改過來

修改完了我們繼續:

我們以bolin.com 這個二級域名來建一個域名伺服器

全局配置(options )
options 語句在每個配置文件中只有一個.如果出現多個options, 則第一個options 的配置有效,並會產生一個警告信息.

listen-on port 53 { 127.0.0.1; };

監聽埠,修改成自己的IP地址,如果有多個IP,就寫多個,每行要以;結束.

directory "/var/named";

zone文件的存放目錄,這裡的/var/named 是相對目錄,在chroot環境下/var/named目錄下.

allow-query { localhost; };

允許查詢的client,我們修改成本地網段192.168.55.0/24 如下:

[root@www /]# cat var/named/chroot/etc/named.conf

options {
listen-on port 53 { 192.168.55.201; };


listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.55.0/24; };
};

下面我們開始寫zone文件

區域配置(zone )

zone 語句作用是定義DNS 區域,在此語句中可定義DNS 區域選項

zone區域設置,第一步,設置根區域

當DNS伺服器處理遞歸查詢時,如果本地區域文件不能進行查詢的解析,就會轉到根DNS伺服器查詢,在主配置文件named.conf文件中還要定義根區域.
zone "." IN {
type hint;
file "named.ca";
};
type:設置域的類型
file:設置根服務列表文件名

繼續,指定正向解析的配置文件

記住,bind對配置文件要求很嚴格,就算是有些地方多了個空格,伺服器都可能啟動不了.

下面我直接貼出我name.conf裡面配置文件的內容然後在給大家解釋代表什麼意思:如下

[root@www /]# cat var/named/chroot/etc/named.conf

options {
listen-on port 53 { 192.168.55.201; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";


query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.55.0/24; };
};

zone "." IN {
type hint;
file "named.ca";
};

zone "bolin.com" IN {
type master;
file "bolin.com.zone";
};

cp /var/named/chroot/var/named/localhost.zone /var/named/chroot/var/named/bolin.com.zone

然後編輯區域文件,添加記錄:

[root@www /]# vi var/named/chroot/var/named/bolin.com.zone

$TTL 86400
@ IN SOA www.bolin.com root.bolin.com. (
2011040701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

@ IN NS www.bolin.com.
www IN A 192.168.55.201
@ IN mx 5 www.bolin.com.
mail IN A 192.168.55.88

TTL是生存期,單位是秒

$TTL是全局定義的

第二行 SOA記錄,@取代在/etc/named.conf中指定的域名.

SOA段中的數字,分別為:序列號、刷新、重試、過期、生存期

序列號

:序列號用於DNS資料庫文件的版本控制.每當數據被改變,這個序列號就應該被增加.
刷新:從伺服器向主伺服器查詢最新數據的間隔周期.每一次檢查時從伺服器的數據是否需要更改,則根據序列號來判別.
重試:一旦從伺服器嘗試連接主伺服器失敗,下一次查詢主伺服器的延遲時間.
過期:如果從伺服器無法連通主伺服器,則在經過此時間后,宣告其數據過期.
生存期:伺服器回答 ‘無此域名’ 的間隔時間.

數字的默認單位為秒.否則:W= 周、D= 日、H= 小時、M= 分鐘.

IN 是internet記錄

SOA 是SOA 初始化記錄,我們說的是初始授權記錄,這個翻譯不過,理解很多反正知道是那個意思就行了

www.bolin.com. 是DNS伺服器的名稱

root.bolin.com. 是管理員的郵箱地址

下一步就可以啟動DNS服務了.

先修給下你自己的DNS:[root@www /]# vi /etc/resolv.conf

search localdomain

nameserver 192.168.55.201

完成後啟動DNS服務:service named restart

我們現在來測試我們的DNS

dig -t soa michael.com

dig -t mx michael.com

這是dig 工具,查詢 michael.com域中的SOA記錄和MX記錄

[root@www /]# dig -t soa www.bolin.com

; <<>> DiG 9.3.4-P1 <<>> -t soa www.bolin.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55108
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;www.bolin.com. IN SOA

;; AUTHORITY SECTION:
bolin.com. 86400 IN SOA www.bolin.com.bolin.com. root.bolin.com. 2011040701 10800 900 604800 86400

;; Query time: 11 msec
;; SERVER: 192.168.55.201#53(192.168.55.201)
;; WHEN: Sat Mar 19 20:16:44 2011
;; MSG SIZE rcvd: 86

[root@www /]#

nslookup 也可以 和WIN下面是一樣的用法

[root@www /]# nslookup www.bolin.com
Server: 192.168.55.201
Address: 192.168.55.201#53

Name: www.bolin.com
Address: 192.168.55.201

OK啦 ~~~ 看到沒 DNS服務搭建就到這裡了當你明白每個配置文件裡面內容的意思以後就會發現其實很簡單.

本文出自 「技術同盟」 博客,請務必保留此出處http://20704371.blog.51cto.com/1513443/541445


[火星人 ] RHEL5下搭建DNS服務詳細攻略已經有706次圍觀

http://coctec.com/docs/linux/show-post-48907.html