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

#contents

***''はじめに''

DNSサーバは、ISC BINDを使用して設定します。通常ISCを省略して「BIND」と呼ばれます。BINDに関する
情報、BINDのソースファイルなどは以下のようなサイトにより入手することが出来ます。
~~
このドキュメントを作成したときにBINDのバージョンは9.3.1です。以下のサイトより新しいバージョン
を確認してください。

***''必要なファイル''

+[[bind-9.3.1.tar.gz>ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz]] - http://www.isc.org/

***''インストール''

+最初に作業すること
上記のサイトよりソースファイルを手に入れる
 $ wget ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz
+BIND本体を解凍する。
 $tar -zxvf bind-9.3.1.tar.gz
+ビルド
ここから展開したソースディレクトリに移動して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のインストールは完了です。

***''設定''

+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:"より後の部分をコピーして貼り付けて起きます。
~
~
+root.cacheの作成
~
ルートネームサーバのIPアドレスファイルを作成します。
~
 $ cd /var/named
 $ /usr/local/bin/dig @a.root-servers.net ns > root.cache
~
+BINDの起動
~
 $ /usr/local/sbin/named
~
psコマンドで確かめてください。

***''設定ファイルの例''
~
+プライマリネームサーバの設定
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";
   };
  };
~
+ゾーンファイルの例
~
 $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
 
 ;-----------------------------------------------------------------------
~
+逆引きゾーンファイルの例
~
 ;
 ;; 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.
 ;
~
+セカンダリネームサーバの設定(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