連載
» 2003年01月11日 00時00分 公開

実用 BIND 9で作るDNSサーバ(1):BIND 9の改ざんチェックとインストール (2/3)

[鶴長鎮一,@IT]

BIND 9の入手とインストール

 BIND 9は設定こそ複雑ですが、インストールは極めて簡単です。

 一昔前に、NIS環境をデフォルトで採用しているOSにBINDを組み込んでいたころを考えると、近年発表されるOSはDNSへの親和性が上がっていると同時に依存度が高くなっていることを実感します。また、ほとんどのLinuxディストリビューションはBINDのバイナリパッケージが用意されているため、ソースからインストールしなくてもrpmなどのコマンドで簡単に組み込むことが可能です。Linuxのインストール時に「デスクトップ」オプションなどが選択されている場合はインストールされませんが、「ネットワークサーバ」などのオプションをチェックしてインストールした場合はすでに組み込まれているでしょう。新規にインストールする前に確認してみましょう。

$ rpm -q bind
bind-9.2.1-1
BIND-9.2.1がインストールされている場合

 パッケージを新規にインストールする際は、インストールCDのファイルを使用する前に、ディストリビュータが最新のBIND 9パッケージ()を用意していないか確認しましょう。

注:Red Hat Linux 8、Turbolinux 8 WorkstationはともにBIND 9.2.1が使用可能です。そのほかのバージョンやディストリビューションについては、配布元のサイトで確認してください。

ソースコードの入手

 古いバージョンのディストリビューションを使用している場合や、BIND 9のパッケージをディストリビュータが提供していない場合は、下記の手順でソースからインストールします()。

注:古いBINDがインストールされている場合は、あらかじめ「rpm -e パッケージ名」などとしてアンインストールしておきます。その際、BIND本体だけでなくcaching-nameserverなど関連パッケージも削除します。

 BINDは現在、ISC(Internet Software Consortium)社にメンテナンスされており、最新版は同社のWebサイト(http://www.isc.org/)などで公開されています。ここでは、2002年12月現在の最新版であるBIND 9.2.1を前提に話を進めます。

 まず、BIND 9.2.1を

ftp://ftp.isc.org/isc/bind9/9.2.1/bind-9.2.1.tar.gz

から入手します。

ソースコードの正当性確認

 最近、配布元のファイルが改ざんされるといったことが報告されています。必須の作業ではありませんが、ダウンロードしたファイルの正当性を確認する手順も併せて紹介しましょう。

 正当性を確認するには、PGPユーティリティのインストールとBIND 9.2.1のPGP Signatureファイル、ISCの公開鍵が必要です。

 ここでは、PGPユーティリティにGnuPG(http://www.gnupg.org/)を用います。GnuPGはPGP(http://www.pgpi.org/)と同じ機能を提供しながら、PGPが抱えていたライセンス問題や商業利用における煩わしさなどを解消しており、現在も活発に開発が続けられています。GnuPGがインストールされていない場合や最新のパッケージを使用する際は、後述の「Appendix:GnuPGのインストール」を参照してください。

 用意ができたらgpgコマンドを使って公開鍵を組み込み、PGP Signatureを利用してbind-9.2.1.tar.gzファイルの正当性を検証してみましょう。

$ gpg --import isckey.txt
gpg: 鍵51BAB2ED: 公開鍵「Internet Software Consortium <pgpkey@isc.org>」を読み込みました
gpg:          処理数の合計: 1
gpg:                読込み: 1  (RSA: 1)

 公開鍵が正常に登録されているかどうかを確認し、同時にidを調べておきます。

$ gpg --list-keys
/home/ホームディレクトリ/.gnupg/pubring.gpg
----------------------------------------
pub  1024D/2DA5F931 2002-12-18 ユーザーフルネーム <XXX@example.jp>
sub  2048g/9C602AD0 2002-12-18

pub  1024R/51BAB2ED 1997-01-29 Internet Software Consortium <pgpkey@isc.org>
ピンク色がidになります

 次に、自分の秘密鍵で相手の公開鍵を署名します。署名にはLocalなものとExportableなものがありますが、大抵は責任の範囲が自身で完結するLocal署名を選択します。先ほどのidを引数に、「gpg --lsign-key」を実行します。

$ gpg --lsign-key 51BAB2ED
gpg: 信用データベースの検証
gpg: 深さ0で検証、署名済み=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
pub  1024R/51BAB2ED  作成: 1997-01-29 期限: never      trust: -/-
(1). Internet Software Consortium <pgpkey@isc.org>


pub  1024R/51BAB2ED  作成: 1997-01-29 期限: never      trust: -/-
 主鍵の指紋: 8F 10 6A 5E 72 25 3D DD  CE 66 E5 13 E6 8D 99 B7

     Internet Software Consortium <pgpkey@isc.org>

署名しようとしている鍵が実際に上記の名前の人のものかどうか、どの程度
注意して検証しましたか? 答が分からなければ、「0」を入力してください。

   (0) 答えません。 (default)
   (1) 全然、確認していません。
   (2) 一応、確認しました。
   (3) かなり注意して確認しました。

どれにしますか? 0
本当にこの鍵にあなたの鍵で署名してよいですか: "ユーザーフルネーム <XXXX@example.jp>"

署名は、書出し不可に設定されます。

本当に署名しますか? y

次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります: ""ユーザーフルネーム <XXXX@example.jp>"

パスフレーズを入力: ←GnuPGインストール時の秘密鍵と公開鍵を生成した際に使用したパスフレーズを入力

1024ビットDSA鍵, ID 2DA5F931作成日付は2002-12-18

 ここまで終了したら、bind-9.2.1.tar.gz.ascファイルを使ってbind-9.2.1.tar.gzファイルの正当性を検証します。

$ gpg --verify bind-9.2.1.tar.gz.asc bind-9.2.1.tar.gz
gpg: Wed 01 May 2002 10:37:46 PM JST のRSA鍵ID 51BAB2EDによる署名
gpg: 正しい署名: "Internet Software Consortium <pgpkey@isc.org>"
注:bind-9.2.1.tar.gzがbind-9.2.1.tar.gz.ascと同じカレントディレクトリにあれば、bind-9.2.1.tar.gzは省略可能。

 以上でソースファイルの正当性が確認できます()。

注:正しくGnuPGをインストールし、公開鍵も組み込んでいるにもかかわらず正当性が確認できない場合は、ISCに連絡しなくてはいけません。その際は、複数の環境で同じ状況が発生することを確認しておきましょう。

 では、BIND 9のインストールを続けます。

# tar xvfz bind-9.2.1.tar.gz
# cd bind-9.2.1/
# ./configure
# make
# make install

 以上の作業で、/usr/local下にBIND本体とユーティリティがインストールされます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。