4.2. sVirt のラベル

SELinux の保護下にある他のサービスと同様に、sVirt はプロセスベースのメカニズムと制約を使用して、ゲスト仮想マシン全体に追加のセキュリティー層を提供します。通常の使用では、sVirt が背後で作動していることすら気づかないことでしょう。このセクションでは、sVirt のラベル付け機能について説明します。
以下の出力に示されるように、sVirt を使用すると、仮想化されるゲスト仮想マシンの各プロセスにラベル付けが行なわれ、動的に生成されるレベルで実行されるようになります。各プロセスは複数の異なるレベルにより、他の仮想マシンから分離されます。
# ps -eZ | grep qemu

system_u:system_r:svirt_t:s0:c87,c520 27950 ?  00:00:17 qemu-kvm
以下の出力で示されるように、実際のディスクイメージは、プロセスに一致するよう自動的にラベル付けされます。
# ls -lZ /var/lib/libvirt/images/*

  system_u:object_r:svirt_image_t:s0:c87,c520   image1
以下の表は、sVirt の使用時に割り当てられるさまざまなコンテキストラベルの概要を示しています。

表4.1 sVirt コンテキストラベル

SELinux コンテキストタイプ/説明
system_u:system_r:svirt_t:MCS1ゲスト仮想マシンのプロセスです。MCS1 はランダムな MCS フィールドです。約 50万種のラベルに対応しています。
system_u:object_r:svirt_image_t:MCS1ゲスト仮想マシンのイメージです。同じ MCS フィールドを持つ svirt_t プロセスのみがこれらのイメージの読み込みと書き込みを行なうことができます。
system_u:object_r:svirt_image_t:s0ゲスト仮想マシンの共有する読み込み/書き込みコンテンツです。すべての svirt_t プロセスは svirt_image_t:s0 ファイルに書き込みを行なうことができます。
sVirt を使用する際、静的なラベル付けを行なうこともできます。静的なラベルを使用すると、管理者はゲスト仮想マシンに、MCS/MLS フィールドを含む特殊なラベルを選択することができます。管理者が静的にラベル付けした、仮想化されたゲスト仮想マシンを実行する場合は、イメージファイルにも正しいラベルを設定してください。ゲスト仮想マシンは、常にそのラベルで起動することになるため、静的にラベル付けされた仮想化マシンのコンテンツの修正を sVirt システムが行なうことはありません。これにより、sVirt コンポーネントが MLS 環境で実行できるようになります。また、要件に応じて 1 つのシステム上で機密度のレベルの異なる複数のゲスト仮想マシンを実行することもできます。