Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.20. 安全标签

<seclabel> 元素允许控制安全驱动程序的运行。有三种基本操作模式: 'dynamic',libvirt 会自动生成唯一的安全标签 "静态",其中应用程序/管理员选择标签或 "none"( 其中禁用限制)。使用动态标签生成时,libvirt 将始终自动重新标记与虚拟机关联的任何资源。使用静态标签分配时,管理员或应用程序必须确保在任何资源上正确设置标签,但在需要时可以启用自动重新标记。
如果 libvirt 使用了多个安全驱动程序,则可以使用多个 seclabel 标签,每个驱动程序一个,各个标签引用的安全驱动程序可以通过属性 模型 来定义。顶级安全标签的有效输入 XML 配置有:

图 23.86. 安全标签


  <seclabel type='dynamic' model='selinux'/>

  <seclabel type='dynamic' model='selinux'>
    <baselabel>system_u:system_r:my_svirt_t:s0</baselabel>
  </seclabel>

  <seclabel type='static' model='selinux' relabel='no'>
    <label>system_u:system_r:svirt_t:s0:c392,c662</label>
  </seclabel>

  <seclabel type='static' model='selinux' relabel='yes'>
    <label>system_u:system_r:svirt_t:s0:c392,c662</label>
  </seclabel>

  <seclabel type='none'/>
如果未在输入 XML 中提供 "type" 属性,则将使用安全驱动程序默认设置,这可能是 "无""动态"。如果设置了 <baselabel> 但没有设置 'type',则类型会假定为 'dynamic'。当查看带有自动资源重新标记 active 的正在运行的虚拟客户机的 XML 时,将包括额外的 XML 元素 imagelabel。这是一个只输出的元素,在用户提供的 XML 文档中将忽略它。
可以使用以下值操作以下元素:
  • 类型 - 使用静态动态 或无 操作来确定 libvirt 是否自动生成唯一的安全标签。
  • model - 与当前激活的安全模型匹配的有效安全模型名称。
  • 重新标记 - 是的, 没有。如果使用动态标签分配,则必须始终为 yes。使用静态标签分配时,将默认为 no
  • <label> - 如果使用静态标签,则必须指定分配给虚拟域的完整安全标签。内容的格式取决于所使用的安全驱动程序:
    • SELinux :SELinux 上下文.
    • AppArmor :Armor 配置集。
    • DAC: owner 和 group 以冒号分隔。它们可以定义为用户/组名称或 UID/GID。驱动程序将首先尝试将这些值解析为名称,但前导加号可用于强制驱动程序将其解析为 UID 或 GID。
  • <baselabel> - 如果使用动态标签,可以选择性地使用它来指定基本安全标签。内容的格式取决于所使用的安全驱动程序。
  • <imagelabel> - 这是一个输出元素,它显示与虚拟域关联的资源上所使用的安全标签。内容的格式取决于所使用的安全驱动程序。当重新标记生效时,还可以通过禁用标签(如果 NFS 或其它文件系统中缺少安全标签)或请求备用标签(当管理应用创建特殊标签时,可以微调标签)或请求备用标签(在某个域间共享特殊标签时,使用该文件)。当 seclabel 元素附加到特定路径而不是顶级域分配时,只支持属性 relabel 或 sub-element 标签。