第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 ページを参照してください。