4.2 サーバーサービスのセキュア化
前のページへ
次のページへ

4.2.2 BINDのインストールと設定

ネットワークでWebやメールのようなサービスを円滑に利用するためには、マシン名とIPアドレスの名前解決を行う必要がある。この名前解決のサービスを提供するのがDNS(Domain Name System)で、DNSが稼動するサーバーをDNSサーバーという。

1) 運用方針

本モデルのDNSサーバーの運用方針は、以下のとおりである。

ア) DNSサーバーの設置場所

本モデルでは、外部DNSサーバーと内部DNSサーバーを設置する。外部DNSサーバーは所属するドメイン以外(インターネット)からの名前問い合わせに応答する。内部DNSサーバーは内部ネットワーク用に独自のゾーン情報を保持し、内部ネットワークのホストからの名前問い合わせに応答する。また、それぞれのDNSサーバーのネットワーク上の設置場所はFig. 4.1に示すとおりである。

Fig. 4.1 外部DNSサーバーと内部DNSサーバー

イ) 不必要なゾーン情報の公開防止

DNSサーバーは、所属するドメインの情報を保持し、ホストからの名前解決の問い合わせ(クエリ)に応答する。ドメインの情報にはIPアドレスとホスト名の対応情報等が含まれており、これをドメインのゾーン情報という。ゾーン情報は外部に対して公開しなければならない情報のみを登録し、公開の必要のない情報が取得されるのを防止する。

ウ) 再帰問い合わせ

DNSサーバーには再帰問い合わせという機能があり、再帰問い合わせが可能な場合、DNSサーバーは他のドメインから受け取ったDNSの応答内容をキャッシュとして一時的に保存し、外部DNSへのクエリの回数を減らすことができる。しかし、攻撃者が不正な応答内容を送り込み、それをキャッシュ内に保存してしまった場合、キャッシュがクリアされるまで、間違った名前解決が行われ、攻撃者のホストを信頼するホストとしてしまうなどの危険性がある。本モデルでは、再帰問い合わせを外部DNSでは禁止し、内部DNSでは許可する。

エ) バージョン情報の応答禁止

BINDでは、設定によってBINDのバージョン情報の問い合わせ応答内容を変更することができる。BINDのバージョン情報を公開すると、攻撃の足がかりを与えてしまう可能性があるため、バージョン情報の問い合わせには「unknown」と応答するように設定する。

オ) ゾーン転送

DNSサーバーはネットワークにおいて非常に重要であることから、複数台設置し冗長性を持たせることが一般的である。その場合、ゾーン情報のメンテナンスはマスターサーバーである1台目のサーバーで行い、2台目以降をスレーブサーバーとして、マスターサーバーからゾーン情報を自動で複製するように設定する。これをゾーン転送と呼び、マスターサーバー側で指定したスレーブサーバーにのみ許可するように設定する。

カ) DNSのランレベル

DNSサーバーは、Webやメールといったサービスが正しく機能するために欠かすことができないため、本モデルでは、OSのランレベルに関係なく起動するように起動設定を行う。

上記の運用方針にしたがい、本モデルでは、以下の設定を行う。

2) BINDのインストール

本モデルでは、DNSサーバーとしてISC(Internet Software Consortium)によって提供されているBINDをインストールする。BINDは以下のサイトから入手可能である。本モデルでは、BINDのバージョン9.1.2を用いて解説を行う。

  BIND入手先:
   http://www.isc.org/products/BIND/

以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う。なお、インストール作業はroot権限で行う必要がある。

---アーカイブの展開---
% gzip -cd bind-9.1.2.tar.gz | tar -xvf -
---コンパイル---
% cd bind-9.1.2/
% ./configure
% make
% make test
---インストール---
% su
# make install

BINDを実行するユーザ/グループを追加する(注1)

---BIND用のグループbind(gid:10000)を作成(注2)---
# groupadd -g 10000 bind
---BIND用のアカウントbind(uid:10000)を作成(注2)---
# useradd -u 10000 -g bind -d /var/named -s /bin/true -c bind bind


  (注1) BINDは専用のアカウントとグループを作成してその権限で起動する。これはBINDを利用した不正アクセスが行われた場合に、被害を最小限にするためである。  
  (注2) gidとuidは任意であるので、システムによって変更可能である。  

3) BINDの設定

BINDの起動設定とゾーンの設定を行う。本モデルでは「1)運用方針」にしたがってア)からウ)の設定を行う。

ア) BINDの起動設定

システム起動時にBINDが自動的に起動されるように設定する。/etc/init.dディレクトリ配下に起動スクリプト「S89named」を作成する。スクリプトの内容は以下のとおり。

#!/sbin/sh
case "$1" in
  'start')
    if [ -f /usr/local/sbin/named -c /var/named/named.conf -u bind ]; then
    echo 'starting internet domain name server.(ISC BIND)'
    /usr/local/sbin/named -c /var/named/named.conf -u bind
  fi
  ;;

  'stop')
    /usr/bin/pkill -x -u bind named
  ;;

  *)
    echo "Usage: $0 { start | stop }"
    exit 1
  ;;
esac
exit 0

スクリプトファイル作成後、実行権限を与えるため、以下のコマンドを実行する。

# chmod 744 S89named

イ) DNSサーバーの設定1:named.conf

DNSサーバーを稼動させるために必要な設定ファイルは2種類あり、その1つが設定ファイル「named.conf」である。設定ファイルの具体的な記述方法はBINDに付属するドキュメントを参照することとし、ここでは、本モデルの運用方針にしたがい、以下の4つの設定を行う。

ウ) DNSサーバーの設定2:ゾーンファイル

DNSサーバーを稼動させるために設定が必要なファイル2種類のうち、もう1つはゾーン情報を記述したゾーンファイルである。ゾーンファイルはTable 4.11に示す5種類が必要となる。

Table 4.11 ゾーンファイル

ゾーンファイルの種類 解説
ドメインの正引き用ゾーンファイル ドメインのホスト名からIPアドレスを調べるときに使われる
ドメインの逆引き用ゾーンファイル ドメインのIPアドレスからホスト名を調べるときに使われる
localhostの正引き用ゾーンファイル localhostをループバックアドレスに対応させる
localhostの逆引き用ゾーンファイル ループバックアドレスをlocalhostに対応させる
ルートキャッシュファイル ルートドメインを管理するネームサーバのアドレスが記載されたファイル

5種類のゾーンファイルのうち「ルートキャッシュファイル」は下記サイトから最新のルートキャッシュファイルを入手する。

  ルートキャッシュファイル入手先:
   ftp://rs.internic.net/domain/named.root

ゾーンファイルで設定可能なレコードの種類に関しては、Table 4.12を参照する。また、ゾーンファイルの1行目に「$TTL <時間>」を記述でき、キャッシュ時間を設定することが可能である。

Table 4.12 ゾーンファイルのレコード

レコードの種類 解説
SOA Start Of Authorityレコード、DNSサーバーの管理情報などを指定
NS Name Serverレコード、ゾーンファイルを管理するDNSサーバーを指定
MX Mail eXchangeレコード、SMTPサーバーを指定
A Addressレコード、ホスト名に対応するIPアドレスを指定
CNAME Canonical NAMEレコード、ホストの別名を指定
PTR PoinTeRレコード、IPアドレスに対応するホスト名を指定

設定ファイルの具体的な記述方法はBINDに付属するドキュメントを参照するものとし、ここでは本モデルの運用方針にしたがった設定に必要な内容を説明する。

前のページへ
目次へ
次のページへ
OpenSSHのインストールと設定
第4章の目次
ntpdのインストールと設定


Copyright ©   2002 Information-technology Promotion Agency, Japan.  All rights  reserved.