2.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 时可以分配的不同上下文标签:
SELinux 上下文 | 键入 / Description |
---|---|
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 | 共享读/写内容的 guest 虚拟机.所有 svirt_t 进程都可以写入 svirt_image_t:s0 文件。 |
在使用 sVirt 时,也可以执行静态标记。静态标签允许管理员选择特定的标签,包括 guest 虚拟机的 MCS/MLS 字段。运行静态标记的虚拟化客户机虚拟机的管理员负责在镜像文件中设置正确的标签。客户机虚拟机将始终使用该标签启动,sVirt 系统永远不会修改静态标记的虚拟机内容的标签。这允许 sVirt 组件在 MLS 环境中运行。您还可以根据您的要求,在系统上运行具有不同敏感度级别的多个客户机虚拟机。