初识SELinux

如果安装了CentOS 5.x后,就可以体验SELinux了。今天看了《鸟哥的Linux私房菜》,了解了一下SELinux,简要笔记整理如下。

SELinux是“Security Enhanced LInux”的缩写,意思就是安全强化的Linux。我们知道在Linux下,对文件资源的权限访问是通过user/group,rwx来控制的。一旦用户拥有root权限,他就可以访问任何文件资源。这样存在的安全问题是,一旦root管理员误操作,将一些文件公开为drwxrwxrwx,那么其他用户的程序都可以访问控制了。SELinux的出现就是为了解决控制进程与权限的问题。其实SELinux是在进行进程,文件等权限设置依据的一个内核模块,它在进程访问资源之间设置了一道关卡。

1. 传统的文件权限与帐号关系:自主访问控制,DAC

在Linux中帐号分为系统管理员(root)与一般用户,而这两种身份能否使用系统上的文件资源与rwx的权限设置有关。而root用户可以访问一切资源。因此,某个进程想要访问某个文件,系统就会根据该进程的user/group,并比较文件的权限,若通过权限检查,就可以访问该文件了。

这种访问文件系统的方式被称为“自主访问控制”(DAC,discretionary access control),基本上,就是依据进程的所有者与文件资源的rwx权限决定有无访问的能力。但是它会带来一些上面提到的安全问题。

(1)root具有最高权限

(2)用户可以取得进程来修改文件资源的访问权限

2. 以策略规则指定特定程序读取特定文件:强制访问控制,MAC

扫描二维码关注公众号,回复: 1268538 查看本文章

SELinux引入了强制访问控制(MAC,mandatory access control)来避免DAC容易发生的问题。

MAC可以这对特定的进程与特定的文件资源来进行权限的控制。也就是说,即使你是root,那么在使用不同的进程时,你所能取得的权限不一定是root,而得看当时该进程的设置而定。如此一来,针对控制的主体不是用户而是进程了。这个主体进程也不能随意访问文件,每个文件资源也有这对该进程设置可读取的权限。这样控制权限就变细了,在SELinux中也提供了一些默认的策略(Policy),并在该策略内提供多个规则(rule),让你可以选择是否启用该控制规则。

SELinux是通过MAC方式来控管进程的,它控制的主体是进程,而目标则是该进程能否读取的文件资源。由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全性策略。另外主体能不能访问目标除了策略指定以外,主体与目标的安全上下文必须一致才能顺利访问。这个安全上下文有点类似文件系统的rwx。

SELinux运行各组件之相关性(图摘自《鸟哥的linux私房菜》)

猜你喜欢

转载自willsunforjava.iteye.com/blog/1642609