DNS(Domain Name System,域名系統)安全
在互聯網上實現FQDN與IP地址的解析,這樣避免了人們在訪問站點時,記憶長串難懂的ip地址,只須要記憶人們容易理解的域名就好了。服務器
FQDN (Fully Qualified Domain Name,徹底合格域名)負載均衡
FQDN------------------IP Address 正向解析ssh
IP Address------------FQND 反向解析tcp
簡述工做原理:ide
咱們你們都知道,全球一共有13臺根節點服務器,當咱們的DNS服務器收到一個解析請求時,會觸發一箇中斷從用戶模式轉變到內核模式把報文接進來,當把第四層封裝解開時,就知道用戶訪問的是53號端口,內核會把數據交給工做在用戶空間的這個進程,而後named服務會查詢本身的解析庫,若是是本服務器負責解析的域,就直接返回權威答案,若是不是,將會找根節點服務器,通過一輪迭代後,把查詢到的結果給客戶端。spa
DNS服務程序:3d
用的最多的就是bind,在安裝好後主配置文件在/etc/named.conf,服務進程名named。日誌
啓動服務後,會向內核註冊使用一個ip與端口的套接字,監聽在本機tcp53端口,和udp53端口。server
下面讓咱們來用bind實現DNS解析吧:
實驗規劃:
解析域:tuchao.com
主DNS服務器:dns.tuchao.com 192.168.1.200
從DNS服務器:ns2.tuchao.com 192.168.1.254
host:
www.tuchao.com 192.168.1.100
www.tuchao.com 192.168.1.101
mail.tuchao.com 192.168.1.106
ftp.tuchao.com 192.168.1.120
pop.tuchao.com 192.168.1.110
ssh.tuchao.com CNAME pop
功能:實現正反向主從DNS解析,從服務器能自動從主服務器同步區域數據,而且設定權限,主服務器只容許從服務器獲取區域數據,從服務器不容許任何主機獲取區域數據,保證安全性。
一、安裝bind程序軟件:
# yum install bind -y
二、修改主配置文件/etc/named.conf
用雙斜線註釋掉下面三行而後保存
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
allow-query { localhost; };
三、編輯包含的區域文件/etc/named.rfc1912.zones,增長一個tuchao.com區域。
zone "tuchao.com" IN {
type master;
file "tuchao.com.zone";
};
而後去/var/named/目錄建立tuchao.com.zone這個區域文件。
每一個區域文件的第一條記錄必須是SOA記錄,定義主dns服務器,以及相關信息。
這裏兩個IP地址指向一個主機名,是爲了實現負載均衡,交替解析。
CNAME是別名。
配置完成後保存退出,檢查下有沒有語法錯誤,看到OK就表明沒有。
# named-checkconf
# named-checkzone "tuchao.com" /var/named/tuchao.com.zone
服務成功啓動,而且已經偵聽在tcp和udp的53端口上了。
配置resolv.conf文件把DNS設爲本身——nameserver 127.0.0.1
看下能不能正常解析。
# dig -t NS tuchao.com
# dig -t A www.tuchao.com
再試試能不能解析外網的域名,看來是能夠正常解析的,由於不是本dns負責的區域,他會去找根。
# dig -t NS baidu.com
接下來設置反向區域,實現反向解析。
編輯/etc/named.rfc1912.zones,增長一個1.168.192.in-addr.arpa區域。
建立1.168.192.zone反向區域文件,咱們能夠拷貝正向區域文件來修改。
# cp tuchao.com.zone 1.168.192.zone
# chown :named /var/named/* ------------將文件的屬組改成named
保存後,重啓named服務器,嘗試反向解析。
# dig -x 192.168.1.106
反向解析也成功了,如今配置從服務器。
編輯/var/named/tuchao.com.zone區域文件,添加一條NS記錄,以及對應的A記錄
反向的也是如此
如今去配置從服務器的/etc/named.rfc1912.zones文件
而後啓動從服務器上的named服務器,再到主服務器上重讀配置文件,主服務器的區域文件就會自動同步到從服務器上。
咱們查看下從服務器的日誌,是否是已經傳送完成了?
咱們再去slaves目錄看下,有沒有同步過來的區域文件。
# cd /var/named/slaves/
# ls
已經有了吧,看下內容?
正向區域
反向區域
和主DNS服務器同樣的吧,試下能不能解析。
解析正常吧。
若是要限制區域傳送使用:allow-transfer { }
這樣主服務器,只容許從服務器傳送區域數據
從服務器設置不容許任何人傳送區域數據:
這樣,咱們的實驗算是圓滿完成了。
有問題歡迎與我交流QQ:1183710107