LinuxでchrootによるJail環境を構築
FreeBSDにはJailという簡易仮想マシンを作るコマンドがあるけど、残念ながら
Linuxにはない。ただ、chrootという古くからあるunixコマンドで仮想マシンに
近いことができる。
この辺のことについては、Apacheセキュリティ という本に記述されている。
Apacheセキュリティの場合は、root権限を使わないようにしたり、必要最低限の
ファイルのみをJail環境に移行することによって、セキュリティを強固にするため
に使われている。
私の場合は、自分のプロジェクトのチームが作成しているWebアプリが、/etc配下
の設定ファイルのパスをソースに直で書いてあるため、設定ファイルを書き換え
て、Webアプリを同時に2個立ち上げることができなかったためにJail環境を構築し
た。そのため、厳密にセキュリティを考慮していないが、悪しからず。
Apacheセキュリティでは、必要な実行ファイルとその実行ファイルを引数にlddを
実行して、依存関係のあるファイルのみ移行していた。
rootになる。
適当なchroot用のディレクトリの作成(どこでもいい。以降は/chrootと仮定)
procディレクトリの作成
chroot用の/binディレクトリの作成
/bin配下のコマンドをchroot環境にコピー
chroot用の/libディレクトリの作成
/lib配下のライブラリをchroot環境にコピー
chroot用の/usrディレクトリの作成
/usr/lib配下のライブラリをchroot環境にコピー
chroot用の/tmpディレクトリの作成
chroot用の/devディレクトリの作成
chroot環境に/dev/nullデバイスの作成
chroot環境に/dev/zeroデバイスの作成
chroot環境に/dev/randomデバイスの作成
chroot環境に/etcディレクトリの作成
chroot環境にgroup設定ファイルをコピー
chroot環境にhosts設定ファイルをコピー
chroot環境にmime一覧ファイルをコピー
chroot環境にmount設定ファイルをコピー
chroot環境にネームサービス設定ファイルをコピー
chroot環境にユーザ設定ファイルをコピー
chroot環境にDNSサーバー設定ファイルをコピー
chroot環境にapacheの設定ファイルをコピー
chroot環境のapacheのポートを今起動しているサーバとかぶらないよう変更
chroot環境に起動用スクリプトディレクトリの作成
chroot環境にApacheの起動スクリプトをコピー
chroot環境に/usr/binディレクトリの作成
chroot環境に/usr/sbinディレクトリの作成
chroot環境にenvコマンドをコピー
chroot環境にinstallコマンドをコピー
cp /usr/bin/perl5.10.0 /chroot/usr/bin/perl5.10.0
chroot環境にperlコマンドをコピー
chroot環境にvimコマンドをコピー
chroot環境にapacheコマンドをコピー
cp -r /var/www /chroot/var
mkdir /chroot/var/lock
chroot環境に各種/varディレクトリの作成
chroot環境にperlライブラリのコピー
chroot環境の時刻のlocaleを設定
chrootの実行!!
/procのmount
congraturation!!
ちなみに、mysqlはunix socketでは通信できなくなったのでTCPで通信する
必要があります。その際に-pだけでは駄目で、--password=パスワードのよう
にパスワードをコマンドライン上で指定しないと繋がりませんでした。
| 固定リンク
「Linux」カテゴリの記事
- LinuxでchrootによるJail環境を構築(2010.02.23)
- makeがエラー(2008.02.20)
- 連番によるバックアップ(2008.02.15)
- 複数ファイルのファイル名変更(2008.02.08)
コメント