2015年11月21日

dns server

安裝
sudo apt-get install bind9 bind9-doc 

開機時啟動
sudo chkconfig named on     

主要設定檔案
    /etc/bind/named.conf.option
    /etc/bind/named.conf
    /etc/bind/named.conf.local

vim /etc/bind/named.conf.local
加入
正解區

zone "xxxx.ntpc.edu.tw" in {
    type master;
    file "/etc/bind/db.xxxx.ntpc.edu.tw";
};

反解區:

zone "xx.20.163.in-addr.arpa" in {
    type master;
    file "/etc/bind/db.xx.20.163";
};

ipv6反解區(2001:288:2201::611):
zone "1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa" {
     type master;
     file "/etc/bind/20012882201611.rev";
};



公文管理
zone "tpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
};

zone "ntpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
};

如果有安全性需求可以限制查詢網段(勿照抄!)
allow-recursion { 127.0.0.1/32; 163.20.0.0/16;2001:288:2200::/39; };
在這裡可以查到學校的ipv6網段
http://enctc.ntpc.edu.tw/files/11-1000-158.php

 範例如下
zone "ntpc.gov.tw" in {
        type forward;
        forwarders {
                203.72.153.153;
                203.73.153.154;
                172.18.1.1;
                203.72.103.5;
        };
        allow-recursion { 127.0.0.1/32; 163.20.0.0/16;2001:288:2200::/39; };
};


我們加入了正反解區,就要有相關檔案,
vim /etc/bind/db.xxxx.ntpc.edu.tw
$TTL    604800
@       IN SOA  ns.xxxx.ntpc.edu.tw. admin.xxxx.ntpc.edu.tw. (
                2013080901      ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                604800 )        ; Minimum

@       IN NS   ns.xxxx.ntpc.edu.tw.
@       IN A    163.20.xx.1

ns      IN A    163.20.xx.1
www     IN A    163.20.xx.3
ftp   IN A    163.20.xx.5
ns      IN     AAAA      2001:288:2263:1

vim /etc/bind/db.xx.20.163

$TTL    604800
@       IN SOA  ns.xxxx.ntpc.edu.tw. admin.xxxx.ntpc.edu.tw. (
                20070926        ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                86400 )         ; Minimum

@       IN NS   dns.xxxx.ntpc.edu.tw.

1      IN PTR  dns.xxxx.ntpc.edu.tw.
3      IN PTR  www.xxxx.ntpc.edu.tw.
5      IN PTR  ftps.xxxx.ncku.edu.tw.

vim /etc/bind/20012882201611.rev

$ORIGIN 1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa.
@ IN SOA ns.xxxx.ntpc.edu.tw. admin.ns.xxxx.ntpc.edu.tw. (
                        20070926        ; Serial Number
                604800          ; Refresh
                86400           ; Retry
                2419200         ; Expire
                86400 )         ; Minimum
)

@                    IN    NS     ns.xxxx.ntpc.edu.tw.
1.1.1.6.1.0.2.2.8.8.2.1.0.0.2.ip6.arpa.    IN    PTR    ns.xxxx.ntpc.edu.tw.


    MNAME 為 primary DNS server,輸入主要的 DNS 的 FQDN!
    RNAME 為系統聯絡人的 E-mail,記得要把 @ 符號取代為 .,還有因為位址是 FQDN,所以也別忘了最後面的 .。
    SERIAL 為 DNS record 的流水號,每次更新後記得也要更新這個編號,而且要遞增!這樣一來,其他 DNS server 才知道 DSN record 有更新。
    REFRESH 為次要 DNS server 的更新時間,表示次要 DNS server 需要多久來跟主要 DNS server 同步資料。
    RETRY 為次要 DNS server 若是更新失敗要重試之前所需要等待的時間。
    EXPIRE 為次要 DNS server 的 DNS record 過期時間,也就是如果次要 DNS server 一直無法向主要 DNS server 進行資料更新的話,一旦過了這個時間後,次要 DNS server 將不會再進行解析 DSN record。
    MINIMUM 為 DNS record 的最小生存時間。當某個紀錄被查詢到後,DNS server 會將它給暫存起來,而在這個時間內的查詢都將直接利用該暫存的答案進行答覆。過了這個時間後,如果新的查詢才會進行解析。


重啟dns
sudo  service bind9 restart

nds log在 /var/log/syslog

測試指令 nslookup host whois dig


dns的安全性設定


1.顯隱藏版本
在named.conf中加入一行
version "BIND";

2.只有內部機器可以查詢
  allow-query { 163.20.0.0/16; 10.0.0.0/8; 203.72.0.0/16; };
 
3. 限制所有查詢要求 allow-recursion
  allow-recursion { 127.0.0.1/32; 10.0.0.0/8; 163.20.0.0/16; };


張貼留言