DNS基礎概念:
- DNS全稱為Domain Name System。它作為將域名和IP地址相互映射的得一個分布式數據庫,能夠使人更方便的訪問互聯網
- DNS使用TCP和UDP得53號端口
-
BIND是DNS得實現方式之一
- named是bind程序得運行的進程名
- named進程的主要運行者是named用戶,為了安全起見,它的程序也應該以named用戶運行
配置正向解析:
yum -y install bind bind-utils -y #安裝bind vim /var/named/lijing.io #在/var/named/下創建文件 $TTL 600 lijing.io. IN SOA lijing.io. nsadmin.liing.io. ( 2017052901 1H 5M 1W 6H ) IN NS dns1.lijing.io dns1.lijing.io. IN A 172.16.253.223 www.lijing.io IN CNAME www vim /etc/named.conf #編輯主配置文件 /dnssec-enable #查找dnssec-enable //dnssec-enable #注釋之 dnssec-validation no #改為no,禁用 /allow-query #查找allow-query allow-query { any; }; #允許所有人查詢 /listen-on #查找這一行 //listen-on #注釋之 #注意,每一個指令都已分號結尾 vim /etc/named.rfc1912.zones #更改區域配置文件 G #跳轉到行末 zone "lijing.io" { type master; #定義為主服務器 file "lijing.io.zone"; } named-checkconf #檢查配置文件語法 named-checkzone #檢查zone區域語法 chmod o= /var/named/lijing.io.zone chown :named /var/named/lijing.io.zone systemctl start named.service ss -unl #查看53號端口工作與否 host -t A lijing.io host -t SOA lijing.io #測試
配置反向解析
vim /etc/named.rfc1912.zones zone "16.172.in-addr.arpa" IN { type master; file "172.16.zone"; #在172.16.zone文件中 @ 符號表示 16.172.in-addr.arpa }; named-checkconf vim 172.16.zone $TTL 1200 $ORIGIN 16.172.in-addr.arpa. #定義了之后,dns后面補得是這個定義的字符 @ IN SOA lijng.io. naadmin.lijing.io. ( #@符號意義表示區域名 2017052901 3H 20M 1W 1D ) @ IN NS dns1.lijing.io. #dns1.后面補得是16.172.in-addr.arpa 223.253 IN PTR dns1.lijing.io. #前面的應該要與lijing.io.zone中得地址反寫 #223.253.16.172.in-addr.arpa. 最左側完整形式 1.0 IN PTR www.lijing.io. named-checkconf named-checkzone rndc reload dig -x 172.16.0.1 @172.16.253.223 dig -t axfr 16.172.in-addr.arpa @172.12.253.223 chmod o= /var/named/16.172.zone chown :named /var/named/16.172.zone
主從配置
在另外一臺主機(IP為172.16.254.20) ll /var/named/ #查看namd目錄,named用戶對這個目錄是否擁有寫權限(從服務器的區域文件是自動更新的,所以named對這個目錄應該擁有寫權限 vim /etc/named.rfc1912.zones G zone "lijing.io" IN { type slave; file "slaves/lijing.io.zone"; masters { 172.16.253.223; }; }; named-checkconf rndc reload tail /var/log/messages #查看日志當中得說明(all zones loaded..) cd /var/named/ dig -t A www.ilinux.io @172.16.254.20
子域授權,區域轉發
#在lijing.io下授權兩個資源,一個叫做ops,一個叫做dev vim /var/named/lijing.io.zone ops,lijing.io. IN NS dns1.ops.lijing.io. #說明ops子域由子域內的dns1.ops服務器來負責 dev.lijing.io. IN NS dns1.dev.lijing.io. dns1.pos IN A 172.16.254.21 dns1.dev IN A 172.16.254.22 #兩臺主機能通信,就可以解析出子域 #在父域中先指明切割成什么子域,再指明每個負責人是誰,每個負責人對應信息是什么 #切換到172.16.254.21主機 vim /etc/named.conf listen-on-v6 port 53 { 127.0.0.1; 172.16.254.21; }; //dnssec-enable yes; //dnssec-validation yes; vim /etc/named.rfc1912.zones zone "ops.lijing.io" IN { type master; file "ops.lijing.io.zone"; }; #配置正向解析 cd /var/named/ vim ops.lijing.io.zone $TTL 1h @ IN SOA ops.lijing.io. nsadmin.ops.ilinux.io. ( 2017052901 1H 5M 3D 2H ) @ IN NS dns1 #與上一級dns保持一致,后綴可不寫 dns1 IN A 172.16.254.21 www IN A 172.16.0.100 named-checkconf named-checkzone "ops.lijing.io" /var/named/ops.lijing.io.zone systemctl start named.service dig -t A dns1.ops.lijing.io @172.16.254.21 # dig -t NS ops.lijing.io @172.16.25254.21 # dig -t A dns1.lijing.io @172.16.254.21 #解析父域,是不會成功的,因為它會先去找根服務器,而我們是測試環境 vim /etc/named.rfc1912.zones zone "lijing.io" IN { type forward; #表示當我們解析一個域名的時候,不要去找根 forward only; #即使解析不了,也要給出答案,無論解析成功與否 #forward first #表示解析的時候先通過下面的NDS解析,解析不了再去尋找根服務器 forwarders { 172.16.254.21; 172.16.254.22; }; #通過這兩臺服務器去解析 }; named-checkconf rndc reload dig -t dns1.ilinux.io @172.16.254.21 #解析父域
全局轉發:
#無法訪問互聯網 vim /etc/named.conf options forward only; forwarders { 172.16.0.1; }; named-checkconf rndc reload dig -A www.baidu.com @172.16.253.223 +trace
安全配置
vim /etc/named.conf #在options智商放置acl acl test { 172.16.253.223; 172.16.0.100; }; option #本機的查詢操作放置在options當中,表示本機的所有的所負責域的查詢則只允許這個地址查詢 vim /etc/named.rfc1912.zones #針對某個區域進行定義 zone "lijing.io" { type... file... allow-query { test; }; #表示這個區域只允許哪些查詢 }; named-checkconf rndc reload dig -t A www.lijing.io @172.16.253.223 #測試這個能否被223解析 dig -t A www.lijing.io @172.15.0.200 2、允許從服務器做區域傳送 vim /etc/named.conf acl slavesrvs { 172.16.254.20; }; vim /var/named.rfc1912.... zone "lijing.io" { type... file... //{ test; }; alow-transfer { slaversrvs; }; #僅僅允許從服務器做區域傳送 }; named-checkconf rndc reload #傳送:在 254.20上使用 dig -t axfr lijing.io @172.16.253.223
只允許本地網絡中客戶端遞歸
vim /etc/named.conf acl localnet { 172.16.0.0/16; 172..0.0.0/8; }; options //recursion yes; allow-recursion { localnet; }; #僅允許本機所在的IP進行遞歸 named-checkconf rndc reload
禁止它人動態更新站點(區域中得任何人)
vim /etc/named.rfc1912... zone "lijing.io" IN { type master; file "lijing.io.zone"; allow-transfer { slaversrvs; }; allow-update { none; }; };
原創文章,作者:半斤八兩,如若轉載,請注明出處:http://www.www58058.com/77144
主要介紹了bind的正向解析,反向解析,主從配置,區域轉發,子域授權和安全配置等等,內容總結的井然有序,并且非常詳細,排版也很好。