BIND 9.Xのインストールと設定

はじめに

DNSサーバは、ISC BINDを使用して設定します。通常ISCを省略して「BIND」と呼ばれます。BINDに関する 情報、BINDのソースファイルなどは以下のようなサイトにより入手することが出来ます。


このドキュメントを作成したときにBINDのバージョンは9.3.1です。以下のサイトより新しいバージョン を確認してください。

必要なファイル

  1. bind-9.3.1.tar.gz - http://www.isc.org/

インストール

  1. 最初に作業すること 上記のサイトよりソースファイルを手に入れる
    $ wget ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz
  2. BIND本体を解凍する。
    $tar -zxvf bind-9.3.1.tar.gz
  3. ビルド ここから展開したソースディレクトリに移動してconfigureを実行します。
    $ ./configure --prefix=/usr/local --sysconfdir=/etc --local-statedir=/var
    これ終わったらビルド実行する
    $ make
    $ su (rootになってください)
    $ make install
    ここでは、DNSサーバは/usr/local/sbin/namedへ、DNSサーバの設定ファイルは/etc/named.confに、 pidファイルは/var/run/named.pidへ設定するように指定しています。BINDはシステムにあらかじめ インストールされている場合は多いため、それと区別するために、/usr/local/sbinにインストール を行うことにしました。
    ゾーンファイルを置くためのディレクトリ/var/namedを作成しておきます。
    $ mkdir /var/named
    リモート管理行うための鍵を作成します。dnssec-keygenを利用して作成します。
    $ cd /var/named
    $ /usr/local/sbin/dnssec-keygen -a hmac-md5 -r /dev/urandom -b 512 -n HOST bind
    これでBINDのインストールは完了です。

設定

  1. BINDの設定ファイル
    BINDの設定ファイルは2種類あります。ひとつはnamed.confと呼ばれるDNSサーバの動作を制御する設定 ファイルです。もうひとつがゾーンファイルと呼ばれるレコード(ドメイン名とIPアドレスを対応させる データ)のファイルです。
    named.confの例は以下のようです。この例はキャッシュサーバとして動作させる設定例です。 キャッシュサーバとして動作させるには、BINDの設定ファイルnamed.confとルートネームサーバ のIPアドレスを記述したroot.cacheです。また、リモート管理するためのrndc.keyも作成しておきます。
    まず、設定ファイルnamed.confを作成します。
    #
    # named.conf : NameServer COnfiguration file
    # 
    key "rndc-key" {
      algorith hmac-md5;
      secret "hhgdfsdsakfhksafdf0359870275fa08696ga096g78ga76g876ag0a6dg6a9g76a0s6gas9876ga";
    };
    
    options {
      directory "/var/named";
    };
    
    zone "." {
      type hint;
      file "root.cache";
    };

    keyセクションのsecret部分には、公開鍵(*.keyファイル)の"bind.IN KEY 512 3157"よりあとの部分 を記述します。
    ファイル/etc/rndc.key
    key "rndc-key" {
      algorithm hmac-md5;
      secret "hhgdfsdsakfhksafdf0359870275fa08696ga096g78ga76g876ag0a6dg6a9g76a0s6gas9876ga";
    };

    secretの部分には、秘密鍵(*.privateファイル)の"Key:"より後の部分をコピーして貼り付けて起きます。

  2. root.cacheの作成
    ルートネームサーバのIPアドレスファイルを作成します。
    $ cd /var/named
    $ /usr/local/bin/dig @a.root-servers.net ns > root.cache

  3. BINDの起動
    $ /usr/local/sbin/named

    psコマンドで確かめてください。

設定ファイルの例


  1. プライマリネームサーバの設定 named.confのサンプル
    #
    # named.conf : NameServer COnfiguration file
    #
    key "rndc-key" {
      algorith hmac-md5;
      secret "hhgdfsdsakfhksafdf0359870275fa08696ga096g78ga76g876ag0a6dg6a9g76a0s6gas9876ga";
    };
    	
    # ローカルネットワークの設定(192.168.1.x, 127.0.0.1, 172.26.3.118)
    acl local {
      192.168.1.0/24;
      127.0.0.1;
      172.26.3.118;
    };
    
    options {
      directory "/var/named"l
      pid-file "/var/named/run/named.pid";
      allow-query { any; };
      allow-transfer { local; };
    };
    
    view local {
      match-clients { local; };
      allow-query { local; };
      allpw^transfer { local; };
      recursion yes;
    
      zone "." {
        type hint;
        file "local/root.cache";
      };
      
      zone "1.168.192.in-addr.arpa" {
        type master;
        file "192.168.1.rev";
        };
        
      zone "0.0.127.in-addr.arpa" {
        type master;
        file "local/127.0.0.1.rev";
      };
      
      zone "arclocal.com" {
        type master;
        file "arclocal.com.zone";
      };
    };
    
    view external {
      match-clients { any; };
      allow-query { any; };
      allow-transfer { none; };
      recursion no;
      
      zone "arcexternal.com" {
        type master;
        file "arcexternal.com.zone";
      };
     };

  2. ゾーンファイルの例
    $TTL 86400
    $ORIGIN xxxx.com.
    ;-----------------------------------------------------------------------
    ; .xxxx.COM zone  /var/named/xxxx.trefft
    ;-----------------------------------------------------------------------
    
    @       604800  IN SOA  ns1.domainname.com. root.ns1.domainname.com. (
                                 2003122506      ; serial
                                 86400           ; refresh every 1 day
                                 3600            ; retry every hour
                                 86400           ; expire in 30 days
                                 86400 )         ; default TTL of 1 day
    
    ;-----------------------------------------------------------------------
    ; name server for the domain
    ;-----------------------------------------------------------------------
    
                                   IN      NS      ns1.domainname.com.
                                   IN      NS      ns2.domainname.com.
    
    ;-----------------------------------------------------------------------
    ; hosts in the domain
    ;-----------------------------------------------------------------------
    
    @                              IN      A       xxx.xxx.xxx.xxx
    www                            IN      A       xxx.xxx.xxx.xxx
    mail                           IN      A       xxx.xxx.xxx.xxx
    ftp                            IN      A       xxx.xxx.xxx.xxx
    michel                         IN      CNAME   outside.aaa.org.
    
    ;-----------------------------------------------------------------------
    ; .xxxx.com. default MX
    ;-----------------------------------------------------------------------
    
    @                              IN      MX      10      mail
    mail                           IN      MX      10      mail
    
    ;-----------------------------------------------------------------------

  3. 逆引きゾーンファイルの例
    ;
    ;; Domain for reverse in DION gateway.
    ;; The IP addresses xxx.xxx.xxx.xxx/255.255.255.248
    ;
    $TTL 86400
    @       IN      SOA     rev-dnspri.akmalida.com. admin.akmalida.com. (
                                   2004120108      ; serial number
                                   10800           ; refresh
                                   3600            ; retry
                                   604800          ; expire
                                   86400           ; ttl
                                   )
    ;
            IN      NS      rev-dnspri.akmalida.com.
            IN      NS      rev-dnssec.akmalida.com.
            IN      NS      rev-dnsbkp.akmalida.com.
    ;
    xxx     IN      PTR     abc.akmalida.com.
    xxx     IN      PTR     def.akmalida.com.
    xxx     IN      PTR     ghi.akmalida.com.
    xxx     IN      PTR     jkl.akmalida.com.
    ;

  4. セカンダリネームサーバの設定(named.conf)
    プライマリサーバのoptionsの中に、セカンダリサーバのIPアドレスを記述しなければならない
    allow-transfer { xxx.xxx.xxx.xxx; xxx.xxx.xxx.xxx; };

    でセカンダリー/スレーブサーバには各ゾーンおよび逆引きゾーンを記述します。
    zone "dynamrc.org" {
      type slave;
      file "dynmarc.org.bkp.zone";
      masters { xxx.xxx.xxx.xxx; };
    };

終わりに


BINDを起動するには、あらかじめ専用のユーザで起動したほうがセキュリティ的に安全なのです。 まずBINDユーザを作成する

$ /usr/sbin/groupadd -g 53 bind
$ /usr/sbin/useradd -u 53 -g bind -d /var/named -M -c "DNS pseudo user" -s /sbin/nologin bind
$ chown bind:bind /var/named
$ ln -s /var/named/run/named.pid /var/run/named.pid


これで動作確認してみるとよい。

$ /usr/local/sbin/named -u bind


これでbindというユーザでデーモンを起動します。
またnslookupの利用方法ですが

$ nslookup target-host dns-server


$ nslookup www.akmalida.com dns-pri.akmalida.com


でチェックできます。またタイプ指定も可能です。

$ nslookup -type=mx domainr.com dns1.dion.ne.jp


以上。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Tue, 29 Mar 2005 16:56:10 JST (6973d)