ezjailでFreeBSDのjailを作る
スポンサーリンク
jailとは
jailは、「プロセスとその子孫を閉じ込める」ことができ、「仮想FreeBSDマシン」を実現する機能です。 chrootコマンドを使用し、ルートディレクトリを変更し、コマンドを実行することができます。コマンドを任意のディレクトリの下に閉じこめることで、不要なファイルシステムへのアクセスを制限することが可能になります。 chrootされたコマンドは、指定されたルートディレクトリよりも上の階層へアクセスすることができません。
jailは、chrootの機能を拡張したもので、プロセスやネットワークなどを隔離することができます。
WMWareなどの仮想マシンとは異なり、プロセス自体はマスターホストのカーネルによって動作します。
ezjailをインストールする方法
portsからezjailをインストールすることができます。
環境構築
以下のコマンドを実行するとbuildworldが行われます。
/usr/srcにFreeBSDのソースが必要です。
ezjailのbasejailを作成、または、更新します。
まとめ
jailを利用することで、用途ごとに環境を分離することができます。環境を分離することにより、パッケージの依存関係に悩むことが減らすことができます。また、テスト環境とサービス環境をわけたり、複数台のマシンを容易しなくても、分散したシステムの簡単なテストを行うことができます。プロセスをjailに閉じこめることにより、セキュリティを高める効果もあります。
jailは、「プロセスとその子孫を閉じ込める」ことができ、「仮想FreeBSDマシン」を実現する機能です。 chrootコマンドを使用し、ルートディレクトリを変更し、コマンドを実行することができます。コマンドを任意のディレクトリの下に閉じこめることで、不要なファイルシステムへのアクセスを制限することが可能になります。 chrootされたコマンドは、指定されたルートディレクトリよりも上の階層へアクセスすることができません。
jailは、chrootの機能を拡張したもので、プロセスやネットワークなどを隔離することができます。
WMWareなどの仮想マシンとは異なり、プロセス自体はマスターホストのカーネルによって動作します。
ezjailをインストールする方法
portsからezjailをインストールすることができます。
cd /usr/ports/sysutils/ezjail/
sudo make install clean
% cd /usr/ports/sysutils/ezjail/ % sudo make install clean Password: ===> Vulnerability check disabled, database not found => ezjail-2.0.1.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/. => Attempting to fetch from http://erdgeist.org/arts/software/ezjail/. ezjail-2.0.1.tar.bz2 100% of 15 kB 28 kBps ===> Extracting for ezjail-2.0.1 => MD5 Checksum OK for ezjail-2.0.1.tar.bz2. => SHA256 Checksum OK for ezjail-2.0.1.tar.bz2. ===> Patching for ezjail-2.0.1 ===> Configuring for ezjail-2.0.1 ===> Building for ezjail-2.0.1 ===> Installing for ezjail-2.0.1 ===> Generating temporary packing list mkdir -p /usr/local/etc/ezjail/ /usr/local/man/man1/ /usr/local/man/man5/ /usr/local/etc/rc.d/ /usr/local/bin/ /usr/local/share/examples/ezjail cp -p ezjail.conf.sample /usr/local/etc/ cp -R -p examples/default /usr/local/share/examples/ezjail/ sed s:EZJAIL_PREFIX:/usr/local: ezjail.sh > /usr/local/etc/rc.d/ezjail.sh sed s:EZJAIL_PREFIX:/usr/local: ezjail-admin > /usr/local/bin/ezjail-admin sed s:EZJAIL_PREFIX:/usr/local: man1/ezjail-admin.1 > /usr/local/man/man1/ezjail-admin.1 sed s:EZJAIL_PREFIX:/usr/local: man5/ezjail.conf.5 > /usr/local/man/man5/ezjail.conf.5 sed s:EZJAIL_PREFIX:/usr/local: man5/ezjail.5 > /usr/local/man/man5/ezjail.5 chmod 755 /usr/local/etc/rc.d/ezjail.sh /usr/local/bin/ezjail-admin chown -R root:wheel /usr/local/man/man1/ezjail-admin.1 /usr/local/man/man5/ezjail.conf.5 /usr/local/man/man5/ezjail.5 /usr/local/share/examples/ezjail/ ===> Compressing manual pages for ezjail-2.0.1 ===> Registering installation for ezjail-2.0.1 ===> Cleaning for ezjail-2.0.1
環境構築
以下のコマンドを実行するとbuildworldが行われます。
/usr/srcにFreeBSDのソースが必要です。
ezjailのbasejailを作成、または、更新します。
sudo ezjail-admin update
実際に下記コマンドで j1 というjailを作成します。
sudo mkdir /home/jail
ezjail-admin create -r /home/jail/j1 j1 192.168.0.111
/home/jail/j1というディレクトリに j1 という名前の jailを作成します。
/home/jail/j1にj1のFreeBSDのツリーができます。
j1 の IPアドレスは、192.168.0.111になります。
ネットワークの設定
ネットワークカードがfxp0と想定します。
ifconfigで、デバイス名を調べてください。
jail用のIPアドレスをaliasにセットします。
sudo ifconfig fxp0 inet 192.168.0.111/24 alias
上記の設定を解除するには、-aliasを使用します。
sudo ifconfig fxp0 inet 192.168.0.111/24 -alias
/etc/rc.conf などに下記の設定を加えておくと便利です。
ifconfig_fxp0_alias0="inet 192.168.0.111/24"
もし複数の設定があるなら aliasの次の値を増やしていきます。
ifconfig_fxp0_alias0="inet 192.168.0.111/24"
ifconfig_fxp0_alias1="inet 192.168.0.112/24"
ifconfig_fxp0_alias2="inet 192.168.0.113/24"
jailの中からpingなどのコマンドを使うことができないので、もし利用したいなら、マスターホストで下記の設定をします。
sudo sysctl security.jail.allow_raw_sockets=1
ezjailでのjailの起動と停止
/etc/rc.confに下記の設定を追加します。
ezjail_enable="YES"
これを設定することで、FreeBSDの起動時に自動的にjailがスタートされます。
起動方法
/usr/local/etc/rc.d/ezjail.sh start
停止方法
/usr/local/etc/rc.d/ezjail.sh stop
jailコマンドによるjailの開始
jail /home/jail/j1 j1 192.168.0.111 /bin/sh /etc/rc
アクティブなjailを調べる方法
アクティブなjailを調べる方法は、jlsコマンドです。
jls
jailの中に入る方法
jailの中に入る方法として、jexecか、sshする方法があります。
% jexec 1 /bin/csh
j1の名前解決をできるように/etc/hostsなどに設定がしてある必要があります。
% ssh j1
jailの停止方法
jlsでJIDを調べ、jexecで/etc/rc.shutdownを実行します。
% jls JID IP Address Hostname Path 4 192.168.0.111 j1 /home/jail/j1 % sudo jexec 4 /bin/sh /etc/rc.shutdown % % sudo jexec 4 kill -15 -1
まとめ
jailを利用することで、用途ごとに環境を分離することができます。環境を分離することにより、パッケージの依存関係に悩むことが減らすことができます。また、テスト環境とサービス環境をわけたり、複数台のマシンを容易しなくても、分散したシステムの簡単なテストを行うことができます。プロセスをjailに閉じこめることにより、セキュリティを高める効果もあります。
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12