SElinux 学习笔记一
2015-09-11 15:31
561 查看
SElinux学习笔记 一
2015-09-11SElinux的安全上下文格式:
user:role:type
其中各种标识符是正交的,即允许使用相同的标识符
查看标示符:使用 “-Z” 例如:
ps -Z
id -Z
ls -Z
与标准linux的安全属性对比 :
标准Linux安全中的user以及group ID是与内核联系起来的,内核通过一系列的控制方法(包括登入过程以及setuid机制),对于文件来说,inode中就含有一串访问模式位以及userID和group ID,其中,前者提供RWE的权限控制,分别对应owner、group、else集合,后者决定文件的所有者以及所属组别,用来在访问判断时去匹配前者的不同集合。SElinux中,则是使用上述的安全上下文来作为访问控制位,所有的主客体都必须关联一组安全上下文,就像标准的Linux安全通过进程的user/group ID,文件的使用集合以及文件的user/group ID来通过或者拒绝进程对文件的访问,SElinux就是通过安全上下文来判断一个进程对客体的访问,更为重要的是,由于SElinux最主要的访问控制手段是类型强制(TE:type enforcement),所以,安全上下文的类型标识符就是用来决定访问权限的。
值得注意的是,SElinux只是在标准的Linux安全下加入了TE,这就表示在访问某一客体时,SELinux跟Linux的访问控制是同时生效的,即,即使拥有了SElinux对于某一客体的写权限,如果没有Linux中的
w权限,也是没有办法写的,反之亦然。
SElinux安全上下文的特殊点
类型(type)标识符是安全上下文中最主要的进程(process)的类型常被称为域(domain)或者域类(domain type)
domain、domain type、subject type、process type都可以用来表示进程类型
用户(user)、角色(role)标识符在TE中几乎没有什么影响(除了约束强制?),在进程中,这两种标识符是用来维系类型集与用户标识集(关联于Linux用户账户),对于客体,这两者几乎没什么用,所以,大部分的客体角色都是
obeject_r,用户通常都是生成这些客体的进程的用户标识符。
Linux中的user ID及SElinux 中的user标识符是不同的,技术上来说,他们是正交的,被分别运用在标准linux以及SELinux访问控制机制中的,其两者的联系方式是由登录进程通过一系列约定严格规定的,而不是直接由SElinux的安全策略所强制实施。
TE (Type Enforcement)
SElinux的默认规则是拒绝(no access by default) – 无视linux的用户/组通过
allow语句授权某一主体类型(域)对某一客体类型的访问:
allow source_type target_type : object_class {permissions}
source_type :一般是尝试访问进程的域
target_type :一般是进程访问的客体类型
object_class : 说明被允许访问客体的种类(class)
permissions :具体的访问种类
例:
allow user_t bin_t : file {execute read getattr}
file是在策略中定义的的客体类
permissions是策略中客体类定义的permissions的一个实例化子集
getattr显示了SElinux比Linux更加细粒度的控制,因为在linux中,即使某个用户仅有某文件所在文件夹的搜索权限,依旧可以读取出该文件的访问控制信息
另外
_t并没有什么重要性的,只是约定惯例
passwd例子理解
/bin/passwd是用来修改
/etc/shadow文件使用的程序
SElinux是为了保证无论什么用户都只能通过passwd来修改shadow文件
原本的Linux是通过setuid程序来实现对shadow文件的修改,即,拥有Root Uid 的程序都可以来修改shadow文件,这是非常不安全的做法
SElinux实现了所有修改密码(shadow文件)的权限过滤(什么用户能修改什么用户的密码)只由passwd文件来实现,即使拥有root身份,不使用passwd程序来访问也是没有办法修改密码的,而对于其他用户,同样可以通过passwd来修改密码,但是能够修改什么密码就需要passwd程序通过相关的安全上下文来判断了
这样就保证了在passwd程序不出问题的前提下,其他大部分程序出问题(即使setuid程序)shadow文件的更改是可控的
注意:passwd能访问shadow的权限必须是root+SElinux规则允许,两者缺一不可
《SElinux By Example Using Security Enhanced Linux》 By Frank Mayer,Karl MacMillan,David Caplan
相关文章推荐
- Linux搭建DNS服务器
- centos 一键安装jdk
- 0911_Linux命令整理
- 虚拟机centos6.5 --VirtualBox设置全屏
- 深入理解linux内核poll机制
- centos安装与配置dhcp服务
- linux终端nohup置空
- sed one line
- Linux中替换文本中的字符串
- awk one line(老文章了,新老Administrator都用得到其中部分)
- python图像处理环境配置(linux+windows)
- 把windows目录挂载mount到linux下,非root用户没有写权限解决方法
- Linux学习之五——压缩与备份
- linux 监控软件
- virtualbox centos安装增强工具
- Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
- Linux CentOS PXE+Kickstart
- 阿里云centos+ngnix+mysql配置相关事项
- linux下vim对于意外退出的文档的再次开启
- centos下MySQL升级