天天看點

馬哥linux學習筆記:DNS相關配置

 域名系統

        (英文:Domain Name System,縮寫:DNS)是網際網路的一項服務。它作為将域名和IP位址互相映射的一個分布式資料庫,能夠使人更友善地通路網際網路。DNS使用TCP和UDP端口53。目前,對于每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。

    下邊以使用最為廣泛的BIND軟體來說明DNS在Centos7中的基本配置:

    這裡将用到三台centos7.x的虛機來配置實作DNS的正向解析,反向解析,主從配置,子域授權以及基本的安全控制配置等功能。

    用到的三台伺服器安裝完畢後都先要關閉firewalld服務和selinux功能,其IP的相關配置為:

        A:192.168.0.108    這裡我将用這台主機做為正向解析的主DNS伺服器,反向解析的從DNS伺服器

        B:192.168.0.106    做為正向解析的從DNS伺服器,反向解析的主DNS伺服器

        C:192.168.0.107    做為子域

        三台主機都通過yum安裝好BIND,開始配置:

        準備工作:三台主機的BIND安裝後都需要将主配置檔案/etc/named.conf中的option段中的預設字段做出修改:

馬哥linux學習筆記:DNS相關配置

        後邊的配置都以我剛申請的新域名mengxl.com做出說明

    配置正向解析(在192.168.0.108主機上配置):

        (1)定義區域:

                在主配置檔案中或主配置檔案輔助配置檔案中配置,這裡使用主配置檔案的包含檔案/etc/named.rfc1912.zones配置,在檔案的底部加入下面幾行:

            zone "mengxl.com" IN {

                    type master;

                    file "mengxl.com.zone";

                    allow-update { none; };

            };

        (2)建立區域資料檔案:

                在/var/named目錄下建立檔案mengxl.com.zone,檔案名要與配置檔案指定的檔案名相同,檔案内容為:

馬哥linux學習筆記:DNS相關配置

            (3)修改配置好的區域資料檔案/var/named/mengxl.com.zone的權限和數組

                chown     :named    /var/named/mengxl.com.zone

                chmod     o=    /var/named/mengxl.com.zone

馬哥linux學習筆記:DNS相關配置

            (4)檢查配置檔案及區域資料檔案的文法錯誤

                named-checkconf

                named-checkzone    mengxl.com /var/named/mengxl.com.zone

            (5)文法無誤後讓伺服器重載配置檔案和區域資料檔案

                rndc    reload或者 systemctl    reload    named

    至此,DNS服務的正向區域配置完畢,我們可以用dig工具來測試配置是否已經生效

馬哥linux學習筆記:DNS相關配置

    配置反向解析(用192.168.0.106主機配置)

        (1)定義區域

                在主配置檔案或主配置檔案的輔助配置檔案中配置,這裡在輔助檔案/etc/named.rfc1912.zones中配置,添加下面幾行:

                zone "0.168.192.in-addr.arpa" IN {

                        type master;

                        file "192.168.0.zone";

                        allow-update { none; };

                };                                                                    注意,反向區域的區域名字書寫格式;

        (2)定義區域解析庫檔案(主要記錄為PTR)

                其建立位置為/var/named/192.168.0.zone檔案,内容如下:

馬哥linux學習筆記:DNS相關配置

         一下步驟跟配置正向解析時相同了

       (3)修改配置好的區域資料檔案/var/named/192.168.0.zone的權限和數組

                chown     :named    /var/named/192.168.0.zone

                chmod     o=    /var/named/192.168.0.zone

       (4)檢查配置檔案及區域資料檔案的文法錯誤

                named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.zone

        (5)文法無誤後讓伺服器重載配置檔案和區域資料檔案

    至此,反向解析區域配置完成;

馬哥linux學習筆記:DNS相關配置

    DNS主從配置

        192.168.0.108為正向解析mengxl.com的主伺服器,192.168.0.106為其從伺服器;

        192.168.0.106為反向解析0.168.192.in-addr.arpa的主伺服器,而192.168.0.108為其從伺服器;

    注意:配置主從時, 確定區域資料檔案中為每個從服務配置NS記錄,并且在正向區域檔案需要每個從伺服器的NS記錄的主機名配置一個A記錄,且此A後面的位址為真正的從伺服器的IP位址;

        (1)首先配置正向解析的從伺服器,即在192.168.0.106上進行配置,在/etc/named.rfc1912.zones中加入下面幾行:

                    type slave;

                    file "slaves/mengxl.com.zone";

                    masters { 192.168.0.108; };

                注意,該區域檔案同步到從伺服器的/var/named/slaves目錄下,檢視該目錄權限可以看到named使用者在該目錄下有寫權限,而其他檔案的屬主為root,named使用者沒有寫權限;

馬哥linux學習筆記:DNS相關配置

        (2)檢查配置檔案文法,重載配置使修改生效;

                rndc reload或者systemctl reload named

         正向解析的從機配置完成

        (3)配置反向解析,在192.168.0.108主機上配置,在/etc/named.rfc1912.zones中加入下邊幾行:

                        type slave;

                        file "slaves/192.168.0.zone";

                        masters { 192.168.0.106; };

                };

        (2)檢查配置檔案文法,重載配置使修改生效;

         反向解析的從機配置完成

注意,做主從配置時,要確定兩台伺服器的時間必須同步。

    DNS子域授權

        這裡隻對正向解析子域授權做出簡單介紹:

       (1)首先要在父域主服務的配置檔案中添加子域的相關記錄,這裡以子域ops.mengxl.com為例,在父域主伺服器的域資料檔案/var/named/mengxl.com.zone中添加NS和其A記錄;

馬哥linux學習筆記:DNS相關配置

        (2)配置子域伺服器(192.168.0.107),配置過程與父域的正向解析配置過程相同,這裡就不做過多表述:

            這裡隻貼出子域的資料配置檔案/var/named/ops.mengxl.com.zone的内容:

馬哥linux學習筆記:DNS相關配置

    配置完子域後,我們可以發現子域可以直接解析其所負責的域名解析(如www.ops.mengxl.com),而不能直接解析父域的域名(如:www.mengxl.com)需要尋找根進行疊代查詢,這是我們所不想的,這就需要進行轉發了

        (1)區域轉發配置:僅對特定的區域進行轉發,這裡配置對子域對父域的解析請求轉發個父域主DNS進行解析

            在192.168.0.107的/etc/named.rfc1912.zones配置檔案中添加下邊一段

                    type forward;

                    forward only;

                    forwarders { 192.168.0.106; 192.168.0.108; };

            這樣,子域對父域的相關解析就會直接轉發到父域的DNS伺服器進行解析了

            注意,配置的轉發器必須允許對目前主機進行遞歸查詢

        (2)全局轉發配置,針對凡本地沒有通過zond定義的區域查詢請求,全部轉給某轉發器;

            此配置需要在/etc/named.conf中的option字段中加入下邊兩段:

                forward    {only|first};        //only表示隻是轉發給指定DNS轉發伺服器等待查詢結果;first表示首先轉發,沒響應則進行疊代查詢;

                forwarders    { SERVER_IP; };            //SERVER_IP指轉發器的IP位址;

    bind中的安全配置,按需求在每台DNS主機中進行配置

        dns配置檔案中主要依靠acl通路控制清單與通路控制指令來進行安全限制了:

            acl:就是通路控制清單,把一個或多個位址歸并為一個命名的集合,随後通過此名稱即可對此集合内的所有主機進行統一的通路控制了;

            一般在/etc/named.conf主配置檔案的options字段的外部上邊進行定義

            如:acl  mynet {

                    192.168.0.0/24;

                    127.0.0.1/8;

            在bind中内置4個acl:

                none:沒有一個主機;

                any:任意主機;

                local:本機;

                localnet:本機所在的IP所屬的網絡;

            注意,此處定義中,可以是ip位址,也可以是網段,子網路遮罩表示時隻能是/數字格式;

        dns配置檔案中的通路控制指令,主要有下邊幾個:

            allow-query    {};    允許查詢的主機,白名單;

            allow-transfer    {};    允許向哪些主機做區域傳送,預設為所有主機,應該配置為僅允許從伺服器;

            allow-recursion    {};    允許哪些主機向目前DNS伺服器發起遞歸查詢請求;預設為允許所有,請按需求進行配置

            allow-update    {};    DDNS,允許動态跟新區域資料庫檔案中的内容;沒有相關功能需求,最好都設定為allow-update { none; };

            注意,該通路控制,可以寫入區域定義中,隻對指定區域生效,也可以定義到options的字段中,對所有的區域生效;

            如:在192.168.0.108中設定,隻允許本機與從機進行正向解析的區域傳送:

                先在主配置檔案/etc/named.conf中配置acl

                    acl slaves {

                        192.168.0.106;

                        127.0.0.1;

                    };

                然後在/etc/named.rfc1912.zones中的mengxl.com的區域定義段中加入控制字段;

                   zone "mengxl.com" IN {

                        file "mengxl.com.zone";

                        allow-transfer { slaves; };

繼續閱讀