DNS&BIND——DNS的ACL和視圖

bind中的基礎安全相關配置數據庫

  • (一)ACL定義:把一個或多個主機歸併爲一個集合,並經過一個統一的名稱調用vim

    acl acl_name{
    ip;
    ip;
    net/prelen;
    } ;
  • 實例:

    acl mynet{機
    172.25.0.0/46;
    };
  • bind 由四個內置的acl
    none:    沒有一個主機
    any:     任意主機
    local:   本機
    localnet:本機的IP同掩碼運算後獲得的網絡地址


        注意:    acl,先定義後使用,通常定義在配置文件中的option前面安全

     

訪問控制的指令:

allow-query {};                  #容許查詢的主機 (白名單)
allow-transfer {};               #容許區域傳送的主機 (白名單)
allow-recursion {};              #容許遞歸的主機(一般全局option)
allow-upadte {};                 #容許更新區域數據庫中內容


(二)視圖( view)服務器


    1. 一旦啓用view,全部zone都只能定義在view中網絡

    2. 僅有必要在匹配到容許遞歸請求(本地dns)的客戶端所在view中定義根區域ide

    3. 客戶端請求到達時,是自上而下匹配每一個view所服務的客戶端列表spa

    4. 一個bind服務器能夠定義多個view,每一個view中可定義一個或多個zonecode

    5. 每一個view用來匹配一組客戶端請求orm

    6. 多個view可能對同一個區域進行解析,但使用不一樣的區域解析文件server

    7. 實例        

    8. view VIEW_NAME {
         match-clients { };          #指定不一樣主機(客戶端),看到不一樣視圖           match-destinations { };     #指定不一樣IP,看到不一樣視圖
         match-recursive-only { };   #用來針對遞歸和非遞歸,查詢不一樣的視圖
      };

    9. 注意




下面咱們來看一組ACL和view結合使用的實例~~

定義個人acl

[root@server named]# vim /etc/named.conf
acl mynet{
        172.25.254.11;
        172.25.254.10;
        127.0.0.0/8;
};

注意:    acl要定義在bind以外,由於沒法在視圖中使用acl

定義視圖

[root@server named]# vim /etc/named.rfc1912.zones
view internal {
        match-clients { mynet; };   #匹配的客戶端列表
        allow-recursion { mynet; }; #容許遞歸的列表

zone "." IN {
        type hint;
        file "named.ca";
};

zone "lalala.com" IN {
        type master;
        file "lalala.com.zone";
        allow-update { none; };
        also-notify {172.25.254.10;};
    };
};


在acl中的主機,就能夠成功解析  ^-^

[root@server named]# dig -t A www.lalala.com @172.25.254.11

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t A www.lalala.com @172.25.254.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65311
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.lalala.com.            IN    A

;; ANSWER SECTION:
www.lalala.com.        86400    IN    A    172.25.254.11

不在acl中主機就不能訪問  =-=

[root@foundation88 ~]# ip addr show br0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 34:17:eb:76:53:97 brd ff:ff:ff:ff:ff:ff
    inet 172.25.254.88/24 brd 172.25.254.255 scope global br0
[root@foundation88 ~]# dig -t A www.lalala.com @172.25.254.11

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.lalala.com @172.25.254.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 49304
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.lalala.com.            IN    A




不一樣客戶端解析同一個域名結果不同

[root@server named]# vim /etc/named.rfc1912.zones 
....
view external {
        match-clients {any;};  
        #由於view按照視圖定義順序匹配主機,因此這裏的any爲剩下的主機
        zone "lala la.com" IN {
                type master;
                file "lalala.com.external";
                allow-update {none;};
        };
};

[root@server named]# vim lalala.com.external 
$TTL 1D
@       IN SOA   ns1.lalala.com. admin.lalala.com (
                                        2016060905; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns1.lalala.com.
        NS      ns2.lalala.com.
        MX  10  mx1.lalala.com.
        MX  20  mx2.lalala.com.
ns1     A       172.25.254.11
ns2     A       172.25.254.18
www    A       2.2.2.2
*      A       2.2.2.2



使用同一個DNS服務器,acl列表中解析的是172.25.254.11  ^-^

[root@server named]# dig -t A www.lalala.com @172.25.254.11

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t A www.lalala.com @172.25.254.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10150
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.lalala.com.            IN    A

;; ANSWER SECTION:
www.lalala.com.        86400    IN    A    172.25.254.11



使用同一個DNS服務器,其餘主機解析的是2.2.2.2   ^-^

[root@foundation88 ~]# dig -t A www.lalala.com @172.25.254.11

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.lalala.com @172.25.254.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51279
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.lalala.com.            IN    A

;; ANSWER SECTION:
www.lalala.com.        86400    IN    A    2.2.2.2
相關文章
相關標籤/搜索