了解AIX高级特性: 简便的基于角色的访问控制

简介

过去,由单一用户(root 用户)控制系统的安全机制。root 用户决定谁可以登录、谁可以访问数据 、哪些进程有权进入内核模式等。但是,单一 root 用户的缺点是,如果未经授权的人控制了根用户,系 统就非常容易受到攻击。

为了避免这个问题,AIX 的最新版本(5.3TL07 和 6.1)引入了 RBAC 和多级安全性 (MLS) 等新的安 全特性,还在传统的基于 root 用户的身份验证中增加了其他特性,比如 Trusted Execution (TE)、 Encrypted File System (EFS) 等。

本文通过示例解释如何理解和应用 RBAC 和 MLS 等新特性。

安全管理概述

传统机制

RBAC

传统机制

可以使用 DAC(Discretionary Access Control,自主访问控制)控制对数据的访问(按进程/文件关 系)。但是,具有所有特权的 root 用户是单一用户。 root 用户可以进行任何访问控制和执行任何操作 。这可能造成严重的安全威胁。

另外, root 用户常常担任系统管理员、安全官(维护安全策略)和系统操作员(执行日常活动)等 许多职位。由单一用户控制系统,其他用户完全无法控制系统中的活动。

RBAC 可以把 root 用户的角色和授权分配给多个用户。本文解释 RBAC 如何改进系统的安全性。

RBAC

传统的 AIX 系统具有有限的授权集,可以使用它们决定对某些管理命令的访问。下面的示例显示 passwd 命令就是一个 setuid 程序,setuid 程序有权作为非 root 用户执行。它还能够作为非 root 用 户修改 /etc/security/passwd 文件。DAC 不允许这么做。

passwd 命令等 setuid 程序

$ ls -l 'which passwd'
-r-sr-xr-x  1 root   security   40014 May 07 2008 /usr/bin/passwd

# ls -l /etc/security/passwd
-rw-------  1 root   security    467 Mar 10 23:48  /etc/security/passwd

这会导致严重的风险,任何人只要通过恶意的 setuid 程序控制了 root shell,就能够做任何事。

在 AIX 第 6 版之前, root 用户的部分权力可以分配给非 root 用户。不同的 root 用户任务(命 令)具有不同的授权。这些授权分组为角色并分配给不同的用户:

任务 -> 授权

授权 -> 角色

角色 -> 用户

但是,root 用户仍然是惟一的最高权威。能够访问 root 用户的人可以做任何事。

时间: 2024-12-05 17:08:31

了解AIX高级特性: 简便的基于角色的访问控制的相关文章

AIX中基于角色的访问控制,第1部分

简介:在本系列文章中,我们将向您陆续介绍并和您一起讨论基于角色的访问控制(Role Based Access Control)的相关内容.作为 AIX 6 的安全新特性,RBAC 为用户提供了细颗粒度的,更加灵活的 安全管理方法.本文是摘自 IBM 红皮书<AIX V6 Advanced Security Features Introduction and Configuration>. AIX V6 和基于角色的访问控制 (RBAC) AIX V6 引入了增强 RBAC,即向一个或者多个普通

AIX中基于角色的访问控制,第3部分

保护 root 用户的安全 下面的部分将介绍在增强的 RBAC 模式中运行时如何禁用 root 用户. 选择保护 root 用户的安全 当 AIX 系统运行于增强的 RBAC 模式时,可以对系统进行相应的配置,从而使 root 用户不具有超级 用户权限,并且将其禁用,以至使 root 用户帐号失去登录权限. 通常在 AIX 中,root 用户的 UID 值为 0,操作系统将其作为一种特权 UID,并允许 root 用户绕过 强制的安全检查.通过禁用 root 用户,可以有效地删除这些操作系统检查

AIX中基于角色的访问控制,第2部分

用户定义的角色 在这个部分中,我们将介绍用户定义的角色. 对用户定义的角色进行规划 正如我们在第 1 部分"RBAC 中的预定义角色"中所讨论的,AIX V6 中包括三种预定义角 色.这些预定义角色为划分管理职责提供了一种建议的方法. 可以对这些预定义角色进行修改或者删除,对于不同的环境,也可以创建一些合适的.新的角色. 注意:ISSO.SA 和 SO 角色由 Trusted AIX 使用.如果您的环境中包括 Trusted AIX,那么您可能 会希望通过使用用户定义的角色来自定义您的

AngularJs实现基于角色的前端访问控制

Github 项目地址 https://github.com/zgljl2012/angular-permission 最近做的项目是使用Angular做一个单页应用,但因为用户有不同的角色(管理员.编辑.普通财务人员等),所以需要进行不同角色的访问控制. 因为后端访问控制的经验比较丰富,所以这里只记录了前端访问控制的实现.请注意,前端最多只能做到显示控制!并不能保证安全,所以后端是一定要做访问控制的! 基于角色的访问控制需要做到两个层面的访问控制: 控制页面路由的跳转,没有权限的用户不能跳转到

AngularJs基于角色的前端访问控制的实现_AngularJS

最近做的项目是使用Angular做一个单页应用,但因为用户有不同的角色(管理员.编辑.普通财务人员等),所以需要进行不同角色的访问控制. 因为后端访问控制的经验比较丰富,所以这里只记录了前端访问控制的实现.请注意,前端最多只能做到显示控制!并不能保证安全,所以后端是一定要做访问控制的! 基于角色的访问控制需要做到两个层面的访问控制: 控制页面路由的跳转,没有权限的用户不能跳转到指定url 页面元素的显示控制,没有对应权限的用户不能看到该元素 但在此之前,我们还有一项重要的事要做. 存储用户信息

AngularJs 实现基于角色的前端访问控制

最近做的项目是使用Angular做一个单页应用,但因为用户有不同的角色(管理员.编辑.普通财务人员等),所以需要进行不同角色的访问控制. 因为后端访问控制的经验比较丰富,所以这里只记录了前端访问控制的实现.请注意, 前端最多只能做到显示控制!并不能保证安全,所以后端是一定要做访问控制的! 基于角色的访问控制需要做到两个层面的访问控制: 控制页面路由的跳转,没有权限的用户不能跳转到指定url 页面元素的显示控制,没有对应权限的用户不能看到该元素 但在此之前,我们还有一项重要的事要做. 存储用户信息

goRBAC —— Go 语言基于角色的权限控制框架

goRBAC 为 Go 语言应用提供了轻量级的基于角色的访问控制. 该包适用于: * 实体具有一个或多个角色 * 角色需要分配权限 * 权限需要分配给角色 因此,RBAC 具有以下模型: * 在实体和角色之间具有多对多关系 * 在角色和权限之间具有多对多关系 * 角色可以具有父角色(权限继承) 示例代码: import github.com/mikespook/gorbac rbac := gorbac.New() rbac := gorbac.NewWithFactory(YourOwnFac

ASP.NET基于角色的窗体安全认证机制

asp.net|安全 说明:两个月前我刚学 ASP.NET, 在 codeproject.com 看到题目叫 Role-based Security with Forms Authentication 的文章,觉得很有帮助.当时就想翻译成中文.不过直接翻译实在没意思,这两天我参照 Heath Stewart的这篇文章,并且根据自己的理解,把它按照自己的想法和表达方式写成中文.附带上自己为这篇文章做的一个演示的web应用程序. 如果有理解错误的地方,欢迎来信指出或发表评论. 概要: ASP.NET

PHP高级特性讨论之邮件相关

高级 邮件发送和收取是目前网上交流最为重要的途径之一,我们当然很希望自己的PHP程序也能够实现某些商业网站注册程序中采用的方法,即通过邮件方式进行密码(或激活码)发送和资料确认.另一方面,这种方式也是一种反馈用户信息的有效途径.当然,要实现这些功能是离不开邮件服务器的,目前比较流行的Mail服务器(更准确的说是邮件传输代理MTA)有:sendmail.qmail.postfix.至于如何配置其中的pop.smtp.imap等服务已经超出这篇文章的范围,读者可以参考其他这方面文章.那么好了,我们究