8.2. sVirt 标记
与受 SELinux 保护的其他服务一样,sVirt 使用基于进程的机制和限制为客户机实例提供额外的安全层。在典型的使用中,您甚至不应注意到 sVirt 在后台工作。这部分论述了 sVirt 的标记功能。
如以下输出所示,使用 sVirt 时,每个虚拟机(VM)进程都会使用动态生成的级别进行标记并运行。每个进程都与具有不同级别的其他虚拟机隔离:
~]#
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/libvirtimages/*
system_u:object_r:svirt_image_t:s0:c87,c520 image1
下表概述了使用 sVirt 时可以分配的不同标签:
类型 | SELinux Context | 描述 |
---|---|---|
虚拟机进程 | system_u:system_r:svirt_t:MCS1 | MCS1 是一个随机选择的 MCS 字段。目前支持约 500,000 个标签。 |
虚拟机镜像 | 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 文件和设备。 |
虚拟机镜像 | system_u:object_r:virt_content_t:s0 | 镜像退出时使用的系统默认标签.不允许 svirt_t 虚拟进程读取使用该标签的文件/设备。 |
使用 sVirt 时也可以执行静态标记。静态标签允许管理员为虚拟机选择特定的标签,包括 MCS/MLS 字段。运行静态标记虚拟机的管理员负责在镜像文件上设置正确的标签。虚拟机将始终使用该标签启动,sVirt 系统永远不会修改静态标记的虚拟机内容的标签。这允许 sVirt 组件在 MLS 环境中运行。您还可以根据您的要求,在系统上运行具有不同敏感度级别的多个虚拟机。