使用角色访问控制让Solaris服务器更安全

【使用角色访问控制让Solaris服务器更安全】 一、角色的概述 对于传统的Unix安全性模型,超级用户拥有完全的超级用户特权,而其他的用户没有足够的权限解决他们自己的问题 。有了基于角色的访问控制(RBAC),便可以取代传统的安全模型 。有了RBAC,可以将超级用户的能力分成不同的包,并将它们分别分配给分担管理任务的个体 。当使用RBAC划分超级用户特权时,用户可以拥有不同程度的访问权限,可以控制对其他用户特权操作的授权 。RBAC包括了如下特性 。
1、角色:一种特殊类型的用户账号,可以用来执行一套管理任务 。
在默认情况下,Solaris 支持3种不同的系统管理角色 。
主管理员(PA,Primary Administrator):负责为其他用户分派权限,并负责系统的安全问题 。等效于root 用户或超级用户的功能强大的角色 。
系统管理员(SA,System Administrator):负责与安全无关的日常管理工作 。
操作员(Operator):执行备份和设备维护操作 。
PA和SA之间的区别主要取决于本地的安全策略 。例如,尽管默认的PA角色具备添加用户和修改口令的权限,而默认的SA角色并不具备修改口令的权限,但在很多地方,禁止SA的口令访问可能是不现实的 。RBAC的一个最大的好处就是它可以按照本地的需求非常方便地分配权限 。
2、特征文件(profile):一种打包机制,用特殊的属性将授权和命令分组 。例如,使用用户和组的ID 。
特征文件是用于授权的一个或一组特定的命令 。这些授权连接在一起形成某个角色,并随后与某个用户或某些不同的用户建立关联关系 。我们可以为每个角色创建一个新的用户账号,这些账号拥有自己的主目录和口令 。当执行特征文件中的命令时,用户必须使用su命令进入角色账户,因为这种角色用户是不允许直接登录的 。通过su命令访问角色账户与通过su命令访问普通账户的一个不同之处在于它们的审计功能,即在通过su命令访问某个角色时,它执行的所有操作,连同用户的原始UID都会被记入日志 。这样,每个访问角色的用户操作都会被明确地记入日志并进行审计 。
3、授权:一种用来授予对受限功能的访问权限的权利 。
授权,就是赋予某个角色执行某项操作的特权,它是在/etc/security/auth_attr文件中定义的 。授权的定义形式与Internet的域名非常相似,它的最左边为企业名称,随后是依次细化的软件包和功能内容 。在默认情况下,所有Solaris提供的软件包都是由前缀Solaris来加以识别的 。比如,修改口令的授权就是Solaris.admin.usermgr.pswd,许多授权的划分都是十分细致的,它可能只允许读访问,而不允许写访问,反之也是如此 。比如,主管理员(PA)可能拥有Solaris.admin.usermgr.read和Solaris.admin.usermgr.write的授权,因而可以对用户配置文件分别进行读访问和写访问操作 。而系统管理员(SA)虽然可能拥有Solaris.admin.usermgr.read授权,但他并没有Solaris.admin.usermgr.write的授权,因此他可以读用户配置文件,但不能写 。
二、RBAC的图形模型
在现实生活中经常提到某人扮演了什么角色 。在基于用户角色的用户权限管理中,角色与实际的角色概念有所不同 。在这里角色可以看作是一组操作的集合,不同的角色具有不同的操作集,这些操作有系统管理员分配给角色 。图1是RBAC的模型 。
图1 RBAC的模型
角色、权限配置文件和授权的关联如图2所示,授权和命令的定义关联起来构成了权限配置文件,该权限配置文件再分派给不同的角色用户来使用 。
图2 角色、权限配置文件和授权的关联
在RBAC 中,将角色指定给用户 。用户承担某种角色时,便可使用此角色的功能 。角色从权限配置文件中获取其功能 。权限配置文件可以包含授权、特权命令以及其他补充权限配置文件 。特权命令是指那些使用安全属性执行的命令 。图3 使用操作员角色、操作员权限配置文件以及打印机管理权限配置文件来说明RBAC的各种关系 。

推荐阅读