30. SELinux

SELinux (Security Enhanced Linux),安全强化的 Linux 。
其实 SELinux 是在进行持、文件等权限设置依据的一个内核模块。由于启动网络的也是持续,
因此刚好也是能够控制网络服务能否访问系统资源的一道光卡。
传统的文件权限与账号关系:自主访问控制,DAC : 
  各种权限设置对 root 无效。因此当某个进程想要对文件进行访问时,系统会依据该进程的所有者/用户组,
  并比较文件的权限,若通过权限检查,就可以访问文件了。这种访问文件系统的方式称为
   “自主访问控制”(Discretionary Access Control,DAC)。基本上,就是依据进程的所有者与文件资源的 
   rwx 权限来决定有无访问的能力。

这个有几个困扰:
    root 具有最高权限;
    用户可以取得进程来更改文件资源的访问权限
以策略规则制定程序读取特定文件:委托访问控制,MAC
  SELinux 导入了强制访问控制,Mandatory Access Control。可以针对特定的进程与
  特定的文件资源来进行权限的控制。

SELinux 通过 MAC 的方式来管控进程,它控制的主体是进程,而目标则是该进程能否读取的 "文件资源"。

主体(Subject):SELinux 想要管理的就是进程。

目标(Object):主体进程能否访问的 "目标文件"一般就是文件系统。因此这个目标项目可以与文件系统划伤等号。

策略(Policy):由于进程与文件数量庞大,因此 SELinux 会依据某些服务来制定基本的访问安全策略。
这些策略内还会有详细的规则(rule)来指定不同的服务开放某些资源的访问与否。
目前CentOS 里面主要提供2个策略,分别是:
targeted:针对网络服务的限制比较多,针对本机限制比较少,是默认的策略
strict:完整的 SELinux 限制,
限制方面较为严格。

上下文安全(security context):主体能不能访问目标除了策略指定之外,主体与目标的安全上下文必须一致才能顺利访问。
有点类似于文件系统的rwx。
安全的上下文存放在 i-node 里面,因此主体进程想要读取目标文件资源时,同样需要读取i-node,
这 i-node 内就可以比较安全上下文以及 rwx 等权限值是否正确。

这里写图片描述

使用 ls -Z 查看

这里写图片描述

安全上下文主要用冒号分为三个字段:
Identify:role:type
身份识别:角色:类型

身份识别(Identify):相当于账号方面的识别,常见类型:
  root:表示 root 的账号身份
  system_u:表示系统程序方面的识别,通常就是进程
  user_u:表示一般用户账号相关的身份
除了 root 外,其他都带有 _u 的字样。这个身份标示重点在于让我们了解该数据为何种身份所有。
而系统上面大部分数据都是sysmtem_u或root。至于如果是在 /home 下面的数据,那么大部分是 user_u。


角色(Role):通过角色我们可以指定这个数据是属于程序,文件资源还是代表用户。
  object_r:代表是文件或目录等资源
  system_r:代表的是进程,不过一般用户也会被指定成 system_r


类型(Type,最重要):在默认的targeted策略中,Identify 与 role 字段基本上是不重要的。
重要的是类型(Type)。一个主体进程能不能读到这个文件资源与类型字段有关。而类型字段在文件与进程的定义不太相同:
  type:在文件资源(Object)上面称为类型(Type)
  dommain:在主体程序(Subject)中则称为域(domain)
  domain 需要与 type 搭配,则该程序才能够顺利你读取文件资源。


进程与文件 SELinux type 字段的相关性:

这里写图片描述

主体与目标之间是否具有可读写的权限与 进程的 domain 以及文件的 Type 有关。

这里写图片描述


SELinux 的启动,关闭,查看

SELinux 模式:
  enforcing:强制模式
  permissive:宽容模式
  disabled:关闭


getenforce 查看什么模式

sestatus 查看策略

这里写图片描述
这里写图片描述


ps aux -Z // ps -Z 查看进程的安全上下文

重置安全上下文:
chcon [-R] [-t type] [-u user] [-r role] 文件
chcon -t httpd_sys_content_t /var/www/html/index.html
ll -Z /var/www/html/index.html

restorecon [-Rv] 文件或目录 //默认的安全上下文还原
当发生 SELinux 错误,记录错误信息:

setroubleshoot: 将错误信息写入/var/log/messages

auditd:将详细数据写入 /var/log/audit/audit.log
SELinux 的策略和规则管理:

策略查询:
seinfo [-Atrub]

想要知道详细规则时:
sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]

http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100444.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值