Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第7章 Sandbox を使用したプログラムの保護

sandbox セキュリティーユーティリティーは、システム管理者が、厳しい制限のある SELinux ドメイン内でアプリケーションを実行できるように、一連の SELinux ポリシーを追加します。新しいファイルを開いたり、ネットワークにアクセスするパーミッションの制限を定義できます。これにより、システムのダメージを防ぎ、信頼できないソフトウェアの処理特性を安全にテストできます。

7.1. サンドボックスを使用したアプリケーションの実行

sandbox ユーティリティーを使用する前に、policycoreutils-sandbox パッケージがインストールされている必要があります。
~]# yum install policycoreutils-sandbox
アプリケーションを制限する基本的な構文は、以下のとおりです。
~]$ sandbox [options] application_under_test
sandbox でグラフィカルアプリケーションを実行する場合は、-X オプションを使用します。以下に例を示します。
~]$ sandbox -X evince
この-Xは、sandbox に、アプリケーションに限定されたセカンダリー X Server (この場合は evince) を設定してから、必要なリソースをコピーし、ユーザーの home ディレクトリーまたは /tmp ディレクトリーに閉じた仮想環境を作成するように指示します。
あるセッションから次のセッションへデータを保存するには、以下のコマンドを実行します。
~]$ sandbox -H sandbox/home -T sandbox/tmp -X firefox
/home には sandbox/home が使用され、/tmp には sandbox/tmp が使用されることに注意してください。異なるアプリケーションは、異なる制限された環境に置かれます。アプリケーションは全画面モードで実行されるため、その他の機能にアクセスできなくなります。前述のように、sandbox_x_file_t のラベルが付いたファイルを除き、ファイルを開いたり、作成したりすることはできません。
sandbox 内では、ネットワークへのアクセスも最初は不可能です。アクセスを許可するには、sandbox_web_t ラベルを使用します。たとえば、Firefox を起動する場合:
~]$ sandbox ‑X ‑t sandbox_web_t firefox
警告
sandbox_net_t ラベルは、すべてのネットワークポートへの無制限の双方向ネットワークアクセスを許可します。sandbox_web_t では、Web ブラウジングにのみ必要なポートへの接続が許可されます。
sandbox_net_t の使用は、必要な場合にのみ注意して行う必要があります。
詳細および利用可能なオプションの完全な一覧は、sandbox (8) man ページを参照してください。