|
4.2 サーバーサービスのセキュア化
|
||
| 前のページへ | ||
ネットワークでWebやメールのようなサービスを円滑に利用するためには、マシン名とIPアドレスの名前解決を行う必要がある。この名前解決のサービスを提供するのがDNS(Domain Name System)で、DNSが稼動するサーバーを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サーバーは、Webやメールといったサービスが正しく機能するために欠かすことができないため、本モデルでは、OSのランレベルに関係なく起動するように起動設定を行う。
上記の運用方針にしたがい、本モデルでは、以下の設定を行う。
本モデルでは、DNSサーバーとしてISC(Internet Software Consortium)によって提供されているBINDをインストールする。BINDは以下のサイトから入手可能である。本モデルでは、BINDのバージョン9.1.2を用いて解説を行う。
BIND入手先:
http://www.isc.org/products/BIND/
以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う。なお、インストール作業はroot権限で行う必要がある。
|
---アーカイブの展開--- |
BINDを実行するユーザ/グループを追加する(注1) 。
|
---BIND用のグループbind(gid:10000)を作成(注2)--- |
| (注1) | BINDは専用のアカウントとグループを作成してその権限で起動する。これはBINDを利用した不正アクセスが行われた場合に、被害を最小限にするためである。 | ||
| (注2) | gidとuidは任意であるので、システムによって変更可能である。 |
BINDの起動設定とゾーンの設定を行う。本モデルでは「1)運用方針」にしたがってア)からウ)の設定を行う。
システム起動時にBINDが自動的に起動されるように設定する。/etc/init.dディレクトリ配下に起動スクリプト「S89named」を作成する。スクリプトの内容は以下のとおり。
|
#!/sbin/sh 'stop') *) |
スクリプトファイル作成後、実行権限を与えるため、以下のコマンドを実行する。
|
# chmod 744 S89named |
DNSサーバーを稼動させるために必要な設定ファイルは2種類あり、その1つが設定ファイル「named.conf」である。設定ファイルの具体的な記述方法はBINDに付属するドキュメントを参照することとし、ここでは、本モデルの運用方針にしたがい、以下の4つの設定を行う。
BINDでは、問い合わせに応答するホストを限定するように設定することができる。この設定は「named.conf」のOptionステートメントで記述する。記述方法は以下のとおりである。
| ;;問い合わせに答えるホスト、ネットワークの指定 match-clients { ホストのIPアドレス、もしくはネットワークアドレス; }; |
本モデルの運用方針にしたがった場合、以下のようになるので、それぞれを「named.conf」のOptionステートメントに記述する。
|
---外部DNS--- ---内部DNS--- |
再帰問い合わせの許可、不許可の設定は「named.conf」のOptionステートメントで記述する。記述方法は以下のとおりである。
| ;;再帰問い合わせを設定 recursion yesかnoと記述する; |
本モデルの運用方針にしたがった場合、以下のようになるので、それぞれを「named.conf」のOptionステートメントに記述する。
|
---外部DNS--- ---内部DNS--- |
BINDのバージョン情報の問い合わせに応答する内容を変更するには「named.conf」のOptionステートメントで記述する。記述方法は以下のとおりである。
| ;;バージョン問い合わせに応答する内容 version "応答する内容を記述する" |
本モデルの運用方針にしたがった場合、以下のようになるので、「named.conf」のOptionステートメントに記述する。
|
---外部DNS、内部DNS共に--- |
ゾーン転送を許可するスレーブサーバーを指定するには「named.conf」に記述する各ゾーン情報ごとに記述する。記述方法は以下のとおりである。
| ;;ゾーン転送を許可する allow-transfer { スレーブサーバーのIPアドレス; }; |
本モデルでは、スレーブサーバーを構築しないので、この設定は行わない。
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に付属するドキュメントを参照するものとし、ここでは本モデルの運用方針にしたがった設定に必要な内容を説明する。
外部DNSサーバーでは、インターネットに公開するために必要な情報のみゾーンファイルに記述する。その内容はネットワーク構成によって異なるが、本モデルではDNSサーバー(IPアドレス:YYY.YYY.YYY.YYY)、メールサーバー(IPアドレス:YYY.YYY.YYY.XXX)、Webサーバー(IPアドレス:YYY.YYY.YYY.ZZZ)を外部DNSのゾーン情報に登録する。本モデルでの外部DNSのゾーンファイルの内容は以下に示すとおりである。
内部DNSサーバーでは、内部のネットワークを運用する上で必要なホスト情報を内部のゾーンファイルに加える。本モデルではDNSサーバー(IPアドレス:192.168.0.1)、host1(IPアドレス:192.168.0.10)、host2(IPアドレス:192.168.0.20)を内部DNSのゾーン情報に登録する。本モデルでの内部DNSのゾーンファイルの内容は以下に示すとおりである。
| OpenSSHのインストールと設定 |
第4章の目次
|
ntpdのインストールと設定
|
Copyright © 2002 Information-technology Promotion Agency, Japan. All rights reserved.