BIND 是 Berkeley Internet Name Domain 的縮寫,為目前被廣泛使用的 Domain Name System(DNS)。 目前已經發展到版本 9,即 Bind9,解決了一些先前版本的問題。
安裝

$ sudo aptitude install bind9

設定

有關整個 DNS 的架構與設定方法參考 StudyArea;範例網域為 x9.idv.tw,dns 主機 ip 220.132.142.52,主機名稱 dnsvr。另外考量到安全性因素,建議讓 bind 執行於 chroot 環境,以保護系統免被入侵。

在一般 Linux distro. 上面 bind 主要設定檔為 /etc/bind/named.conf,但 Debian 上略有不同;Debian 上面主要設定檔為 /etc/bind/named.conf.local。除了設定檔的檔名不同外其餘設定皆大同小異。

首先看看 /etc/bind/named.conf.local 的內容:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "x9.idv.tw" in {
    type    master;
    file    "/etc/bind/db.x9.idv.tw";
};

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

上面第一個 zone 定義了 x9.idv.tw 這個網域的正解部份,並設定類型為 master,設定檔為 /etc/bind/db.x9.idv.tw;142.132.220.in-addr.arpa 的部份則是反解的部份且設定檔為 /etc/bind/db.220.132.142。

接著來看看正解設定檔 db.x9.idv.tw 的內容:

$TTL 86400
$ORIGIN x9.idv.tw.
@            IN    SOA    x9.idv.tw. root.x9.idv.tw. (
                20070927 ; Serial
                      604800 ; Refresh
                   86400 ; Retry
                 2419200 ; Expire
                 86400 ) ; Negative Cache TTL

; 主要 NS、MX 與主要主機
@            IN    NS    x9.idv.tw.
@            IN    A    220.132.142.52
@            IN    MX 10    x9.idv.tw.
dnsvr            IN    A    220.132.142.52
dnsvr            IN    MX 20    x9.idv.tw.

; 別名紀錄,直接指向主機 dnsvr
www            IN     CNAME     dnsvr
ftp            IN    CNAME    dnsvr
mail            IN    CNAME    dnsvr

正解設定檔內除了設定兩筆 mailserver MX 紀錄外,另外還設定了 www、ftp、mail 三個 CNAME 指向 x9.idv.tw;特別注意到上面 “x9.idv.tw.”,最後的 ”.” 意思為代表這是 FQDN。

最後來看反解設定檔 db.220.132.142:

$TTL    86400
@    IN    SOA    x9.idv.tw. root.x9.idv.tw. (
                20070926 ; Serial
              604800 ; Refresh
               86400 ; Retry
                 2419200 ; Expire
                    86400 ) ; Negative Cache TTL
;
@    IN    NS    x9.idv.tw.
52    IN    PTR    x9.idv.tw.
52    IN    PTR    dnsvr.x9.idv.tw.
52    IN    PTR    www.x9.idv.tw.
52    IN    PTR    mail.x9.idv.tw.
52    IN    PTR    ftp.x9.idv.tw.

完成網域的正反解設定後,最後修改幾個 bind9 的執行相關參數設定檔:

/etc/default/bind9:

OPTIONS="-u bind"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

/etc/bind/named.conf.options:

forwarders {
        168.95.1.1;
        168.95.192.1;
};

auth-nxdomain yes;      # conform to RFC1035 default is no. edit by neio
listen-on-v6 { none; }; # listen ipv6 default is any

/etc/resolv.conf:

nameserver 168.95.192.1
nameserver 168.95.1.1
search neio.idv.tw

接著重新啟動 bind9 後,一個簡易的小型 DNS 伺服器便已架設完畢。
Chrooting Bind9

倘若 bind9 架設完畢且一切都測試無誤後,以下的設定可以把 bind9 運行於 chroot 模式。

建立 bind9 的 chroot 執行目錄與設定相關權限:

停止 bind9

$ sudo /etc/init.d/bind9 stop

建立 chroot 環境中必要的目錄

$ sudo mkdir -p /var/lib/bind9/etc
$ sudo mkdir -p /var/lib/bind9/dev
$ sudo mkdir -p /var/lib/bind9/var/cache/bind
$ sudo mkdir -p /var/lib/bind9/var/run/bind/run

搬移原 bind9 設定檔與建立鏈結

$ sudo mv /etc/bind /var/lib/bind9/etc/bind
$ sudo ln -s /var/lib/bind9/etc/bind /etc/bind

建立執行所需裝置檔

$ sudo mknod /var/lib/bind9/dev/null c 1 3
$ sudo mknod /var/lib/bind9/dev/random c 1 8

設定相關權限

$ sudo chmod 666 /var/lib/bind9/dev/null /var/lib/bind9/dev/random
$ sudo chown -R bind:bind /var/lib/bind9/var/*
$ sudo chown -R bind:bind /var/lib/bind9/etc/bind

修改 bind9 設定檔,指定啟動方式

$ sudo vim /etc/default/bind9

修改 OPTIONS 選項如下

OPTIONS="-u bind -t /var/lib/bind9"

重新啟動 bind9

$ sudo /etc/init.d/bind9 start

neio 發表在 痞客邦 留言(0) 人氣()