FreeBSD jail

FreeBSD jailとは



FreeBSD jailは、OSレベルの仮想化機構の一つであり、FreeBSDベースのシステムを「jail」と呼ばれる独立した環境に分割する技術です。これにより、システムリソースを効率的に分割し、セキュリティを向上させることが可能になります。

jailの主な利用シーン



FreeBSD jailは、特にレンタルサーバー事業者によって、提供するサービスと顧客のサービスを分離する目的で広く利用されています。これにより、顧客ごとに独立した環境を提供し、セキュリティリスクを低減します。

jailの仕組み



jailは、サーバーデーモンの設定レベルでの分離とは異なり、各jailには割り当てられたファイルシステムプロセス空間のみがアクセス可能です。これにより、jail内のプロセスは他のjailやホストシステムのプロセスに影響を与えることができません。

jailの利点



FreeBSD jailには、主に以下の3つの利点があります。

1. 仮想化: 各jailはホストマシン上で動作する仮想的な環境であり、独自のファイルシステムプロセス空間、ユーザーアカウントを持ちます。jail内のプロセスからは、それが実際のシステムなのかjail内なのかを区別することが困難です。
2. 安全性: 各jailは他のjailにアクセスできないように設計されており、セキュリティが大幅に向上しています。これにより、一つのjailが侵害された場合でも、他のjailやホストシステムへの影響を最小限に抑えることができます。
3. 権限委譲の簡素化: 管理者権限の範囲がjail内に限定されるため、システムの管理者は、システム全体に対する権限を付与することなく、特定のタスクを委任することができます。

chrootとの比較



jailは、従来のUnixにおけるプロセスのスコープを制限する技術であるchroot jailに似ています。しかし、FreeBSD jailはこれを強化したものであり、各プロセスは他のjailで動作しているプロセスに干渉したり、raw socketやdivert socket、routing socketを操作することができないよう、特別なカーネル構造体を用いて管理されています。

jailの歴史



jailのユーザーランドコマンドである`jail(8)`とシステムコールである`jail(2)`は、FreeBSD 4.0で初めて導入されました。その後、jailの取り扱いを容易にする新しいユーザーランドコマンド (例: `jls(8)` jail一覧表示) やシステムコール (例: `jail_attach(2)` jailにプロセスを追加) が、FreeBSD 5.1で追加されました。

jailの構築手順



FreeBSD jailの構築は、以下の手順で簡単に行うことができます。

1. ルートディレクトリの作成: `/usr/jail` のように、jail内でのルートディレクトリとなるディレクトリを作成します。
2. プログラムとファイルの投入: 作成したディレクトリに、jail内で動作させるプログラムやファイルを配置します。典型的には、`/usr/jail/bin`にシェルを配置し、procfsを`/usr/jail/procfs`にマウントします。`make world DESTDIR=/usr/jail`や`make distribution DESTDIR=/usr/jail`コマンドを利用してこれらの作業を行うことも可能です。ただし、この方法は必須ではありません。
3. devfsのマウント: `/usr/jail/dev`にdevfsをマウントします。(デバイスノードがなくても動作しますが、機能が大幅に制限されます)
4. jailの起動: `jail`コマンドを使用して、jail内のshを用いて`/etc/rc` initスクリプトを起動します (例: `jail /usr/jail hostname 10.0.0.22 /bin/sh /etc/rc`)。

これにより、jailのコンテキストでプロセスが実行されます。jail内で起動されたプロセスは、jail内のプロセスのみを操作でき、jailのルートファイルシステムとして指定されたディレクトリ(`/usr/jail`など) の外のファイルにはアクセスできません。

jailの使用を始める際には、`jail(8)`のオンラインマニュアルを参照することが推奨されます。

他のOSレベル仮想化技術



OSレベルの仮想化技術には、FreeBSD jailの他に、OpenVZ/Virtuozzo、Linux-VServer、Solaris Containers、FreeVPS、LXCなどが存在します。

外部リンク



もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。