SELinux,全称为Security Enhanced Linux,也就是安全强化的Linux,由美国国家安全局(NSA)联合其他安全机构(比如SCC公司)共同开发的,旨在增强传统Linux操作系统的安全性,解决传统Linux系统中自主访问控制(DAC)系统中的各种权限问题(如root权限过高等)。

  SELinux提供了3种工作模式:Disabled、Permissive和Enforcing,而每种模式都为Linux系统安全提供了不同的好处。

  1、Disable工作模式(关闭模式)

  在Disable模式中,SELinux被关闭,默认的DAC访问控制方式被使用。对于那些不需要增强安全性的环境来说,该模式是非常有用的。

  例如,若从你的角度看正在运行的应用程序工作正常,但是却产生了大量的SELinux AVC拒绝消息,最终可能会填满日志文件,从而导致系统无法使用。在这种情况下,最直接的解决方法就是禁用SELinux,当然,你也可以在应用程序所访问的文件上设置正确的安全上下文。

  需要注意的是,在禁用SELinux之前,需要考虑一下是否可能会在系统上再次使用SELinux,如果决定以后将其设置为Enforcing或 Permissive,那么当下次重启系统时,系统将会通过一个自动SELinux文件重新进程标记。

  关闭SELinux的方式也很简单,只需编辑配置文件/etc/selinux/config,并将文本中SELINUX=更改为SELINUX=disabled即可,重启系统后,SELinux就被禁用了。

  2、Permissive工作模式(宽容模式)

  在Permissive模式中,SELinux被启用,但安全策略规则并没有被强制执行。当安全策略规则应该拒绝访问时,访问仍然被允许。然而,此时会向日志文件发送一条消息,表示该访问应该被拒绝。

  某些情况下,可使用audit2allow命令来读取SELinux审核日志并生成新的SELinux规则,从而有选择性地允许被拒绝的行为,而这也是一种在不禁用SELinux的情况下,让应用程序在Linux系统上工作的快速方法。

  3、Enforcing工作模式(强制模式)

  从此模式的名称就可以看出,在Enforcing模式中,SELinux被启动,并强制执行所有的安全策略规则。