日期:2014-05-16  浏览次数:20585 次

企鹅日记(十七):SELinux初探

其实SELinux是在进行程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序,因此刚好也是能够控制网络服务能否访问系统资源的一道关卡!

传统的文件权限与帐号关系:自主访问控制 DAC。而以策略指定特定程序读取特定文件:强制访问控制,MAC。

DAC的困扰是当用户取得程序后,他可以通过这个进程与自己默认权限来处理他自己的文件资源,万一这个用户对linux不熟,很可能会有资源误用的问题产生。SELinux针对这个问题导入了强制访问控制(Mandatory Access Control)的方法。MAC可以针对特定的进程与特定的文件资源来进行权限的控制!也就是说,即使你是root,在使用不同的进程的时候,你所能取得的权限不一定是root,而要看当时该进程的设置而定。如此一来,针对控制的主体变成了进程而不是用户。

两个主要的策略(Policy)为:

× targeted:针对网络服务限制较多,针对本机限制较少,是默认策略。

× strict:完整的SELinux限制,限制方面较为严格。

建议使用默认的targeted就可以了。

在SELinux中,主体也就是进程想要取得目标也就是文件系统的资源访问权限,要经历三道关卡:

1,主体程序必须要通过SELinux策略内的规则放行。

2,与目标资源进行安全上下文的比较,比较成功才能进行下一步。

3,最终要得看文件系统的rwx权限设置,符合的才能最终访问资源。

安全上下文同时存在于主体进程和目标文件资源中,这个就相当于SELinux的rwx,需要每个文件和进程都设置的,懂否。进程的安全上下文放在内存中,而文件的安全上下文放在inode中。

查看安全上下文方法:

# ls -Z