Selinux 概述
SELinux(Security Enhanced Linux 安全性增强的Linux),由美国国家安全局NSA开发,构建与Kernel之上,拥有灵活的强制性访问控制结构,主要用于提高Linux的安全性,提供强健的安全保证,可以防御未知攻击。
传统的Linux在没有Selinux保护的时候,倘若运行于之上的服务器被骇客攻陷,其服务器最高权限就可以随之丧失,倘若有了SElinux的保护,入侵的也只有服务本身,整个服务器的最高权限依然还健在。比如黑客入侵了Apache服务器,也只是入侵了httpd这个服务,可以把它禁锢到这里,而系统的整个权限依然正常。
Selinux特点
MAC (Mandotor Access Control) 对访问控制彻底化,对所有的文件,目录,端口的访问,都是基于策略设定的,这些策略都是由管理员设定的,一般用户无权限管理和更改。
RBAC(Role Base Access Control) 对用户只赋予最小权限,对于用户来说,被划分一些role,即使是root用户,你要是不在sysadm_r里,也不能实行sysadm_t的管理操作
TE(Type Enforcement)对进程只赋予最小运行权限,TE的概念在SElinux中非常重要,其特点是对文件赋予一个type的标签类型,对进程赋予一个叫domain的标签,可以规定某个标签进程只能执行某类文件,例如进程VIM ,只可以读标签为T1的文件。
Selinux的执行模式
enforcing #强制模式,只要selinux不允许,就无法执行
permissive #警告模式,你可以执行,但你所做事件全部记录
disabled #关闭selinux
Selinux工作原理
Subject(应用或进程)试图访问一个Object(文件),需要经过SELlinux,SELinux会查询策略数据库,允许或拒绝,拒绝的日志/var/log/messages
Selinux 配置文件及状态切换
vim /etc/sysconfig/selinux #编辑Selinux配置文件
SELINUX=enforcing #启用selinux,启用后需要重启系统,初次开启,需要更新文件标签,耗时。
getenforce #查看当前selinux的运行模式
setenforce 0 #切换为 permissive 警告模式
setenforce 1 #切换为 enforcing 强制模式