SELinux 介绍

SELinux 介绍

1.SELinux背景

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux 上最杰出的新安全子系统.NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下.进程只能访问那些在他的任务中所需要文件.SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上.也可以作为其他发行版上容易安装的包得到.


2.SELinux运作方式

SELinux是通过MAC的方式来控管程序,它控制的主体是程序,而目标则是该程序是否读取文件.
主体(Subject):SELinux控制的是主体是程序,也就是process;
目标(Object):主体程序是能存取目标资源,目标通常是文件;
策略(Policy):由于程序与文件都很多,因此,SELinux会依据某些服务来制定基本的存取安全性策略,这些策略内会有详细的规则来指定不同的服务开放某些文件存取.

RHEL6里面提供了两个主要策略,分别是targeted与strict.


策略在/etc/selinux/config里面配置策略.

SELINUXTYPE : Targeted针对网络服务配置比较多,而针对本机限制较少,是默认的策略;strict是完整的SELinux限制,限制方面较为严格.

SELINUX : enforcing   开启selinux

                    permissive  开启selinux,但不具有selinux的约束性.只会出现警告.

                    disabled  关闭selinux


3.文本的安全性

我们用httpd服务来做实验.

a.对文件的操作

这个重点看第三列,用冒号隔开的列 . httpd_sys_content_t(其余的都是些身份和角色的信息.不重要.能否访问这个文件.就是看第三列了)

这一列在文件或目录里面称之为类型(type).


b.对进程的操作

 

这个是进程httpd的进程.同样也是看第三列(用冒号隔开的列) httpd_t .

这一列在进程里面称之为域(domain).

所以.只有进程里面的域(domain)对应到文件或目录的类型(type)才能有权限访问.

# 所以,这样对应selinux的权限范围内就可以访问这个页面了.

那么.我们怎么知道什么域跟什么类型能够对应呢.


例如1:

  httpd的域对应什么类型呢.

  可以用[root@Alex01 html]# man http_selinux 参看

 

例如2:

  可以通道setroubleshoot工具来才看.

  [root@Alex01 html]# yum install setroubleshoot            # 首先安装它.

  这时,就可以用[root@Alex01 ~]# tail -f /var/log/messages 来查看日志信息了(必须安装setroubleshoot,才会有selinux的日志信息)

  现在我把index.html的文本上下文的类型改一下.

  改成:

    

这时去登录这个页面...就会发现无法访问...


在/var/log/messages日志里面就可以看到.(可以用cat /var/log/messages | grep setroubleshoot 来筛选)


看到红色方框里面的东东然后复制出来运行.


[root@Alex01 ~]# sealert -l 29769430-ccd1-40c3-b781-b1c88e60dadd

可以看到这个httpd域对应的文本安全性的类型是httpd_sys_content_t


PS:这个文本类型有有继承关系.子目录或文件继承父目录的文本类型.


4.SELinux命令介绍

[root@Alex01 ~]# getenforce            # 参看当前selinux是否开启



[root@Alex01 ~]# setenforce 0      # 设置selinux状态        0 为:  permissive   , 1为:enforcing  


[root@Alex01 ~]# chcon -vt httpd_sys_content_t /var/www/html/index.html                                  # 改变文本安全性

                                                                                                                                                                       # -t 代表改变类型

                                                                                                                                                                       # -u代表改变身份                                  

                                                                                                                                                                       # -r 代表改变较色

                                                                                                                                                                      # -R 连同目录下面的一起改


[root@Alex01 html]# restorecon -Rv /var/www/html/index.html       # 还原selinux . 如果,你修改过文本安全性.现在想还原回来.

                                                                                                                     # 用这个命令简单了 . 直接还原


[root@Alex01 html]# sestatus                                                              # 参数 selinux的状态


5.SELlinux的布尔值

这个布尔值代表进程是否有权限访问这个文件.

例如:

[root@Alex01 alex123]# getsebool -a | grep httpd

on 就表示,有权限访问某个文件,

off 就是不能访问咯..


设置bool值 .



这个比文本上下文的类型还要先判断.

SELinux先判断文件的布尔值--> 文本的上下文类型--> 文件的-rwo------的文件权限.都通过了.才能访问.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值