■北京 趙琳
DNS 即Domain Name System(域 名系統(tǒng))的縮寫,它是一種將IP 地址轉(zhuǎn)換成對應的主機名或?qū)⒅鳈C名轉(zhuǎn)換成與之相對應IP 地址的一種機制。
圖1 修改主配置文件
通過局域網(wǎng)內(nèi)DNS服務器的搭建,讓局域網(wǎng)內(nèi)所有用戶的DNS 服務器地址都指向到這臺服務器上,通過這個本地的DNS 服務器來進行解析,代替常用的DNS 服務器。
通過自定義自己內(nèi)部的域名,局域網(wǎng)內(nèi)所有用戶可以使用域名來訪問局域網(wǎng)內(nèi)的服務器,這樣局域網(wǎng)內(nèi)的辦公系統(tǒng)、網(wǎng)站等等,都可以直接輸入網(wǎng)址進行訪問。
在安裝完BIND 后,系統(tǒng)會多一個用戶named。
對于BIND 服務,需要配置的主要文件為/etc/named.conf。另外兩個文件,/etc/named.isc-dlv.key保存加密用,/etc/named.rfc1912.zones 擴展配置文件。
在修改之前必須先進行備份,命令:cp -p/etc/named.conf /etc/named.conf.bak
備份命令中,參數(shù)-p 表示備份文件與源文件的屬性一致。
vim/etc/named.conf修改文件。
常用主配置文件參數(shù)簡介(options 塊):
(1)listen-on port:指定DNS 監(jiān)聽的端口和地址。如果監(jiān)聽在本機的所有地址,可以用any,如listen-on port 53 {172.17.100.1;}。
(2)listen-on-v6 port:指定DNS 監(jiān)聽的IPV6 地址和端口,如listen-on-v6 port 53 {::1;}。
(3)directory:指定區(qū)域數(shù)據(jù)文件所在的路徑。默認為"/var/named"。如果使用了chroot,則該路徑為相對路徑,為/var/named/chroot/var/named。
(4)query-source port:指定DNS 客戶端在查詢時必須使用的源端口。該參數(shù)通常不設(shè)置。
(5)allow-query:允許哪些客戶端進行查詢,如果沒有定義此選項,則表示允許所有的客戶端提交的DNS 查詢請求。如:allowquery {172.17.100.200;1 72.17.100.210;};則表示僅允許172.17.100.200 和172.17.100.210 這兩個客戶端提交的DNS 查詢請求。allow-query 由外向內(nèi)。通常都是使用any 參數(shù),允許所有的客戶端查詢。
(6)allow-recursion:允許哪些客戶端執(zhí)行遞歸查詢。如果該DNS 服務器不對外開放,即不允許互聯(lián)網(wǎng)的用戶執(zhí)行查詢時,則開啟該選項。與allow-query 不同的是,不執(zhí)行客戶端提交的遞歸查詢。allow-query允許迭代查詢和遞歸查詢。allow-recursion 由內(nèi)向外,通常需要放行本地網(wǎng)段和127.0.0.0/8 的。
(7)recursion yes:默認為yes,表示給所有的客戶端執(zhí)行遞歸。這樣就成為一個開放的DNS 服務器。
(8)forwarders:指定轉(zhuǎn)發(fā)服務器。如果定義了多個轉(zhuǎn)發(fā)服務器,則依次進行嘗試,直到獲得查詢信息為止。本地DNS 服務器會將查詢請求轉(zhuǎn)發(fā)到轉(zhuǎn)發(fā)服務器。如果該項目設(shè)置在區(qū)域定義之外的話,是對所有非本地區(qū)域的解析都轉(zhuǎn)發(fā)到指定的DNS服務器;如果定義在某個區(qū)域內(nèi),則是將對該區(qū)域的解析轉(zhuǎn)發(fā)到指定服務器。
(9)forward only|first:only 表示只將查詢請求轉(zhuǎn)發(fā)到所定義的轉(zhuǎn)發(fā)服務器,不通過本機查詢。first 表示先將查詢轉(zhuǎn)發(fā)到所定義的轉(zhuǎn)發(fā)服務器,如果沒有響應,則通過本機進行迭代查詢。默認為first。
(10)querylog:yes 啟用查詢?nèi)罩居涗浌δ?,no 關(guān)閉查詢?nèi)罩居涗浌δ堋?/p>
(11)allow-transfer:允許哪些slave DNS 服務器進行區(qū)域傳輸。
(12)recursion:選項指定是否允許客戶端遞歸查詢其他域名服務器。如果希望對本地客戶端的查詢允許遞歸,但對來自外部的查詢請求禁止遞歸,可以通過“allow-recursion”選項進行定義。allow-recursion選項可以指定一個允許執(zhí)行遞歸查詢操作的地址列表。
圖2 使用命令進行配置
(13)transfersource x.x.x.x:指定slave 在向master 進行區(qū)域傳輸時所使用的源地址。
(14)notify:是否啟用notify 功能。yes 表示當Master 端數(shù)據(jù)修改時,通知Slave 進行區(qū)域傳輸,no 表示不通知slave。
(15)allow-update:是否允許通過DHCP 獲取IP 地址的機器動態(tài)更新DNS 信息,none 表示不允許。
(16)dnssec-enable:設(shè)定BIND 是否支持DNSSEC,該技術(shù)并不對數(shù)據(jù)進行加密,它只是驗證所訪問的站點地址是否有效,是一種端到端的安全協(xié)議,默認為yes,在做子域授權(quán)時,需要設(shè)置為no。
(17)dnssec-validatio n:默認為yes,在做子域授權(quán)時,需要設(shè)置為no。
修改內(nèi)容示例如下:
添加正向解析域cise.sdkd.net.cn;DNS 服務類型,默認為master 即主服務器;其對應的域解析文件是由file 指定的master.cise.sdkd.net.cn.zone
添加反向解析域163.168.192.in-addr.arpa;DNS 服務類型,默認為master 即主服務器。
其對應的域解析文件是由file 指定的163.168.192.in-addr.arpa.zone。
備注:Bind 可以使用的區(qū)域類型及其說明如下:
master:主DNS區(qū)域。擁有該區(qū)域的區(qū)域數(shù)據(jù)文件,對該區(qū)域提供管理。
slave:從DNS 區(qū)域。擁有master 區(qū)域的區(qū)域數(shù)據(jù)文件的只讀副本,slave 區(qū)域從master 區(qū)域獲取所有的數(shù)據(jù),這個過程稱為區(qū)域傳輸。
forward:轉(zhuǎn)發(fā)區(qū)域。用于轉(zhuǎn)發(fā)DNS 客戶端的查詢。
stub:存根區(qū)域。和slave 區(qū)域類似,但是只復制master 區(qū)域的NS 記錄和NS記錄對應的A 記錄。
hint:提示區(qū)域,定義根所在的位置,用于查找根DNS服務器的位置。
可以將模板文件復制一份,再進行修改。
使用命令cp -p/var/named/named.localhost /var/named/master.cise.sdkd.net.cn.zone
進入cise.sdkd.net.cn.zone 進行配置,如圖2所示。
SOA 是 Start Of Authority(開始驗證)的意思,與域有關(guān),后面共會接7個參數(shù),這7 個參數(shù)的意義依次是:
(1)Master DNS 服務器主機名,即在這個域中哪個DNS 作為主服務器。
(2)管理員的Email。即出現(xiàn)問題可給管理員發(fā)郵件。
(3)序號。這個序號代表這個數(shù)據(jù)庫檔案的陳舊,序號越大,代表越新。當slave 要判斷是否主動下載新的數(shù)據(jù)庫時,就以序號是否比slave 上的還有新來判斷。
(4)刷新頻率(Refresh)。即slave 向master 要求數(shù)據(jù)更新的頻率。
(5)失敗重新嘗試時間(Retry)。如果因為某些因素,導致slave 無法對master 達成聯(lián)機,那么在多久的時間內(nèi),slave 會嘗試重新聯(lián)機到master。
(6)失效時間(Expire)。如果一直失敗嘗試時間,持續(xù)聯(lián)機到達這個設(shè)定值時限,那么slave 將不再繼續(xù)嘗試聯(lián)機。
(7)存活時間(Minimum TTL)。如果在這個數(shù)據(jù)庫zone file 中,每筆記錄都沒有顯性設(shè)定TTL 存活時間的話,那么就以這個值為主。
備注:區(qū)域配置文件格式為:[名稱][TTL][網(wǎng)絡類型]資源記錄類型 數(shù)據(jù)
名稱:指定資源記錄引用的對象名,可以是主機名,也可以是域名。對象名可以是相對名稱也可以是完整名稱。完整名稱必須以點結(jié)尾。如果連續(xù)的幾條資源記錄類型是同一個對象名,則第一條資源記錄后的資源記錄可以省略對象名。相對名稱表示相對與當前域名來說的,如當前域名為cise.sdkd.net.cn,則表示www 主機時,完整名稱為www.cise.sdkd.net.cn.,相對名稱為www。
TTL:指定資源記錄存在緩存中的時間,單位為秒。如果該字段省略,則使用在文件開始出的$TTL 所定義的時間。
網(wǎng)絡類型:常用的為IN。
資源記錄類型:常用的有SOA、NS、A、PTR、MX、CNAM E。
在定義資源記錄時,一般情況下是SOA 記錄為第一行,NS 記錄第二行,接著是MX 記錄,其他的記錄可以隨便寫。
;:表示注釋。
():允許數(shù)據(jù)跨行。通常用于SOA 記錄。
@:表示當前域。根據(jù)主配置文件zone 中所定義的區(qū)域名稱。
*:用于名稱字段的通配符。
$ORIGIN:ORIGIN 后面跟上的是字符串,即要補全的內(nèi)容。
這樣,如果黑客攻破了服務器,進入到的就是在偽根目錄下,不會危害到真正的根目錄,這是一個安全措施。
偽根目錄:/var/named/chroot/etc/named.conf
在這個目錄下,會產(chǎn)生完整的BIND 服務的結(jié)構(gòu),進到這個目錄下,會發(fā)現(xiàn)里面基本沒有文件,只有目錄文件夾,此時需要將真實的根目錄下BIND 的配置文件和一些需要的文件都復制一份到這個偽根下,或創(chuàng)建基礎(chǔ)文件,并給予相應權(quán)限:
如果是一個比較大的局域網(wǎng),一臺主DNS 服務器顯然是不夠用的,此時就可以部署一臺或多臺從服務器來進行冗余備份。
從服務器的搭建,前面與主服務器的相同,只是配置文件不同,因為從服務器不能自己修改域配置,所有的域配置信息都是從主服務器上拉取過來的。
其他的與主服務器相同,正常啟動服務就可以了,然后可以去salve/目錄下查看是否正常拉取了主服務器的配置文件。
DNS 緩存服務器通過向局域網(wǎng)用戶提供DNS 解析服務,來減少對外網(wǎng)DNS 服務器訪問的流量和時間。
DNS 緩存服務器所有的安裝步驟都和主服務器相同。只在配置文件上不一樣。緩存服務器只要不自己設(shè)置任何的域配置文件,則可以正常作為一個遞歸的DNS 服務器,緩存網(wǎng)絡上的DNS 信息供局域網(wǎng)用戶使用,從而加快響應速度。
forwarders {114.114.1 14.114;};# 添加DNS 代理查詢地址,即本地找不到緩存就去這個地址查找。