【Linux】CentOS 6.5 搭建DNS(含偽根目錄)的構建方法
一、DNS 介紹
DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互對映的一個分散式資料庫,DNS協議執行在UDP協議之上,使用埠號53(Domain), 953(mdc)。這兩個埠號。在RFC文件中RFC 2181對DNS有規範說明,RFC 2136對DNS的動態更新進行說明,RFC 2308對DNS查詢的反向快取進行說明。
二、安裝
[[email protected] ~]# yum install -y bind bind-chroot bind-utils
或者
[[email protected] ~]# yum install -y bind*
DNS的主程式 bind,還有一個是bind-utils。為了DNS安全考慮,引入了bind-chroot.
chroot是通過將相關檔案封裝到一個偽根目錄內,已達到安全防護的目的,一旦該程式被攻破,將只能訪問到偽根目錄內的內容,而並不是真實的根目錄。安裝了chroot這個服務,DNS服務的配置檔案都會被安裝到我們的偽根裡面,會在裡面生成一個與原來服務完全相同的一個目錄體系結構。該服務的根目錄就會把 /var/named/chroot 當成是自己的根目錄,這樣就可以對我們的真實根目錄進行保護,所以建議大家在安裝網路服務時最好都附帶安裝上chroot這個程式。
三、配置
BIND 的一些服務文件位置和模板:
/usr/share/doc/bind-9.8.2/sample
BIND的主配置檔案通常是儲存在兩個位置:
/etc/named.conf -BIND服務主配置檔案
/var/named/ -域的zone配置檔案
安裝了bind-chroot這個程式以後,BIND的主配置檔案存放位置就變了,此時BIND的主配置檔案會被封裝到一個偽根目錄內,此時的配置檔案位置為:
/var/named/chroot/etc/named.conf -BIND服務主配置檔案
/var/named/chroot/var/named -域的zone配置檔案
複製模板命令
[[email protected] ~]# cp /etc/named.conf /etc/named.rfc1912.zones /var/named/chroot/etc/
[[email protected] ~]# cp -rv /usr/share/doc/bind-9.8.2/sample/var/* /var/named/chroot/var/
四、修改配置:
1、修改named.conf檔案中的域名引數
[[email protected] etc]# vi /var/named/chroot/etc/named.conf
options {
listen-on port 53 { 192.168.1.200; }; #監聽本地IP的53埠
//listen-on-v6 port 53 { ::1; }; #取消IPv6的監聽,可以不註釋
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #接受任何人的DNS解析請求
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
2、修改named.rfc1912.zones
[[email protected] etc]# vi /var/named/chroot/etc/named.rfc1912.zones
文件最下方新增:
zone "123.com" { // 域名正向解析配置
type master; // 指定我們要配置的是域主DNS伺服器
file "123.com.zone"; // 指定域名的zone檔案為123.com.zone
allow-update { none; }; // 不允許動態更新
}; // ;號一定要加上,否則會報錯
zone "2.168.192.in-addr.arpa" { //域名反向解析配置,格式一為 xx.xx.xx.in-addr.arpa
type master;
file "192.168.2.zone";
allow-update { none; };
};
五、建立正向解析檔案123.com.zone
[[email protected] etc]# cd /var/named/chroot/var/named
[[email protected] etc]# cp named.localhost 123.com.zone
[[email protected] etc]# vi 123.com.zone
$TTL 1D
@ IN SOA @ 123.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
IN MX 10 mail.123.com.
www IN A 192.168.2.10
注意:MX 新增一條郵件記錄,郵件記錄後面要跟域名,它會遞迴的解析這個域名,所以該域名的資源記錄一定要有,後面的 “.” 一定要寫上
六、建立反向解析檔案192.168.2.zone
[[email protected] etc]# cp named.localhost 192.168.2.zone
[[email protected] etc]# vi 192.168.2.zone
$TTL 1D
@ IN SOA @ 123.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
10 IN PTR www.123.com.
七、重啟DNS服務並測試問題
[[email protected] etc]# service named restart
若DNS啟動報告錯誤(如下),則檢視日誌
Stopping named: [ OK ] Starting named: [FAILED]
[[email protected] etc]# tail -f /var/log/messages
許可權問題,檢視named.conf 和named.rfc1912.zones 發現 其他使用者 沒有 r 許可權.
新增許可權
[[email protected] etc]# chmod o+r /var/named/chroot/etc/named.rfc1912.zones
[[email protected] etc]# chmod o+r /var/named/chroot/etc/named.conf
重啟DNS即可(建議reboot系統)
注意:
- DNS伺服器在搭建完畢後要看防火牆是否關閉,selinux是否禁用
檢視防火牆狀態命令:service iptables status
檢視selinux狀態命令: getenforce
2、DNS伺服器在設定完畢後手工修改網絡卡配置檔案的DNS1地址為本機地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
3、修改vi /etc/hosts,第一行127.0.0.1 後面的內容修改為123.com(根據自己的域名)