8.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
system_u:system_r:svirt_t:s0:c639,c757 27989 ? 00:00:06 qemu-system-x86
以下の出力で示すように、実際のディスクイメージはプロセスに一致するよう自動的にラベル付けされます。
~]# ls -lZ /var/lib/libvirt/images/*

system_u:object_r:svirt_image_t:s0:c87,c520   image1
以下の表では、sVirt の使用時に割り当て可能な各種のラベルの概要を示しています。

表8.1 sVirt ラベル

タイプSELinux コンテキスト説明
仮想マシンプロセスsystem_u:system_r:svirt_t:MCS1MCS1 は無作為に選択されたフィールドです。現時点では、約 50 万のラベルがサポートされています。
仮想マシンのイメージsystem_u:object_r:svirt_image_t:MCS1これらのイメージファイルやデバイスの読み取り/書き込みができるのは、同じ MCS フィールドの svirt_t ラベルが付いたプロセスだけです。
仮想マシンの共有読み取り/書き込みコンテンツsystem_u:object_r:svirt_image_t:s0svirt_t のラベルが付いたプロセスはすべて、svirt_image_t:s0 のファイルおよびデバイスに書き込み可能です。
仮想マシンのイメージsystem_u:object_r:virt_content_t:s0イメージが存在する場合に使用されるシステムのデフォルトラベル。svirt_t 仮想プロセスは、このラベルの付いたファイル/デバイスの読み取りはできません。
sVirt の使用時に、静的なラベル付けを行うこともできます。静的なラベルを使用すると、管理者は仮想化ゲストに特定のラベルを選択することができます。これには MCS/MLS フィールドも含まれます。静的にラベル付けした仮想化ゲストを実行する場合は、管理者はイメージファイルにも正しいラベルを設定する必要があります。仮想マシンは常にそのラベルで起動し、静的にラベル付けした仮想化マシンのコンテンツの修正を sVirt システムが行うことはありません。これにより、sVirt コンポーネントが MLS 環境で実行できるようになります。また、要件に応じてひとつのシステム上で異なる機密性レベルを持つ複数の仮想マシンを実行することもできます。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。