Go to main content

手册页第 7 部分:标准、环境、宏、字符集和杂项

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

clearance (7)

名称

clearance - Solaris 进程标签属性

描述

Clearance 是在强制策略决定中使用的一个进程属性。访问带标签的对象时,进程安全许可必须支配该对象的标签。安全许可和对象标签包括与分类名称对应的整数组成部分和与区间名称对应的位掩码。安全许可支配对象标签:其分类是否等于或大于对象的标签,以及其区间位是否包括对象标签中的所有区间位。相同的标签相互支配。如果每个标签都至少有一个唯一区间位,那么关系为不相交,因为标签之间不相互支配。

分类名称和区间名称之间的关系使用 labelcfg(8) 指定。可以定义各种约束来创建标签的分层和不相交集。标签规范由 svc:/system/labeld:clearance 服务编译成一种内部格式,该服务用于在内部和外部表现形式之间转换标签。标签必须先转换成 m_label_t 结构才能进行比较。转换功能在 libtsol(3LIB) 中进行了描述。

进程安全许可是在内核中的凭证结构中进行维护的。缺省情况下,为进程指定最大值 ADMIN_HIGH,这样可支配其他每个标签。进程安全许可可以降低,但不能提升。用户可以使用 sandbox 命令以较低的安全许可启动进程。缺省情况下,安全许可降低到 ADMIN_LOW,这样可以由其他每个标签支配。降低后,新的安全许可会被子进程继承。setclearance(3TSOL) 函数可用于以编程方式降低当前进程安全许可。此函数不需要任何特权。但是,它不能用于提升进程安全许可,即使具有所有特权也是如此。

管理接口

有四个管理界面用于设置进程安全许可:

  1. 用户和角色的缺省安全许可通过 labelcfg(8) 中的安全许可属性指定。此属性最初设置为 ADMIN_HIGH,因此用户不受任何标记策略约束。设置显式缺省安全许可是配置标签策略的一个先决条件。

  2. 特定用户和角色的安全许可通过使用 useradd(8)roleadd(8) 以及安全许可属性设置,并在 user_attr(5) 中维护。

  3. SMF 服务实例的安全许可通过使用 svccfg(8) 以及 method_context/clearance property 指定。如果不指定,安全许可缺省为 policy.conf(5)CLEARANCE 属性指定的值。请注意,应该为依赖 PAM 对用户会话进行验证的服务显式指定 ADMIN_HIGH 标签,以便 PAM 可以设置相应的会话安全许可。

  4. 各个命令的安全许可是通过安全许可属性使用 profiles(1) 指定的。当安全许可较高的角色由安全许可较低的用户承担时,这非常有用。因为角色承担不能用于提升进程安全许可,所以可以适当为角色指定包含在特定安全许可下运行的命令的权限配置文件。如果角色的安全许可(在 user_attr(5) 中设置)支配命令的安全许可,则此类命令将在指定的安全许可下执行。

强制策略

plabel(1) 命令可用于显示其他进程的安全许可。但是,当前进程必须能够正常访问目标进程且必须支配目标进程的安全许可。同样的限制也适用于调试工具,例如 dtrace(8)mdb(1)dbx(1)truss(1) 和其他 proc(1) 工具。

访问启用了多级别属性的 ZFS 文件系统中的文件或目录时,进程安全许可必须支配文件或目录标签。目录列表仅显示当前进程安全许可支配的条目。

具有 solaris.label.file.upgrade 授权的用户或角色可以使用 setlabel(1) 将文件或目录升级到由当前进程安全许可支配的新标签。同样,solaris.label.file.downgrade 授权允许在现有标签受当前进程安全许可支配的情况下用户或角色可以降低标签级别

ZFS 多级别文件系统维护上界标签,此上界标签在文件或目录升级时会上浮。文件系统的最大标签可以使用 ZFS mlslabel 属性进行观察,但不能降低。要发送或归档带标签的文件系统,当前进程安全许可必须支配 mlslabel 属性。

设备策略

使用 add_drv(8)update_drv(8) 配置的设备可以通过设置策略令牌 require_admin_high=true 而限制为要求 ADMIN_HIGH 进程安全许可。这包括诸如 /dev/kmem 之类的设备。

不可变策略

如果当前区域配置为不可变(请参见 mac(9F)),则需要 ADMIN_HIGH 进程安全许可来修改特定 SMF 属性。请注意,所有标记为属于可信路径域的进程(请参见 tpd(7))均使用 ADMIN_HIGH 安全许可来启动。

允许重新配置安全策略的 SMF 属性只能由具有 ADMIN_HIGH 安全许可的进程来修改。这包括所有方法或 sysconfig 属性。例如,更改现有服务的进程安全许可或重新配置名称服务需要 ADMIN_HIGH 安全许可。

审计和防止数据丢失

可以为目录指定受限的标签以防无意泄露敏感信息。这些标签会自动应用到在其下创建的所有文件或目录。可以为有知情权的用户和角色指定与这些标签相对应的安全许可。此类文件和目录将对安全许可不足的用户隐藏。授权用户可以升级或降级文件和目录以进一步限制访问。可以使用不相交标签以便于分离职责。

可以使用审计迹以便于获得合规报告。包括文件属性的审计事件还包括文件标签,除非它们不带标签。要最大程度减少不相关的审计数据数量,审计策略可以配置为仅审计打开以读取事件,这些事件对应使用 auditconfig(8) 的无标签选项的显式标签文件。与特定文件标签或范围匹配的审计事件可以通过使用 auditreduce(8)–l 选项过滤。

进程安全许可会自动记录在关于包含进程属性的所有事件的审计迹中。与特定进程安全许可或范围匹配的事件可以通过使用 auditreduce(8)–L 选项过滤。

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
接口稳定性
请参见下文。

另请参见

plabel(1)setlabel(1)libtsol(3LIB)getclearance(3TSOL)setclearance(3TSOL)policy.conf(5)user_attr(5)attributes(7)labels(7), sandbox(1) , tpd(7)、auditconfig(8)auditreduce(8)labelcfg(8)svccfg(8)useradd(8)zfs(8)profiles(1)roleadd(8)

附注

尽管文件标记在启用 Trusted Extensions 后仍可用,但进程安全许可将不可用。而 Trusted Extensions 依赖于区域标签以强制实施其强制策略。