Linux中通常使用bind來實作DNS伺服器的架設
安裝DNS服務軟體Bind和相應工具包
named.ca檔案必須存在,否則不能啟動服務 。此檔案是根伺服器資源記錄。
bind主配置檔案為/etc/named.conf
主配置檔案文法檢查指令
以域名hunk.tech為例配置一個DNS伺服器
所謂的正向區域,指的是 FQDN > IP 轉換
1./etc/named.rfc1912.zones檔案,添加一個區域
2.在主配置檔案中定義的全局中directory設定參數的目錄中建立該區域資料庫檔案
3.在建該區域資料庫檔案定義資源記錄
4.區域添加好後,使用區域庫指令檢查:
5.重新加載資料庫資訊
所謂的反向區域,指的是 IP > FQDN 轉換
專業名詞:PTR
1./etc/named.rfc1912.zones檔案,添加一個PTR區域
區域名稱:網絡位址反寫.in-addr.arpa.
比如:
172.16.100. --> 100.16.172.in-addr.arpa.
2.在主配置檔案中定義的全局設定中/var/named的目錄中建立該區域資料庫檔案
所屬組必須為named,且權限為640安全。是以建議複制一個原有的模闆進行修改。
必須加-p保留原有權限屬性,
通常在應用中,DNS的反向解析并不是很重要,可以不配置,當伺服器中有域名作為郵件伺服器時,此時可以配置反向解析,
因為郵件中過濾垃圾郵件的技術通常是解析郵箱位址,如果IP位址不能反解成一個域名則視為垃圾郵件。
DNS查詢中出現aa标記的話,就是權威查詢,也就是說,查詢的資源記錄就是在那台DNS伺服器直接查出來,而不是通過其他DNS查詢。
是相對父域來說的,指域名中的每一個段。各子域之間用小數點分隔開。放在域名最後的子域稱為最進階子域,或稱為一級域,在它前面的子域稱為二級域。
實作子域的幾個方法:

注意:被轉發的伺服器需要能夠為請求者做遞歸,否則轉發請求不予進行。在主配置檔案中定義以下:
注意:關閉dnssec功能:
(1) 全局轉發: 對非本機所負責解析區域的請求,全轉發給指定的伺服器
(2) 特定區域轉發:僅轉發對特定的區域的請求,比全局轉發優先級高
轉發選項:
從用戶端到本地DNS伺服器是屬于遞歸查詢,而DNS伺服器之間就是疊代查詢
這裡的ACL可别與之前學習的檔案ACL權限混淆哦,當然,這也是bind安全管理的方法.
把一個或多個位址歸并為一個集合,并通過一個統一的名稱調用
與之前的shell程式設計中的函數一樣,把一條指令或多條指令放在一個函數體内,以後要用的時候,調用名稱即可。
bind有四個内置的ACL
實作的基礎就是view視圖
view是BIND9強大的新功能,允許名稱伺服器根據詢問者的不同有差別的回答DNS查詢。特别是當運作拆分DNS設定而不需要運作多個伺服器時特别有用。
每個視圖定義了一個将會在使用者的子集中見到的DNS名稱空間。
注意:
以下用一個執行個體來看ACL與view的搭配使用吧。不同位址解析不同的IP,即智能DNS
找一台192網段的主機進行測試
從日志可以看出來查詢比對了view規則net_192
client 192.168.4.207#44511: view net_192: query: www.hunk.tech IN A +E (192.168.4.200)
找一台172網段的主機進行測試
從日志可以看出來查詢比對了view規則net_172
client 172.18.103.222#51655: view net_172: query: www.hunk.tech IN A +E (172.18.103.226)
在本機使用127.0.0.1位址進行測試
從日志可以看出來查詢比對了view規則net_other
client 127.0.0.1#43506: view net_other: query: www.hunk.tech IN A + (127.0.0.1)
至此,智能DNS範例已經完成。如果想擷取更新實際中的IP段,可以根據這個腳本實作。
<a href="https://www.centos.bz/2012/02/automatic-get-unicom-chinanet-new-ip-ranges/">聯通電信最新IP網段</a>
chroot是Linux系統對應用程式的一種安全限制機制。在應用程式執行了chroot系統調用後,它的執行被限定到chroot後的目錄下。這樣操作後,在最差的情況下,如果BIND被入侵了,那麼黑客所拿到的目錄權限會被限制到chroot後的目錄,不會對系統的其他檔案造成洩露或者被惡意修改。
本文轉自 ljpwinxp 51CTO部落格,原文連結:http://blog.51cto.com/191226139/2063287