码迷,mamicode.com
首页 > 系统相关 > 详细

selinux

时间:2016-04-19 00:46:08      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:linux   selinux   

   SELinux的全称是Security Enhanced Linux, 就是安全加强的Linux。在SELinux之前,root账号能够任意的访问所有文档和服务;如果某个文件设为777,那么任何用户都可以访问甚至删除;这种方式称为DAC(主动访问机制),很不安全。

   DAC 自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。

   SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。

在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户(u)、角色(r)和类型(t)标识符。但我们最关注的是第三个部分,标识符。

   当程序访问资源时,主体程序必须要通过selinux策略内的规则放行后,就可以与目标资源进行安全上下文的比对,若比对失败则无法存取目标,若比对成功则可以开始存取目标,最终能否存取目标还要与文件系统的rwx权限的设定有关。


1、Selinux状态查看与配置:

Selinux的配置文件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux

使用config文件来配置selinux(通过配置文件修改selinux的状态属于永久修改,要重启系统才生效)

技术分享

文件内容如下图:

技术分享

SELINUX=enforcing
#此项定义selinux状态。
#enforcing—是强制模式系统受selinux保护。
就是你违反了策略,你就无法继续操作下去
#permissive—是提示模式系统不会受到selinux保护,只是收到警告信息。
permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来(警告信息)
#disabled—禁用selinux。

SELINUXTYPE=targeted
#此项定义selinux使用哪个策略模块保护系统。targeted只对apache ,sendmail, bind,postgresql,nfs,cifs等网络服务保护。

以上策略配置都放置在/etc/selinux目录中,目录和策略名称相同


使用selinux相关命令查看和修改状态:(属于立即生效但临时性的)

a、sestatus 查询selinux工作状态

技术分享

b、selinuxenabled检查selinux是否开启,配合echo $?.传回值是0为开启,1为关闭

技术分享

c、getenforce查看selinux的状态

技术分享

d、setenforce设定selinux运行状态,1开启(Enforcing),0关闭(Permissive)

技术分享


2、查看安全上下文相关命令

查看文件上下文可以通过ls -Z技术分享

查看进程上下文可以使用 ps Z

技术分享

查看用户上下文可以用id –Z技术分享

安全上下文以用户:角色:类型(域)标识符的形式出现.(这里的用户指的是selinu用户)


3、以下是复制和移动文件时安全上下文的变化:

以httpd为例,这个httpd的进程可以访问/var/www/html下的文档对象

在/root目录下创建两个测试页文件(如test1.html、test2.html技术分享

复制test1.html文件到/var/www/html目录下,剪切test2.html文件到/var/www/html目录下技术分享

查看html目录下文件的安全上下文

技术分享

通过上图可以看到剪切操作时文件的上下文没有发生改变,仍然是原上下文,而复制操作时文件的上下文继承了目标目录的上下文。

通过浏览器访问这两个网页文件

技术分享技术分享

可以看到test1.html页面能访问而test2.html却被拒绝访问

查看权限发现apache用户对这两个文件都具有r权限,但test2.html文件却拒绝访问

技术分享

原因就是因为httpd进程不能访问域类型标签是admin_home_t的资源,被selinux将访问拒绝了。

通过日志记录也能看到test2.html文件拒绝httpd进程访问


技术分享

selinux

标签:linux   selinux   

原文地址:http://928004321.blog.51cto.com/10707688/1765123

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!