在 Oracle® Solaris 11.2 中确保用户和进程的安全

退出打印视图

更新时间: 2014 年 7 月
 
 

用户和进程权限提供了一种替代超级用户模型的方法

在传统 UNIX 系统中,root 用户(也称为超级用户)具有最高权限。作为 root 运行的程序(如许多 setuid 程序)也可以执行所有功能。root 用户可以读取和写入任何文件,运行所有程序,以及向任何进程发送中止信号。实际上,任何可成为超级用户的用户都能够修改站点的防火墙,更改审计迹,读取机密记录以及关闭整个网络。被劫持的 setuid root 程序可以在系统上执行任何操作。

为用户、资源和进程指定权限是一种比超级用户模型(要么具有全部控制权要么毫无控制权)更为安全的替代方案。通过权限,您可以在更精细的级别上强制执行安全策略。权限采用最小特权安全原则。最小特权表示用户仅具有执行某项作业所必需的 privilege(特权)。一般用户具有足够特权来使用其应用程序、检查其作业状态、打印文件、创建新文件等。超出一般用户权限以外的权限将划分到权限配置文件中。如果用户将要执行的作业要求具有某些超级用户权限,可以为他们指定一个权限配置文件。

划分到一个配置文件的权限可以直接指定给用户。也可以通过创建称为角色的特殊帐户间接指定这些权限。然后用户可以承担一个角色,完成需要部分管理特权的工作。Oracle Solaris 提供了许多预定义的权限配置文件。您可以创建角色并指定相应的配置文件。

ARMOR 软件包提供了一组标准化角色。通过自动安装此软件包,并将角色指定给用户,您可以创建在引导时就职责分离的系统。有关更多信息,请参见 Authorization Rules Managed On RBAC (ARMOR)(基于 RBAC 管理的授权规则 (ARMOR))、遵循选择的权限模型以及Example 3–1

权限配置文件可以提供广泛的管理权限。例如,"System Administrator"(系统管理员)权限配置文件允许帐户执行与安全无关的任务,如打印机管理和 cron 作业管理。也可将权限配置文件定义为提供限定功能。例如,"Cron Management"(计时程序管理)权限配置文件可管理 atcron 作业。创建角色时,可以为这些角色指定广泛管理权限或有限权限。

下图说明了 Oracle Solaris 如何通过创建角色将权限分配给多个 trusted users(可信用户)。超级用户也可以通过将权限配置文件直接指定给可信用户来分配权限。

图 1-1  权限分配

image:图中显示了表示权限的密钥。担任执行不同功能的角色的用户指定有不同密钥。

在图示的权限模型中,超级用户创建了三个角色。这些角色基于权限配置文件。然后,超级用户会将这些角色指定给可以执行角色任务的可信用户。这些用户使用自己的用户名进行登录。登录之后,用户将承担可以运行管理命令和图形用户界面 (graphical user interface, GUI) 工具的角色。

    由于可以灵活地设置角色,因此可实现各种安全策略。尽管 Oracle Solaris 附带的角色很少,但是可以轻松配置角色。Example 3–1 显示如何使用基于 ARMOR 标准的用户角色。要补充或替代 ARMOR 角色,可以基于 Oracle Solaris 提供的权限配置文件创建自己的角色。

  • root-等效于 root 用户的功能强大的角色。但是与所有角色一样,root 角色无法登录。一般用户必须先登录,再承担指定的 root 角色。缺省情况下,该角色配置并指定给初始用户。

  • System Administrator(系统管理员)-可执行与安全性无关的管理任务的角色,其权力相对较弱。此角色可以管理文件系统、邮件以及软件安装,但是不能设置口令。

  • Operator(操作员)-可执行备份和打印机管理等操作的初级管理员角色。


    注 -  "Media Backup"(介质备份)权限配置文件提供对整个根文件系统的访问权限。因此,面向初级管理员设计 "Media Backup"(介质备份)和 "Operator"(操作员)权限配置文件时,必须确保用户可信。

可能还希望配置一个或多个安全角色。三个权限配置文件及其补充的配置文件处理安全性:信息安全、用户安全和区域安全。网络安全是信息安全权限配置文件中的补充配置文件。

请注意,不一定要实施角色。角色是一种满足组织安全性需要的功能。一种策略是为安全、网络或防火墙管理等领域中的特殊用途管理员设置角色。另一种策略是创建一个功能强大的管理员角色以及一个高级用户角色。高级用户角色将用于那些获许修复其自己的系统部分的用户。您也可以直接为用户指定权限配置文件,而不创建任何角色。

超级用户模型与权限模型可以共存。下表汇总了权限模型中可以存在的各个等级(从超级用户到受限的一般用户)。该表包含可以在这两种模型中跟踪的管理操作。有关进程权限(即特权)作用的概述,请参见Table 1–2

表 1-1  超级用户模型与权限模型的对比
系统上的用户功能
超级用户模型
权限模型
是否可成为具有完全超级用户特权的超级用户
可以
可以
是否可作为具有完全用户权限的用户登录
可以
可以
是否可成为具有有限权限的超级用户
不可以
可以
是否可作为用户登录,有时具有超级用户特权
可以,仅限 setuid root 程序
可以,使用 setuid root 程序和权限
是否可作为具有管理权限的用户登录,但是不具有完全超级用户特权
不可以
可以,使用权限配置文件、角色以及使用直接指定的特权和授权
是否可作为权限少于一般用户的用户登录
不可以
可以,通过删除权限
是否可跟踪超级用户操作
可以,通过审计 su 命令
可以,通过审计对 pfexec() 的调用
另外,审计迹中会出现已经承担 root 角色的用户的名称