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)服務器
一旦啓用view,全部zone都只能定義在view中網絡
僅有必要在匹配到容許遞歸請求(本地dns)的客戶端所在view中定義根區域ide
客戶端請求到達時,是自上而下匹配每一個view所服務的客戶端列表spa
一個bind服務器能夠定義多個view,每一個view中可定義一個或多個zonecode
每一個view用來匹配一組客戶端請求orm
多個view可能對同一個區域進行解析,但使用不一樣的區域解析文件server
實例
view VIEW_NAME {
match-clients { }; #指定不一樣主機(客戶端),看到不一樣視圖 match-destinations { }; #指定不一樣IP,看到不一樣視圖
match-recursive-only { }; #用來針對遞歸和非遞歸,查詢不一樣的視圖
};
注意
下面咱們來看一組ACL和view結合使用的實例~~
[root@server named]# vim /etc/named.conf
acl mynet{
172.25.254.11;
172.25.254.10;
127.0.0.0/8;
};
[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;};
};
};
[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
[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