ブログ ランキング
インターネットサーバー設定・運用
HOME  | MYBlog  | MAIL 

bindインストール手順

プライマリのDNSサーバの構築のメモ

ネットワーク構成

キャッシュサーバ兼、内向きのプライマリサーバとして設定します

 
ゾーン example.co.jp
LANのIP 192.168.1.0/24
スレーブDNSサーバ 192.168.1.101

必要なソフト

 
bind-9.3.2.tar.gz http://www.isc.org から最新版をダウンロードします。
openssl DNSSEC(鍵付きのゾーン転送)機能を使う場合に必要
ダウンロードサイト http://www.openssl.org

インストール手順

■sourceの展開

% gzip -dc bind-9.3.2.tar.gz | tar xvf -     適当なディレクトリで展開
% cd bind-9.3.2

■configureの実行

% ./configure --prefix=/usr/local/bind-9.3.2 --sysconfdir=/etc \
   --localstatedir=/var
configureオプション
オプション 説明
--prefix 指定しないと/usr/local/sbinや/usr/local/binにインストールされる
ここでは既存のBindへの上書きをせず別ディレクトリ(/usr/local/bind-9.3.2)を指定
--sysconfdir named.confやrndc.confの場所を指定する。
デフォルトは${PREFIX}/etc
--localstatedir ゾーンファイルの場所を指定する。
デフォルトは${PREFIX}/var
--with-openssl opensslの場所を指定する。

■makeの実行

% make 2>&1 | tee make.log
% su
# make install 2>&1 | tee make_install.log

■ユーザ/グループの作成

bind8以降ではrootでのデーモン起動はセキュリティ上、好ましくないのでbind専用のユーザ/グループで起動することを推奨しています。
namedを低い権限で起動することで、もし権限が奪取されても被害がシステムに及ぶのを防ぎます。
ここではユーザ/グループ "named"を作成し、シェルは割り当てずに/bin/false を指定します。

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

ホームディレクトリ(/var/named)を作成し、オーナーを変更

# chown named:named /var/named/

■ シンボリックリンクの作成

必須ではないですがインストール先のディレクトリ(/usr/local/bind-9.3.2)から/usr/local/bindへのシンボリックリンクを張ります。

# ln -s /usr/local/bind-9.3.2 /usr/local/bind

BIND の設定

ゾーンファイルの作成

■ localhostの正引き(localhost.zone)

; localhost.
$TTL 3600
@ in soa localhost. postmaster.localhost. (
2006100101	;serial
3600		;refresh
1800		;retry
604800		;expiration
3600 )		;minimum
;
		in	ns	localhost.
localhost	in	a	127.0.0.1

■ localhostの逆引き(localhost.rev)

; 0.0.127.in-addr.arpa
$TTL 3600
@ in soa localhost. postmaster.localhost. (
2006093001	;serial
3600		;refresh
1800		;retry
604800		;expiration
3600 )		;minimum

	in	ns	localhost.
1	in	ptr	localhost.

■ example.co.jpの正引き(example.zone)

; example.co.jp.
$TTL 3600
@ in soa tpad.example.co.jp. postmaster.example.co.jp. (
2006093001	;serial
3600		;refresh
1800		;retry
604800		;expiration
3600 )		;minimum
;
	in	ns	tpad.example.co.jp.
;
tpad	in	a	192.168.1.101
example.co.jp. in mx 10 tpad.example.co.jp.

■ example.co.jpの逆引き(example.rev)

; 1.168.192.in-addr.arpa
$TTL		3600
@ in soa tpad.example.co.jp. postmaster.example.co.jp. (
2006093001	;serial
3600		;refresh
1800		;retry
604800		;expiration
3600 )		;minimum
;
	in	ns	tpad.example.co.jp.
;
101	in	ptr	tpad.example.co.jp.

■ ルートキャッシュファイル

ftp://rs.internic.net/domain/ から最新のnamed.rootをダウンロード

rndc 関連の設定

以下のコマンドで/etc/rndc.key が生成されます。

# /usr/local/bind/sbin/rndc-confgen -a

■生成されたrndc.key

   key "rndc-key" {
   algorithm hmac-md5;
   secret "BBfcugsHpbwZ2V/X+QZ94w==";
   };

rndc.keyは、rndcがnamedに接続する際に必要な秘密鍵が含まれます。

named.conf にcontrolsステートメントを記述します。
"key-name"は任意の名称ですが、上記で作成したrndc.key のkeyステートメント内の名称と合わせる必要があります。 (デフォルトでは「rndc-key」です)

controls {
      inet 127.0.0.1 port 953
              allow { 127.0.0.1; } keys { "key-name"; };
};

named.confの作成

■ /etc/named.conf

acl local { 
192.168.1.0/24;
127.0.0.1;
};

controls {
      inet 127.0.0.1 port 953
              allow { 127.0.0.1; } keys { "rndc-key"; };
};

options {
directory "/var/named";
recursion yes;
pid-file "/var/named/named.pid";
/* query-source address * port 53;*/
allow-transfer { local; };
allow-query { local; };
allow-recursion { local; };
};

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

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

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

zone "example.co.jp" {
 type master;
file "example.zone";
};

zone "1.168.192.in-addr.arpa" {
type master;
file "example.rev";
};

起動と動作確認

namedの起動

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

ログにエラーが出力されてないことを確認

# tail /var/adm/messages

動作確認

ゾーン登録したエントリーが引けることをdigコマンドで確認

# dig @127.0.0.1 tpad.example.co.jp
; <<>> DiG 9.3.2-P1 <<>> @127.0.0.1 tpad.example.co.jp
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55491
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;tpad.example.co.jp.            IN      A

;; ANSWER SECTION:
tpad.example.co.jp.     3600    IN      A       192.168.1.101

;; AUTHORITY SECTION:
example.co.jp.          3600    IN      NS      tpad.example.co.jp.

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct  8 21:32:09 2006
;; MSG SIZE  rcvd: 66

以下、rndcコマンドの確認です。

# /usr/local/bind/sbin/rndc status
number of zones: 4
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running

起動スクリプト修正

OS起動時にnamedが起動するように/etc/rc2.d/S72inetsvcを修正します。

変更前)
  if [ -f /etc/named.conf ] && [ -f /usr/sbin/in.named ]; then
        echo 'starting internet domain name server.'
        /usr/sbin/in.named &
        
変更後)
  if [ -f /etc/named.conf ] && [ -f /usr/local/bind/sbin/named ]; then
        echo 'starting internet domain name server.'
        /usr/local/bind/sbin/named &
        
1/2
次ページ