SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。

SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上。SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统(DAC,Discretionary Access Control自主访问控制系统是 Linux 的默认访问控制方式,也就是依据用户的身份和该身份对文件及目录的 rwx 权限来判断是否可以访问)。对于可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian或 Centos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略。

SELinux 控制的就不单单只是用户及权限,还有进程。每个进程能够访问哪个文件资源,以及每个文件资源可以被哪些进程访问,都靠SELinux 的规则策略来确定。举个例子:Linux系统中一应用A出现一漏洞,使得远程用户可以访问系统的敏感文件B,SELinux如果启用状态,SELinux发现A不具备访问B的权限,SELinux就会阻挡A对B的访问,这样就起到了保护Linux系统的作用。

SELinux有三种模式:

Enforcing:SELinux策略强制执行。

Pemissive:SELinux策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志

Disabled:完全禁用SELinux

SELinux状态查看;

命令:getenforce

 CentOS7.3学习笔记总结(三十四)_enforcing

三种模式的修改:

命令行:

 CentOS7.3学习笔记总结(三十四)_selinux_02

通过文件修改:

配置文件路径:/etc/selinux/config,命令行无法把状态修改为disable,只能通过修改配置文件达成。

 CentOS7.3学习笔记总结(三十四)_enforcing_03

如果不想重启电脑怎么实现状态和配置文件的改变呢,通过命令行修改状态,再修改配置文件,确保下次重启就是你需要的状态,命令行不能实现disable状态,可以通过命令行先修改为Permissive(和disable几乎一样),再把配置文件的值改为disable,这样就可以实现改为关闭状态(disable)。

注:不推荐关闭SELinux。