Sun ONE Identity Server 配備ガイド |
付録 F
chroot 環境のインストールこの付録では、chroot 環境で SunTM ONE Identity Server をインストールおよび実行する方法について説明します。この付録は、次の節で構成されています。
概要Chroot は、UNIX の change root 関数に由来します。Identity Server を chroot 環境にインストールすると、指定されたディレクトリがルートディレクトリになります。新規 chroot ディレクトリが、Identity Server のあらゆる検索で使用されるパスの基点になります。chroot は、悪質なプログラムが実際のルートファイルシステムにアクセスすることを防ぐことで、Identity Server を稼働させる Web Server や Directory Server プロセスへのセキュリティを確保する付加的な手段を提供します。
chroot を作成する前にchroot 作成処理を開始する前に、以下の点に留意してください。
chroot 環境の作成要求に対応して動作する Identity Server プロセスは、chroot ディレクトリの外部にあるファイルを検出およびアクセスすることはできません。このため、適切な Identity Server ファイルを chroot ディレクトリ構造内にコピーする必要があります。最初に実行する手順は、Identity Server の user root 環境の作成です。この新規 root には、Identity Server が本来のルート (/) に対して期待するすべてのものを含める必要があります。
- Identity Server のホストとなるコンピュータシステムに、次のシステムディレクトリを作成します。
/dev
/etc
/sbin
/usr
/var
/proc
/opt
/etc/lib
/usr/platform
/usr/bin
/usr/sbin
/usr/lib
/usr/openwin/lib
/var/opt
/var/tmp
/usr/share
/usr/share/lib
- ln -s コマンドを使用して、システムソフトリンクを作成します。
作成する必要のあるソフトリンクは、次のとおりです。
- mknod コマンドを使用して、$CHROOT 内にデバイスを作成します。
$CHROOT ディレクトリ内に作成する必要のあるデバイスは、以下のとおりです。
- ディレクトリ /etc から、$CHROOT ディレクトリ内の対応する場所にファイルをコピーします (たとえば、/etc/hosts を $CHROOT/etc/hosts にコピーします)。
コピーする必要のあるファイルは、次のとおりです。
- バイナリを $CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/bin/sh を $CHROOT/usr/bin/sh にコピーします)。
コピーする必要のあるファイルは、次のとおりです。
- /usr/bin/sh
- /usr/bin/ls
- /usr/bin/cat
- /usr/bin/date
- /usr/bin/dirname
- /usr/bin/mv
- /usr/bin/expr
- /usr/bin/file
- /usr/bin/awk
- /usr/bin/grep
- /usr/bin/gettext
- /usr/bin/echo
- /usr/bin/rm
- /usr/bin/sed
- /usr/bin/sleep
- /usr/bin/hostname
- /usr/bin/domainname
- /usr/bin/cut
- /usr/bin/uname
- /usr/bin/ksh
- /usr/bin/basename
- /usr/bin/id
- /usr/bin/chmod
- /usr/bin/nohup
- /usr/bin/pkginfo
- /usr/bin/su
- /usr/bin/chown
- /usr/bin/ftp
- /usr/bin/isainfo
- /usr/bin/ldd
- /usr/bin/truss
- /usr/bin/rm
- /usr/xpg4/bin/id
- ライブラリを $CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/lib/libc.so* を $CHROOT/usr/lib/ にコピーします)。
注
Identity Server がインストールされたコンピュータシステムが 64 ビットマシンの場合、/usr/lib/64 および /usr/lib/lwp/64 内のライブラリをそれぞれ $CHROOT/usr/lib/64 および $CHROOT/usr/lib/lwp/64 にコピーしてください。
コピーする必要のあるファイルは、次のとおりです。
- /usr/lib/libc.so*
- /usr/lib/ld.so*
- /usr/lib/libdl.so*
- /usr/lib/libintl.so*
- /usr/lib/libnsl.so*
- /usr/lib/libsocket.so*
- /usr/lib/librpcsvc.so*
- /usr/lib/libw.so*
- /usr/lib/libproject*
- /usr/lib/libproc*
- /usr/lib/libsecdb*
- /usr/lib/libcmd*
- /usr/lib/libmp.so*
- /usr/lib/libm.so*
- /usr/lib/libresolv.so*
- /usr/lib/nss_dns.so*
- /usr/lib/nss_files.so*
- /usr/lib/nss_nis.so*
- /usr/lib/nss_nisplus.so*
- /usr/lib/straddr.so*
- /usr/lib/libthread.so*
- /usr/lib/libposix4.so*
- /usr/lib/libC.so*
- /usr/lib/librt.so*
- /usr/lib/libaio.so*
- /usr/lib/libelf.so*
- /usr/lib/libgen.so*
- /usr/lib/libpthread.so*
- /usr/lib/libadm.so*
- /usr/lib/libX*
- /usr/lib/libCrun.so*
- /usr/lib/libatomic.so*
- /usr/lib/libdhcpagent.so*
- /usr/lib/libproject.so*
- /usr/lib/libpam.so*
- /usr/lib/libbsm.so*
- /usr/lib/libsldap.so*
- /usr/lib/libldap.so*
- /usr/lib/libdoor.so*
- /usr/lib/libz.so*
- /usr/lib/libkstat*
- /usr/lib/libld.so*
- /usr/lib/liblddbg.so*
- /usr/lib/librtld.so*
- /usr/lib/libsh.so*
- /usr/lib/lddstub*
- /usr/lib/librtld_db.so*
- /usr/lib/libmd5.so*
- /usr/lib/locale
- /usr/lib/libCstd.so*
- zoneinfo ファイルを、$CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/share/lib/zoneinfo/* を $CHROOT/usr/share/lib/ にコピーします)。
- locale ファイルを、$CHROOT ディレクトリ内の対応する場所にコピーします。(たとえば、/usr/lib/locale/* を $CHROOT/usr/lib/locale にコピーします)。
chroot 内に Identity Server をインストールする
- Identity Server 6.1 を、$CHROOT 以外のディレクトリにインストールします。
インストールディレクトリを指定しない場合、Identity Server はデフォルトのインストールディレクトリである /opt/IdentityServer_base にインストールされます。
- Sun ONE Web Server のインスタンスを停止します。
./WebServer_base/https-instanceName/https-stop
- Sun ONE Directory Server のインスタンスを停止します。
./DirectoryServer_base/slapd-instanceName/stop-slapd
- Identity Server のディレクトリ全体を、同一のディレクトリ構造を保持したまま IdentityServer_base から $CHROOT ディレクトリにコピーします。
- 次の場所にあるファイルを、 $CHROOT 内の対応するディレクトリにコピーします。
- Java 用のループバックマウントを作成します。
次のコマンドを使用して、chroot 環境内で Identity Server を実行する準備を整えます。
mount -F lofs /usr/j2se $CHROOT/usr/j2se
- /usr/share/lib および /usr/lib/mps のループバックマウントを作成します。
例:
mount -F lofs /usr/share/lib $CHROOT/usr/share/lib
mount -F lofs /usr/lib/mps $CHROOT/usr/lib/mps
chroot 内で Identity Server を起動するchroot 環境で Identity Server を起動するには、Directory Server と Web Server の両方を起動する必要があります。
chroot 内の Identity Server ログファイル通常、Identity Server は次のディレクトリ内にログファイル (Error Log、Debug など) を作成します。
chroot では、これらのログファイルは次の場所に作成されます。