系统管理:权限控制与ROOT

更新中…

题1 传统UNIX 权限控制

UNIX系统在设计早期坚持权限设计简单。传统UNIX权限控制特点至今在沿用,以下列举几个基本特征

特征说明备注
控制对象文件 进程对象owner拥有广泛的操作权限
创建对象新创建的对象owner为创建者
root用户root用户可以扮演任何用户的owner
系统管理只有root用户可以进行系统管理操作

文件权限
jianleya@ubuntu:~/lab$ ls -al
-rw-rw-r-- 1 jianleya jianleya 110 Oct 14 23:55 file
-rw-rw-r-- 1 jianleya jianleya 144 Oct 14 23:55 new

进程权限
进程有6个属性基本ID:(详细参见进程管理一节)
a real,effective,and save UID;a real , effctive and saved GID
real ID 和GID用户身份验证
effective ID 和GID用于权限验证(通常real ID和effective ID是相同的)EGID(primary group )和用户组关系列表决定文件的访问权限。GID却很少用到,有的系统上创建新文件时可能会使用GID为文件所属用户组
Saved ID 和GID并没有得到直接的作用

超级用户
超级用户又名root用户,在UNIX系统中是UID定义为0(通常系统并不禁止定义其它UID为0的用户,但是无疑这是一个十分糟糕的做法)

传统UNIX允许超级用户(that is, any process whose effective User ID is 0)对任何文件进行任何操作
root用户通常具有如下列举的特权

  • 通过chroot命令,改变根目录
  • 创建设备文件
  • 设置系统时钟
  • 修改资源上限和进程优先级
  • 设定主机名称
  • 配置网络接口
  • 打开需要授权的网络端口
  • 关机/重启

root用户一项有趣的特权是改变进程的UID GID. login 程序初始状态一般是root身份运行,用户键入的用户名和口令匹配时,修改自身UID和GID-----降级成为普通用户

设计评价
传统UNIX权限设计使用几页文档即可描述清楚,并且经受了时间的考验。它简洁,可预测,可以胜任大多数权限应用。
所有的UNIX和Linux变种继续支持这一模型,并且是使用最广泛和默认的管理方式

题2 现代权限控制

传统UNIX权限管理缺点

  • 安全隐患,超级用户权限过大。root账户一旦被攻克,系统面临的伤害将不可控制
  • 对于设置seuid位的可执行程序(owned by root),因为权限提升为root,这些程序也应当仔细编写,避免安全漏洞。但是重新编写并自己维护系统管理相关的应用是不现实的。
  • 高度保密的环境,譬如美国政府要求禁止特权用户降低文档的使用权限(传统UNIX系统是无法满足这种要求的----文档的owner或者超级用户可以随意更改文件的权限)
  • 权限审计功能缺失 借助/etc/group 可以方便的了解用户属于哪些用户组,但是这些组赋予用户哪些权限却没有办法直接看到

现代权限管理设计

  • 基于角色的权限控制
    全称 Role-based access control,又称RBAC,1992年由David Ferraiolo and Rick Kuhn提出的理论模型。
    模型权限管理不再直接分派给User,而是检查User扮演的角色(role),系统首先枚举用户扮演的角色列表,然后检查是否存在一个角色具备操作权限
    过程上有点类似用户和用户组的关系,但相比用户组它的功能更加实用:

    1. 用户和用户组 模型只适用于对本地系统的资源权限管理,role却不限于此
    2. 角色和角色之间可以存在层级关系,这样大大简化的权限管理
    3. role机制分解超级用户权限为多个角色,大大降低root给系统带来的风险

    Solaris 系统利用groups(/etc/group) ,authorizations(/etc/security/auth_attr),profiles(/etc/security/prof_attr), 用户,授权,预置文件之间的绑定关系(/etc/user_attr)实现role。 支持的命令如:roleadd roledel roldmod
    2008年 5月,Open Solaris build 99 之后,Solaris 系统已经健壮到可以没有root用户
    HP-UX role管理工具如:roleadm authadm cmdprivadm privrun privedit
    AIX role管理工具如:mkrole chrole rmrole rolelist swrole

  • SELinux:安全升级型 Linux
    SELinux 2000年底开始的一个自由软件项目 NSA项目,集成到2.6内核版本,所以大多数当前发行Linux系统都支持该功能。有的发行版本使能了该功能(但是通常不在工作状态)
    SELinux的主要目的是实现“mandotory access control”,即手动权限控制。所欲的权限都由系统管理员指定,用户无权控制访问控制属性(这种系统通常也只有特殊场合和应用到)
    SELLinux也可以用来实现角色控制系统…

  • POSIX 能力(Linux)
    Linux 系统,理论上都可以将root账号的特权按照POSIX标准规定的能力进行进一步的细分。权限不仅可以指定给用户,同时可以指定给可执行程序,相对一种变向的setuid,不过风险更低。从实际使用情况看,该功能并不实用

  • PAM (身份验证)
    用来验证用户身份,而不是用来验证权限
    传统用户身份验证是用户键入用户名 密码,系统验证是否匹配
    PAM 全称 Pluggable Authentication Modules,PAM可以支持多种身份验证方式,网络验证,生物识别等。PAM本质上是一个库,而不是具体的身份识别算法。更具体的来说用户首先调用PAM的接口,然后PAM调用具体的身份验证接口,这个角度看PAM更像一个打包器

  • 权限控制列表 ACL
    传统文件系统权限由 用户/用户组模型,ACL是对该模型的文件系统的推广。
    目前有两种主要形式:一个是早期POSIX 草案标准,虽然一直没有正式批准,却得到广泛实现
    另一个是NFSV4,基于windows ACL来制定

权限控制 实际应用
  • 使用root账户登录
    root账户不会留下使用过的命令记录,系统被破坏后无从追查破坏系统执行过的命令
    如果有多个用户知道root口令,那么很难确认是谁使用root登录或什么时间
    一般系统除了控制台,都会禁止窗口系统,网络系统进行root登录
  • su 命令
    用户切换命令,需要输入目标用户的密码。虽然切换为root后不会记录root身份执行的指令,但是至少su指令会被记录在什么时间,由谁执行
    养成良好的习惯使用/bin/su或者 /user/bin/su 切换用户,因为有可能有恶意软件尝试窃取用户口令
  • sudo 命令
    sudo 解决了查明谁在使用,做了什么的问题
    sudo在当下的UNIX 或者Linux系统上都得到了很好的支持(即使Solaris基于RBAC系统,也实现了pfexec的命令拥有类似sudo功能)
    sudo 保留一个自己的log,用于解决记录谁在什么时间在哪台机器上进行什么操作的问题。通常记录在syslog或者logfile,logfile配置参考:logfile
    /etc/sudoers 配置参考链接:
  • root之外的伪用户
    root用户UID为0,一般用户UID一般从1000开始;UID小于10一般为系统账户,UID在10到100之间为伪用户
    特征:
    /etc/shadow 配置文件秘钥通常设置为 * , 表示禁止用户登录
    设置SHELL为/bin/fause /bin/nologin 禁止远程登录例如SSH
  • 口令保险柜
    su/sudo 解决的都是计算机系统账户的问题。随着不断涌现的新需求,口令保险柜成为一种新的口令登录形式:
  • 网页登录,路由器/防火墙,管理员远程服务
  • 计算机运算速度越来越快,破解简单口令越来越快,因此需要更加安全的口令系统
  • 用户登录需要一个可靠的系统跟踪记录,同一个账户只允许一个人登录,并且禁止root这类用户…
    口令保险柜实现
需求举例说明
个人使用,免费KeePass密码本地存储/有权限查看所有秘钥要么没有任何查阅权限/没有记录功能
企业使用,收费CyberArk根据用户来进行收费或者记录的密码数量来收费

本文整理自UNIX and Linux System Administration Handbook(4 Edition)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值