selinux概述
SELinux( Security Enhanced Linux 安全性增强的Linux),由美国国家安全局NSA(National Security Agency)开发,构建与Kernel之上,拥有灵活的强制性访问控制结构,主要用在提高Linux的安全性,提供强健的安全保证,可以防御未知攻击,据称相当于B1级的军事安全性能(信息安全评估标准)!
信息安全评估标准:4类(D,C,B,A),7个级别:D,C1,C2,B1,B2,B3,A
Selinux已经整合到了2.6的Kernel以上的版本中 uname -r
传统的Linux在没有Selinux保护的时候,倘若运行于之上的服务器被骇客攻陷,其服务器最高权限就可能随之丧失,但是倘若有了SElinux的保护,入侵的也只有服务本身,整个服务器的最高权限依然还健在!
一句话熟悉Selinux的作用:增强Linux系统安全性,一个例子:那么是我运行的Apache服务器被入侵,也只是入侵到了我httpd这个服务,可以把它禁锢到这里(相当于整个服务器运行了httpd,入侵了httpd而已),而系统的整个权限依然正常!
1. Selinux特点
(1) MAC(Mandator Access Control),对访问控制彻底化,对所有的文件,目录,端口的访问,都是基于策略设定的,这些策略都是由管理员设定的,一般用户无权限管理和更改
(2) RBAC(Role Base Access Control),对用户只赋予最小权限,对于用户来说,被划分一些role,即使是root用户,你要是不在sysadm_r里,也不能实行sysadm_t的管理操作
(3) TE(Type Enforcement),对进程只赋予最小运行权限,TE的概念在SElinux中非常重要,其特点是对文件赋予一个叫type的标签类型,对进程赋予一个叫domain的标签,可以规定某个标签进程只能执行某类文件,例如:
进程vim,只可以读标签为T1的文件
a.txt T1 b.txt T2
2. selinux 的执行模式
enforcing 强制模式,只要selinux不允许,就无法执行;
permissive 警告模式,你可以执行,但你所做事件全部记录;
disabled 关闭selinux
Selinux工作原理
Subject进程你要干嘛,你得问selinux, 那selinux去读一下数据库,按规则你不能执行或能执行。
[root@xuegod63 ~]# rpm -qa | grep selinux #selinux相关软件包,默认已经安装
libselinux-utils-2.0.94-5.3.el6_4.1.x86_64
libselinux-devel-2.0.94-5.3.el6_4.1.x86_64
selinux-policy-3.7.19-231.el6.noarch
libselinux-python-2.0.94-5.3.el6_4.1.x86_64
selinux-policy-targeted-3.7.19-231.el6.noarch
libselinux-2.0.94-5.3.el6_4.1.x86_64
[root@63 ~]# ls /etc/sysconfig/selinux #配置文件位置
[root@63 ~]# getenforce #查看当前selinux的运行状态
[root@63 ~]# vim /etc/sysconfig/selinux #编selinux配置文件,启用selinux
SELINUX=enforcing #启用selinux,启用了Selinux需要重启系统,初次开启,需要更新文件标签,时间较久
2 Selinux状态切换
[root@63 ~]# setenforce 0 #enforcing切换为permissive状态
[root@63 ~]# getenforce
Permissive
[root@63 ~]# setenforce 1 #permissive切换为 enforcing
[root@63 ~]# getenforce
Enforcing