1. 首先安裝必要套件
# apt install bind9 bind9-doc dnsutils
安裝的設定主要都在 /etc/bind 目錄
named.conf.local 裡面可以設定正反解的zone,如果不想改,也可以新增自己喜歡的檔案,但要記得在named.conf裡面include他
named.conf.options 主要在設定dns的一些選項和安全性。
其他的檔案就是預設的一些localhost的正反解相關,這裡我們不用理他沒關係。
2. 設定named.conf.options,比較重要的是關閉recursion。參考底下的設定
引用:
options {
directory "/var/cache/bind/zones";
managed-keys-directory "/var/cache/bind/";
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
//listen-on-v6 { any; };
forwarders {
168.95.1.1;
168.95.192.1;
};
listen-on port 53 { any; };
allow-query { any; };
allow-query-cache { none; };
//recursion no;
allow-recursion { 127.0.0.1/32; 111.222.111.222/32; };
};
recursion no和allow-recursion只能指定一個,要嘛全關(開),要嘛就只有特定IP才開。這裡我選擇指定IP。
3. 接著設定zone,一個domain還包含正解和反解,所以會有兩個以上的zone。可以把zone的設定寫在named.conf.local底下。
4. 設定檔有個重要的資訊...就是 managed-keys-directory 要設定正確的路徑,如下:
引用:
managed-keys-directory "/var/cache/bind/";
要不然每次啟動都會看到這個Error , 雖然不影響運作,但就是有點煩人~
引用:
/etc/bind/managed-keys.bind.jnl: create: permission denied
managed-keys-zone: sync_keyzone:dns_journal_open -> unexpected error
managed-keys-zone: unable to synchronize managed keys: unexpected error
5. 還有directory 最好放在 /var/cache/bind/zones 底下...要不然會觸發 apparmor 的權限錯誤~
引用:
Mar 17 16:13:48 gdns kernel: [ 1970.721144] audit: type=1400 audit(1489738428.368:38): apparmor="DENIED" operation="mknod" profile="/usr/sbin/named" name="/etc/bind/zones/tmp-UTrm8bqOLc" pid=2093 comm="named" requested_mask="c" denied_mask="c" fsuid=113 ouid=113
6. 接著重新啟動一下:service bind9 restart
這樣就啟動我們的dns服務了,如果是slave的話也就自動向master抓好資料了。
7. /var/log/named/ 底下的 log 預設是不會 logrotate ...所以你可以自己建一個檔
# vi /etc/logrotate.d/named
引用:
/var/log/named/dns-query.log {
daily
rotate 7
missingok
notifempty
postrotate
/etc/init.d/bind9 reload > /dev/null
endscript
}
然後測試一下
#
logrotate /etc/logrotate.d/named -f就會順利生成檔案囉~