4.4.6. sVirt 标记和 NFS
要在 NFSv4.1 或者 NFSv4.2 文件系统中使用 sVirt 标签,需要为您要为客户端共享导出的 NFS 目录根目录将 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'
这会为客户机上的所有磁盘设置安全标签。 - 将
--disk
选项与seclabel
参数搭配使用。例如:# 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
这只在指定的磁盘上设置安全标签。