Linux

简单让你理解SELinux

什么是SELinux


  • SELinux(Security Enhanced Linux)是Linux的一个内核模块,由美国国家安全局(NSA)开发的。
  • SELinux最初开发目的是:避免资源的误用。

SELinux 是由美国国家安全局 (NSA) 开发的,当初开发这玩意儿的目的是因为很多企业界发现, 通常系统出现问题的原因大部分都在於『内部员工的资源误用』所导致的,实际由外部发动的攻击反而没有这么严重。 那么什么是『员工资源误用』呢?举例来说,如果有个不是很懂系统的系统管理员为了自己配置的方便,将网页所在目录 /var/www/html/ 的权限配置为 drwxrwxrwx 时,你觉得会有什么事情发生?

现在我们知道所有的系统资源都是透过程序来进行存取的,那么 /var/www/html/ 如果配置为 777 , 代表所有程序均可对该目录存取,万一你真的有启动 WWW 服务器软件,那么该软件所触发的程序将可以写入该目录, 而该程序却是对整个 Internet 提供服务的!只要有心人接触到这支程序,而且该程序刚好又有提供使用者进行写入的功能, 那么外部的人很可能就会对你的系统写入些莫名其妙的东西!那可真是不得了!一个小小的 777 问题可是大大的!

SELinux的作用


  • SELinux是对正在运行的进程能否读写文件系统资源的管理,为了避免外部人员或内部人员因为获得某个特殊的进程对文件目录进行读写滥用或者攻击。

Linux系统中进程读写文件资源的两种方式


一、自主访问控制(DAC)

自主访问控制:
         依据进程的拥有者与文件资源的rwx权限来决定有无读写权限。

这种方式的缺点:

         1. root拥有最高的权限:如果某个root进程被外部人员获取,就能够对文件资源进行读写。

         2.用户可以获取进程来修改文件资源访问权限:例如chmod 777 filename ,让任何人都能读写。

二、强制访问控制(MAC)

强制访问控制:
         根据提供的策略,并在该策略内提供多个规则,控制进程是否能够读取文件资源。

SELinux工作方式


SELinux是通过MAC的方式来管理进程的,它控制进程是否能够读取文件资源。

来源:http://cn.linux.vbird.org/linux_basic/0440processcontrol_5.php