4.4.6. sVirt のラベル付けおよび NFS
NFSv4.1 または NFSv4.2 ファイルシステムで sVirt ラベリングを使用するには、ゲスト共有用にエクスポートする NFS ディレクトリーの root の SELinux コンテキストを
virt_var_lib_t
へ変更する必要があります。たとえば、/exports/nfs/
ディレクトリーをエクスポートする場合は、以下のコマンドを実行します。
# semanage fcontext -a -t virt_var_lib_t '/exports/nfs/' # restorecon -Rv /exports/nfs/
さらに、
libvirt
が NFS ボリューム上のゲスト仮想マシンの sVirt ラベルを動的に生成する場合、単一のホスト内でのラベルの一意性のみを保証します。これは、複数ホスト間で多数のゲストが NFS ボリュームを共有する場合、重複したラベルが発生する可能性があり、それにより潜在的な脆弱性が作成される場合があることを意味します。
この問題を回避するには、次のいずれかを実行します。
- 各仮想化ホストに異なる NFS ボリュームを使用してください。さらに、ゲスト移行 を実行するときは、
--migrate-disks
および--copy-storage-all
のオプションを使用してゲストストレージをコピーします。 - virt-install コマンドでゲストを新規作成した場合は、以下のコマンドでゲストの静的ラベルを設定します。
--security
オプションの使用以下に例を示します。# virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk size=8 --cdrom /home/username/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --os-variant rhel7 --security model=selinux,label='system_u:object_r:svirt_image_t:s0:c100,c200'
これは、ゲスト上のすべてのディスクのセキュリティーラベルを設定します。seclabel
パラメーターを指定して--disk
オプションを使用します。以下に例を示します。# virt-install --name guest1-rhel7 --memory 2048 --vcpus 2 --disk /path/to/disk.img,seclabel.model=selinux,seclabel.label='system_u:object_r:svirt_image_t:s0:c100,c200' --cdrom /home/username/Downloads/rhel-workstation-7.4-x86_64-dvd.iso --os-variant rhel7
これは、指定したディスクに対してのみ、セキュリティーラベルを設定します。