LINUX 搭建DNS服務器
DNS 服務介紹后臺進程:named腳本:/etc/rc.d/init.d/named使用端口:53(tcp ,udp )所需RPM 包:bind-9.3.3-10.el5相關RPM 包:bind-c
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/
#現在服務器軟件通常設計為以root 權限啟動,然后服務器進程自行放棄root ,再以某個低權限的系統(tǒng)賬號來運行進程。這種方式的好處在于該服務被攻擊者利
用漏洞入侵時,由于進程權限很低,攻擊者得到的訪問權限又是基于這個較低權限。 事實上,需要正反解成對的大概僅有郵件服務器,如果想架設郵件服務器,最好具有固定IP, 這樣才能向您的ISP 要求設置反解,反解都要通過上層主機的設置才行。
1, 查詢系統(tǒng)是否有安裝DNS 服務器
2,安裝bind 服務器 (Bind 是Berkeley Internet Name Domain Service的簡寫)
如果用rpm 方式安裝的話,需要安裝以下安裝包
,#centos5.5環(huán)境下無法安裝
bind-sdb,
用yum
安裝時檢查提示需要安裝依賴關系
postgresql-libs-8.1.18-2.e15_4.1.i386.rpm
安裝好依賴關系后再來安裝
,至此,rpm 安裝完成,當然也可以用yum 來安裝更快捷。
3,
bind 服務器全局配置(options )
#bind的配置文件默認是沒有的,需要自己手寫,但是很多,容易寫錯,所以我們安裝模板文件,然后來修改。由于安裝了chroot 環(huán)境,所以我們的/etc/named.conf 應該在/var/named/chroot/etc/ 目錄。
沒有named.conf ,所以我們要把named.caching-name.conf 文件copy 一份成named.conf
編輯named.conf 這個文件, 把文件里面多余的東西刪除了,只剩下如圖中的內容,然后我們來寫
.
3.1, 配制named.conf 文件
options 語句在每個配置文件中只有一個。如果出現多個options, 則第一個options 的配置有效,并會產生一個警告信息。
listen-on port 53 { 127.0.0.1; };
監(jiān)聽端口,修改成自己的IP 地址,如果有多個IP ,就寫多個,每行要以;結束。
,directory "/var/named";
zone 文件的存放目錄,這里的/var/named 是相對目錄,在chroot 環(huán)境下/var/named目錄下。
dump-file "/var/named/data/cache_dump.db"; 設置DNS 緩存數據的指定文件。
statistics-file "/var/named/data/named_stats.txt"; DNS 統(tǒng)計數據寫入的文件。 allow-query { localhost; };
允許查詢的client ,我們修改成本地網段192.168.202.0/24,可以設置any,none,ip 網段。
3.2,區(qū)域配置
配置實例:下面我以centos.com 這個二級域名來建立一個域名服務器
#由主機名查找IP 的過程為正解,由IP 查詢得到主機名為反解,一個正解或反解的設置就是一個Zone.
第一步:設置根區(qū)域
zone “. ”IN{ :根區(qū)域
type hint ; :指定該域的類型,有hint,master,slave 等可選,hint 類型特指該區(qū)域為root 域
file “named.ca ”;}; :解析文件文件名
第二步:指定正向解析的配置文件
#記住,bind 對配置文件要求很嚴格,就算是有些地方多了個空格,服務器都可能啟動不了哈~
zone “centos.com" IN{ : 新建一個域,域名為centos.com
type master; :master 指該區(qū)域為主區(qū)域,slave 指該區(qū)域為輔導區(qū)域。 file “centos.com ”; :指定存放該區(qū)域數據的文件名,每個區(qū)域以分號結尾。
,第三步:指定反向解析的配置文件
一個簡單的named.conf 配置文件就做好了
保存,然后我們去修改區(qū)別文件,添加記錄
#centos.com.zone, 是你剛才在named.conf 里面定義的名字
第四步:添加解析記錄
#TTL是生存期, 單位是秒 ,$TTL是全局定義的,86400秒。
第二行 SOA記錄,@取代在/etc/named.conf中指定的域名,root.centos.com. 是管理員郵箱地址,后面加點表示絕對地址(全名)。
SOA 段中的數字,分別為:序列號、刷新、重試、過期、生存期
序列號: 序列號用于DNS 數據庫文件的版本控制。每當數據被改變,這個序列號就應該被增加。 刷新: 從服務器向主服務器查詢最新數據的間隔周期。每一次檢查時從服務器的數據是否需要更改,
,則根據序列號來判別。
重試: 一旦從服務器嘗試連接主服務器失敗,下一次查詢主服務器的延遲時間。
過期
:
如果從服務器無法連通主服務器,則在經過此時間后,宣告其數據過期。
生存期:
服務器回答 ‘無此域名’ 的間隔時間。
數字的默認單位為秒。否則:W= 周、D= 日、H= 小時、M= 分鐘。
下面我們來配置正向解析文件,這里的主機名為mail
簡單的正向配置文件就到這里, 下面接著講反向解析的zone 文件。
把正向解析zone 文件拷貝一份,名字是你在named.conf 中定義的反向解析的名字 編輯反向解析文件
只需要把A 記錄修改成PTR 記錄就可以了,PTR 是反向解析的意思,把IP 地址修改成域名 然后保存退出
配置文件就寫完了,下面我們來使用配置文件檢測工具來檢測我們的配置文件語法是否正確 檢測區(qū)域文件的語法
語法為named-checkzone 域名 配置文件
,檢查正向配制文件語法
檢查反向配制文件語法
最后需要修改name.conf
的所有者,因為bind
要以named
帳號才能啟動
最開始的時候就是因為沒有修改反向文件的的權限導致無法解析,一直找不到問題,今后要特別注意。
修改DNS 域名服務器
啟動DNS 服務器
還可以用下面的方式啟動DNS 服務器
最后檢測解析一下域名:
再來解析一下IP:
,大功告成。
dig
命令
域信息搜索器,查詢DNS
服務器的解析
host 解析域名
正向文件檢查
named-checkconf /etc/named.conf
反向文件檢查
named-checkzone 206.168.192.in-addr.arpa /var/named/192.168.2026.zone
補充:
此實驗的服務器IP 地址為192.168.202.62,在局域網內沒有上網權限,通過以下解析測試
可以得出:
,之所以能夠解析到CCTV 外網的
IP ,是因為在主配制文件named.conf 中,當DNS 在centos 域中無法查找到相關信息時會將請求提交到根域服務器中
,所以能夠通過根域文件解析得到。
全球一共十三臺服務器。
,