Home Update クッキー及びWeb ビーコンについて




BINDのインストール

ここでは、ソースパッケージからBINDをインストールしていく方法を解説します。




■BINDのダウンロード

Version bind-9.2.4rc2
Homepage http://www.isc.org/index.pl?/sw/bind/
Download http://www.isc.org/index.pl?/sw/bind/
Install bind-9.2.4rc2.tar.gz

※追記 2005/8/8:bind-9.3.1.tar.gzでも以下の説明で動作確認OK



■chroot 環境で動作させるための準備

 仮にサーバーに侵入されたとしても、被害の拡大を最小限に抑えるために、named 専用のアカウントを用意し、jail 環境で動作させる設定を行います。まず、/etc/group に重複しないグループIDでnamed というグループを作成します。

# vi /etc/group
named:x:98:



 次に、ユーザーの作成を行います。-d オプションをつけて、chroot させたいディレクトリを指定します。つまり、/var/named 以下が named の住居となり、これ以上、上位の階層へアクセスできなくなります。また、named ユーザーにシェルを提供しないよう、-s オプションを指定し、/bin/false とでもしておきます。

# useradd -g named -d /var/named -s /bin/false named

 chroot させるのに必要となるディレクトリを作成します。

# mkdir /var/named
# cd /var/named
# mkdir -p dev log etc slave var/run/named

 既に、named.conf が用意してあればそれをchroot させるディレクトリに移動させておきます。また、/etc 以下にnamed.conf がないとブートに失敗してしまうので、空(ダミー)のnamed.conf もつくっておきましょう。

# mv /etc/named.conf /var/named/etc
# chown -R named.named /var/named/
# chmod 700 /var/named/
# touch /etc/named.conf

 mknodコマンドを使用して jail の内部に必要とするデバイスファイルを作成します。ほとんどのLinux では、以下コマンドを実行しておけば問題ありません。「c」はキャラクタデバイス、「1」はメジャー番号、「3」はマイナー番号を意味します。

# cd /var/named/dev
# mknod null c 1 3
# mknod random c 1 8
# chmod 666 *

 $jail/etc下に、localtimeファイルをコピーしておきます。/etc/localtimeは、namedプロセスがローカルなタイムゾーンを取得し、正しい時刻を得るのに必要となります。

# cp /etc/localtime /chroot/named/etc/

■BIND9のインストール

$ cd /usr/local/src/
$ tar xzvf bind-9.2.4rc2
$ cd bind-9.2.4rc2
$ ./configure --with-openssl=/usr/local/ssl --enable-threads
$ make
$ make test
$ su
# make install

◎デフォルトのインストール先
■prefix /usr/local
■named.conf /etc

■named.conf [ SecondaryDNS用 ]

 インストールし終えたら、named.conf を作成します。以下の例は、筆者の環境での内向けセカンダリDNS用に記述してあります。ゾーンファイルは、$jail/slave ディレクトリに保存しておきます。


Controls {
      inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

acl localnet {
        172.16.50.0/27;
        172.16.51.0/28;
        127.0.0.1;
};

options {
        directory "/slave";
        allow-query { localnet; };
        allow-transfer { localnet; };
        version "no version";
        recursion yes;
};

zone "." {
             type hint;
             file "named.ca";
};

zone "localhost" {
             type master;
             file "localhost.zone";
};

zone "0.0.127.in-addr.arpa"{
             type master;
             file "0.0.127.in-addr.arpa.zone";
};

zone "kororo.jp" {
              type slave;
              masters {
                      172.16.50.2; 
              };
              file "in-kororo.jp.zone.bak";
              allow-update { 172.16.50.2; };
};

zone "50.16.172.in-addr.arpa" {
              type slave;
              masters {
                      172.16.50.2;
              };
              file "50.16.172.in-addr.arpa.zone.bak";
              allow-update { 172.16.50.2; };
};

zone "51.16.172.in-addr.arpa" {
              type slave;
              masters {
                      172.16.50.2;
              };
              file "51.16.172.in-addr.arpa.zone.bak";
              allow-update { 172.16.50.2; };
};

include "/etc/rndc.key";

■BINDの起動

 ブートファイルと、ゾーンデータファイルを適切な位置に配置させたら、BINDを -t オプションを付け加えて起動させてみましょう。

/usr/local/sbin/named -u named -t /var/named

◎named のオプション
-c conf ファイルの場所を指定する。デフォルトは、/etc/named.conf
-p port ポート番号を指定する
-t chrootdir chroot にするディレクトリを指定する。
-u username プロセスのユーザを指定する。

 なお、起動した際に/var/log/message を見てエラーメッセージが表示されていないかどうか確認してください。また、ps コマンドを実行し、named のプロセスがあるかどうか確認してください。以下のようなエラーメッセージが表示されていた場合は、/etc下に空の named.conf を作成してください。

loading configuration from '/etc/named.conf'
none:0: open: /etc/named.conf: file not found
loading configuration: file not found
exiting (due to fatal error)


named.conf にinclude "/etc/rndc.key"; の記述がある場合は、以下のようなエラーが表示されます。これはrndc.keyを作成していないためです。鍵の生成については後述します。

loading configuration from '/etc/named.conf'
/etc/named.conf:89: open: /etc/rndc.key: file not found
loading configuration: file not found
exiting (due to fatal error)


# ps aux | grep named
root 11541 0.0 1.0 29396 2588 ? S 02:51 0:00 /usr/local/sbin/named
root 11553 0.0 0.2 4572 664 pts/1 S 02:58 0:00 grep named


■rndc.key の作成

 それでは、rndc.keyの作成を行います。rndc-confgenオプションは以下表を参考にしてください。詳細に関しては、rndc-confgen --help を実行してください。

#/usr/local/sbin/rndc-confgen -a -b 512 -k rndckey

◎rndc-confge のオプション
-a 鍵を生成し、/etc/rndc.key に書き込む
-b bits 暗号鍵の長さをビットで指定する。指定しない場合は128bit で生成される。
-k keyname 生成されるキーファイルの名前を指定することができる

 上記コマンドを実行したら、/etc/rndc.key というファイルが作成されているはずなので、開いてみてください。赤色で表示されているのがHMAC-MD5で生成された暗号鍵です。

# vi /etc/rndc.key
key "rndckey" {
algorithm hmac-md5;
secret "Ax0uW7BHQfuufQZWOVzphIolT+FVNDFRGGwrAOxKMT/ZTd/+vfP/V97vHb0g==";
};

 上記で生成された暗号鍵をnamed.conf が読み込めるように、/etc/named.conf を開いて、以下の行を付け加えます。この行を加えることによってローカルホストがrndc に接続ができるようになります。

# vi /etc/named.conf
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
include "/etc/rndc.key";


 /etc/rndc.conf を $jail/etc ディレクトリに移動させておきます。

# mv /etc/rndc.key /var/named/etc/rndc.key
# chmod 700 /var/named/etc/rndc.key
# ls /var/named/etc/rndc.key
-rw------- 1 named named 140 Apr 26 00:51 /var/named/etc/rndc.key

 以上の作業を終えたら、rndc reload コマンドを実行します。まずは、named が起動していない状態でリロードを実行してみてください。named が起動してたら、kill してプロセスを停止させてから実行してください。named が起動していないと、rndc: connect failed: connection refused のように接続が拒否されます。

# ps aux | grep named
root 13393 0.0 0.1 3504 372 pts/1 R 04:03 0:00 grep named
# rndc reload
rndc: connect failed: connection refused

 今度はnamed を起動してからrndc reload を実行してみます。/var/log/messages を見て、以下のように表示されれば正常にリロードされたことが確認できます。

# /usr/local/sbin/named -u named -t /var/named
# rndc reload
# tail /var/log/messages

Dec 31 04:09:11 ns named[13412]: loading configuration from '/etc/named.conf'

念のため、rndc が使用する953番のポートがアクティブな状態になっているかどうかも nestat コマンドで確認してください。

# netstat -ln
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN

■BINDの自動起動設定

 BINDの自動起動スクリプトを作成します。といっても、RedHat用の自動起動スクリプトがパスを変更するだけで使えそうだったので、このファイルを環境に合わせて編集しておきます。私の環境での自動起動スクリプトは こちら を参照してください。最後に、chkconfig --add してnamed を自動起動サービスに加えておきます。

# chkconfig --add named
# chkconfig --level 35 named on







TOPに戻る

Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円〜30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Guest Book | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: