什么是SELinux?
在内核2.6版本之前Linux的安全模型叫DAC(Discretionary Access Contorl,即自主访问控制)。
DAC的核心思想:进程想要访问某资源,只需要拥有该资源对应用户的权限(读、写、执行)即可以访问,也就是说进程所拥有的权限与执行该进程的用户的权限相同,只要执行进程的用户拥有某资源的权限,该进程即可以访问。比如:搞到了root权限,在Linux系统上就能干任何事情。
SELinux是由美国国家安全局(NSA)对于强制访问控制的实现,在Linux社区帮助下开发的一种访问控制体系。核心思想:进程想要访问某资源,除了需要拥有该资源对应的用户权限因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
SELinux主要作用就是最大限度的减小系统中服务进程可访问的资源(最小权限原则),SELinux的安全模型叫MAC(Mandatory Access Control,强制访问控制)
SELinux的三种工作模式
SELinux的工作模式可以在/etc/selinux/config中配置。
1、 enforcing:强制模式,违反SELinux规则的行为将被阻止并记录到日志中。用“1”表示。
2、 permissive:宽容模式,当违反SELiunx的行为规则时,会发出警告并记录到日志中,但是不会被阻止,一般都是调试用。用“0”表示。
3、 disabled:关闭SELinux,不使用SELiunx
可以通过命令设定当前会话的SELinux工作模式,即临时生效,想要永久生效必须写进配置文件中:
setenforce [0|1]
getenforce查看SELinux的状态。
企业生产环境中在做系统初始化的时候,就会选择把SELinux关闭,因为SELinux中的规则非常复杂,如果开启会使生产环境出现很多问题,维护成本高。
原文地址:http://blog.51cto.com/13691477/2318487