今回は,LIDSの設定作業の全体像を把握するために,設定関連の基礎知識と,Apache HTTP Server(以下,Apache)を動作させるときの簡単な設定手順を紹介する。

 ここではSSHとsyslogdの設定を済ませてから,言い換えれば安全に設定作業が行えるようにしてから,Apacheを設定する。アクセス・コントロール・リスト(以下,ACL)の作成は著者が用意したスクリプト(次回に解説予定)を用いて行う。

 説明に入るまえに,LIDSの最新情報を紹介する。前回で紹介した以降に,新しいバージョンのLIDS(Linuxカーネルのバージョン2.6.7に対応したlids-2.2.0rc2-2.6.7.tar.gz)が公開された。従来版との修正点は,従来版ではLIDS Free Session(以下LFS,連載第3回参照)を無効にした際にはステートを変更できなかったが,新版では「Allow switch the Linux Free Session」オプションを設けることにより可能にした点である。

/etc/lidsディレクトリ内の設定ファイルに基づいてアクセスを制御

 最初にLIDSの設定ファイルを紹介する。LIDSの動作を設定するファイルはすべて,/etc/lidsディレクトリに格納されている。LIDSは,Linuxカーネルの起動時に,/etc/lidsディレクトリに格納されている「lids.boot.acl」「lids.postboot.acl」「lids.shutdown.acl」ファイルを主メモリー上に展開する。そして,これらのファイル内に記述されたACLに沿って,プロセスやファイルの読み書きを制御する。

 /etc/lidsディレクトリには,表1に示したファイルがある。これらのファイルのうち,手作業で直接編集するものは,lids.iniファイルだけである。これ以外のファイルはlidsconfコマンドを用いて変更する。

表1●/etc/lidsディレクトリ内のファイル一覧

lids.ini ACL_DISCOVERY機能の設定(ON/OFF)
lids.pw LFS用のパスワード・ファイル(HASH)
lids.cap 全ステート共通のケーパビリティ・バウンディング・セット
lids.conf 全ステート共通のファイルやプロセスに対するACLファイル
lids.boot.cap BOOTステートのケーパビリティ・バウンディング・セット
lids.boot.conf BOOTステートのファイルやプロセスに対するACLファイル
lids.boot.acl lids.boot.cap,lids.boot.conf,lids.cap,lids.confから生成された,BOOTステート時に使用するACL
lids.postboot.cap POSTBOOTステートのケーパビリティ・バウンディング・セット
lids.postboot.conf POSTBOOTステートのファイルやプロセスに対するACLファイル
lids.postboot.acl lids.postboot.cap,lids.postboot.conf,lids.cap,lids.confから生成された,POSTBOOTステート時に使用するACL
lids.shutdown.cap SHUTDOWNステートのケーパビリティ・バウンディング・セット
lids.shutdown.conf SHUTDOWNステートのファイルやプロセスに対するACLファイル
lids.boot.acl lids.shutdown.cap,lids.shutdown.conf,lids.cap,lids.confから生成された,SHUTDOWNステート時に使用するACL

LIDSを設定・管理するためのコマンド

 lidstoolsには,LIDSを設定するための2種類のコマンドが含まれる。一つが前述のlidsconfコマンド,もう一つがlidsadmコマンドである。

(1)lidsconfコマンド
 ACLを設定するためのコマンドである。このコマンドを用いて,ファイルやプロセスのACLを設定したり,ACLの情報を確認したりできる。

(2)lidsadm
  LIDSを管理するためのコマンドである。このコマンドを用いて,LIDSシステムの状態を確認したり,カーネルを封印(以下LFS,連載第3回参照)したりできる。

ACLを設定する前の準備

 それでは,LIDSをインストールしたシステムを起動して設定作業の準備に取り掛かろう。まずは,デバッグ・モードでシステムが起動していることを確認する。

 前回の最後に,/etc/lids/lids.iniファイルの内容を「ACL_DISCOVERY=1」に変更してから,その設定を反映させた。これにより,システムがデバッグ・モードで動作しているはずだ。システムの起動時に「ACL_DISCOVERY」という警告が表示される場合には,デバッグ・モードになっている。

 デバッグ・モードになっていなかったり,システムの起動に失敗したりした場合は,再度/etc/lids/lids.iniファイル内で「ACL_DISCOVERY=1」と記述されていることを確認する。それから

# lidsconf -U
# lidsconf -U BOOT
# lidsconf -U POSTBOOT
# lidsconf -U SHUTDOWN
# lidsconf -C

を実行して設定をシステムに反映させた後,システムを再起動する。

 次に,システムにローカルからrootユーザーでログインした後,

# lidsadm -S -- -LIDS

を実行して,LFSを開く。このときパスワードを聞かれるので,lidstoolsをインストールするときに設定したパスワードを入力する。

 次に,今回の設定に必要なACLを生成するスクリプトをまとめて圧縮したファイル「lids.conf.tar.gz」を用意したので,ここからダウンロードする。適当なディレクトリで(例では/tmp)

# tar -xvzf lids.conf.tar.gz
# cd /tmp/root
# ./install.sh

を実行して,スクリプトをシステムに導入する。

 install.shスクリプトが終了したら,システムを再起動する。この時点では,LIDSはデバッグ・モードで動作しているため,システム起動時にエラー・メッセージは多数表示されるものの,システムはきちんと起動しており問題ない。

SSH用のACLを導入する

 続いてLIDSを導入したシステムに,SSHを用いてリモートからログインできるようにするACLを導入してみよう。/tmp/rootディレクトリに,「lids.ssh.sh」というスクリプトがある。これを使ってSSHを利用するためのACLを設定する。

 システムにローカルからrootでログインした後

# lidsadm -S -- -LIDS

を実行して,LFSを開いた後,

# cd /tmp/root
# ./lids.ssh.sh

を実行する。すると,Fedora Core 2でSSHを使うためのACLファイルが設定される。これで作成されるのは,lids.postboot.confファイルである。続いて以下のコマンドを実行して,confファイル(confという拡張子を持つファイル群)から,aclファイル(aclという拡張子を持つファイル群)を生成する(この作業を,コンパイルと呼ぶ)。

# ./lidsconf -C

 新たに作成したlids.postboot.aclファイルの内容をシステムに反映するには,

# lidsadm -S -- +SHUTDOWN

を実行してからシステムを再起動するか,あるいは

# lidsadm -S -- +RELOAD_CONF

を実行する。最後に

# lidsadm -S -- +LIDS

としてLFSを閉じれば,SSH用のACLの設定は終了である。

syslogd用のACLを導入する

 次に,LIDSを導入したシステムで,syslogdをより強固に保護するためのACLを設定する。“強固に保護する”というのは,システムの動作中にはsyslogdを停止できないようにすることを指す。これにより,システム動作中には必ずログを残すことができる。

 /tmp/rootディレクトリには,lids.syslogd.shというスクリプトがある。システムにローカルからrootでログインしてから

# lidsadm -S -- -LIDS

を実行してLFSを開いた後,

# cd /tmp/root
# ./lids.syslogd.sh

を実行して,syslogdを動作させるためのACLファイルを作成する。続いて

# ./lidsconf -C
# lidsadm -S -- +RELOAD_CONF

を実行して設定をシステムに反映させる。これで設定は済んだのでsyslogdを以下の手順で再起動する。まず,

# /etc/init.d/syslog stop

を実行してsyslogdを停止してから

# lidsadm -S -- +LIDS

を実行してLFSを閉じる。最後に

# /etc/init.d/syslog start

を実行してLIDSで保護されたsyslogdを起動すればよい。

Apacheをシステムにインストールする

 いよいよApache本体の設定作業を行おう。Apacheをまだ導入していない場合は,Fedora Core 2 のインストールCDの1枚目をマウントしてから

# cd /mnt/cdrom/Fedora/RPMS/
# rpm -ivh apr-0.9.4-11.i386.rpm apr-util-0.9.4-14.i386.rpm httpd-2.0.49-4.i386.rpm

を実行して,Apacheをインストールする。

Apache用のACLを導入する

 /tmp/rootディレクトリに,lids.apache.shというスクリプトがある。これまでと同じようにシステムにローカルからrootでログインした後

# lidsadm -S -- -LIDS
# cd /tmp/root
# ./lids.apache.sh

を実行して,Fedora Core 2のApacheに対応したACLファイルを作成する。続いて,以下のようにして,ACLファイルをコンパイルする。

# ./lids.update.sh
# lidsconf -C

を実行する。

 Apacheの場合は,SSHやsyslogdとは異なり,POSTBOOT用ACLに加えてBOOT用ACLも生成される。そのため,システムを再起動して設定を反映させる必要がある。そのため,

# lidsadm -S -- +LIDS

を実行してLFSを閉じてから,

# lidsadm -S -- +SHUTDOWN

を実行してシステムを再起動する。

 以上で,LIDSを導入したシステムでのApacheの設定は終了である。ここで使用したコマンドやスクリプトの内容については,次回(7月20日公開予定)に説明する。


著者紹介
面 和毅(おも かずき)氏
学生時代よりUNIXに親しむ。1997年からサーバー構築およびセキュリティ全般を扱う仕事に従事,Linuxを使い始める。現在はLIDSの普及活動に注力。SELinuxコミュニティ内でのLIDS支部の立ち上げや,LIDS関連文書の日本語化,LIDSを用いたシステム構築の紹介などを行っている。