Sun ONE ロゴ      前へ      目次      索引      次へ     

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 が本来のルート (/) に対して期待するすべてのものを含める必要があります。


$CHROOT は、chroot ディレクトリの変数名です。


  1. Identity Server のホストとなるコンピュータシステムに、次のシステムディレクトリを作成します。
  2. /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

  3. ln -s コマンドを使用して、システムソフトリンクを作成します。
  4. 作成する必要のあるソフトリンクは、次のとおりです。

    • /usr/bin -> bin
    • /usr/lib -> lib
    • /var/tmp -> tmp
  5. mknod コマンドを使用して、$CHROOT 内にデバイスを作成します。

  6. ヒント

    たとえば、$CHROOT ディレクトリ内にデバイス /dev/tcp を作成するには、次のように入力します。

    mknod  dev/tcp c 11 42


    $CHROOT ディレクトリ内に作成する必要のあるデバイスは、以下のとおりです。

    • /dev/null
    • /dev/tcp
    • /dev/ticots
    • /dev/ticlts
    • /dev/ticotsord
    • /dev/tty
    • /dev/udp
    • /dev/zero
    • /dev/conslog
  7. ディレクトリ /etc から、$CHROOT ディレクトリ内の対応する場所にファイルをコピーします (たとえば、/etc/hosts$CHROOT/etc/hosts にコピーします)。
  8. コピーする必要のあるファイルは、次のとおりです。

    • /etc/hosts
    • /etc/nsswitch.conf
    • /etc/vfstab
    • /etc/group
    • /etc/passwd
    • /etc/shadow
    • /etc/hosts
    • /etc/resolv.conf
    • /etc/nsswitch.conf
  9. バイナリを $CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/bin/sh$CHROOT/usr/bin/sh にコピーします)。
  10. コピーする必要のあるファイルは、次のとおりです。

    • /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
  11. ライブラリを $CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/lib/libc.so* を $CHROOT/usr/lib/ にコピーします)。

  12. 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*
  13. zoneinfo ファイルを、$CHROOT ディレクトリ内の対応する場所にコピーします (たとえば、/usr/share/lib/zoneinfo/* を $CHROOT/usr/share/lib/ にコピーします)。
  14. locale ファイルを、$CHROOT ディレクトリ内の対応する場所にコピーします。(たとえば、/usr/lib/locale/* を $CHROOT/usr/lib/locale にコピーします)。


chroot 内に Identity Server をインストールする

  1. Identity Server 6.1 を、$CHROOT 以外のディレクトリにインストールします。
  2. インストールディレクトリを指定しない場合、Identity Server はデフォルトのインストールディレクトリである /opt/IdentityServer_base にインストールされます。

  3. Sun ONE Web Server のインスタンスを停止します。
  4. ./WebServer_base/https-instanceName/https-stop

  5. Sun ONE Directory Server のインスタンスを停止します。
  6. ./DirectoryServer_base/slapd-instanceName/stop-slapd

  7. Identity Server のディレクトリ全体を、同一のディレクトリ構造を保持したまま IdentityServer_base から $CHROOT ディレクトリにコピーします。
  8. 次の場所にあるファイルを、 $CHROOT 内の対応するディレクトリにコピーします。
    • /etc/opt/SUNWam
    • /var/opt/SUNWam
    • /etc/init.d/amserver
  9. Java 用のループバックマウントを作成します。
  10. 次のコマンドを使用して、chroot 環境内で Identity Server を実行する準備を整えます。

    mount  -F lofs /usr/j2se $CHROOT/usr/j2se

  11. /usr/share/lib および /usr/lib/mps のループバックマウントを作成します。
  12. 例:

    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 の両方を起動する必要があります。

  1. chroot コマンドを使用して、Directory Server を起動します。
  2. chroot $ROOT $IS_ROOT/DSServers/slapd-hostName/start-slapd

  3. chroot コマンドを使用して、Web Server を起動します。
  4. chroot $ROOT $IS_ROOT/SUNWam/servers/https-instanceName/https-start


chroot 内の Identity Server ログファイル

通常、Identity Server は次のディレクトリ内にログファイル (Error Log、Debug など) を作成します。

chroot では、これらのログファイルは次の場所に作成されます。



前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.