DNSセキュリティの設定実践でも役立つLPICドリル(10)(2/4 ページ)

» 2009年02月26日 00時00分 公開
[大竹龍史ナレッジデザイン]

今回のディストリビューション: CentOS 5.2

問題を解く鍵 【3】

【3】DNSサーバの最小権限での実行とルートディレクトリの変更方法

(1)非特権ユーザーでの実行

 サーバプロセスをroot権限で実行するのは危険です。侵入者が不正な手段でroot権限を獲得した場合、ファイルシステムへの無制限のアクセスが可能となってしまいます。この危険を防ぐため、サーバプロセスnamedを、-uオプションにより非特権ユーザーを実効ユーザーに指定して起動することができます。

(例)実効ユーザーを非特権ユーザーnamedに指定して、サーバプロセスnamedを起動
# name -u named
# ps -ef | grep named
UID PID PPID C STIME TTY TIME CMD
named 15453 1 0 14:47 ? 00:00:00 /usr/sbin/named -u named

(2)chroot

 namedにオプション-tでディレクトリを指定すると、プロセス起動後にシステムコールchroot()を発行して、ルートディレクトリを-tで指定したディレクトリに変更します。このため、もし侵入者が不正な手段でnamedの権限を獲得しても、アクセスはchrootしたディレクトリ内に限定されるため、被害を最小限に食い止めることができます。

 -tを使用する場合は、設定ファイルやDNSのゾーンファイルやデバイスファイルなど、起動後にアクセスするファイルはすべて、chrootしたディレクトリの下になければなりません。

 CentOS 5.2の場合は、bind-chrootパッケージをインストールすると/var/named/chrootディレクトリ以下に必要なファイルが用意され、bindパッケージに含まれている/etc/sysconfig/namedファイルに、“ROOTDIR=/var/named/chroot”の記述があるため、“/etc/init.d/named start”コマンドを実行すると、namedは、"-t /var/named/chroot”のオプションを付けて起動されます。

# cat /etc/sysconfig/named
ROOTDIR=/var/named/chroot
# /etc/init.d/named start
# ps -ef | grep named
named 18255 1 0 00:54 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot


【参考】
(1)BIND 9 Administrator Reference Manual

(2)dnssec-keygenコマンドのオンラインマニュアル(man dnssec-keygen)

(3)rndcコマンドのオンラインマニュアル(man rndc)
(注) (1)〜(3)は、CentOS 5.2では、bindパッケージに含まれています。

(4)RFC2535、RFC4034、RFC2845

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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