1. 程式人生 > >【Linux】CentOS 6.5 搭建DNS(含偽根目錄)的構建方法

【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; };      #監聽本地IP53

        //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

https://images2015.cnblogs.com/blog/638293/201702/638293-20170203170514136-1140300828.png

許可權問題,檢視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系統)

注意:

  1. DNS伺服器在搭建完畢後要看防火牆是否關閉,selinux是否禁用

檢視防火牆狀態命令:service iptables status

檢視selinux狀態命令: getenforce

2DNS伺服器在設定完畢後手工修改網絡卡配置檔案的DNS1地址為本機地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

3、修改vi /etc/hosts,第一行127.0.0.1 後面的內容修改為123.com(根據自己的域名)