本文出自 “玄武·巴依” 博客,请务必保留此出处http://commandos.blog.51cto.com/154976/258630

本文出自 51CTO.COM技术博客

 

对于刚使用Redhat Enterprise Linux 4以上或Fedora Core 2以上/CentOS 4的用户,一定会为Apache经常无法正常运转,报以"Permission denied"等错误而大为不解,甚至大为恼火,其实这是因为这些系统里激活了SELinux,而用户的apache配置与SELinux的配置策略有抵触产生的。那么SELinux到底是什么?它又对Linux的系统安全有什么影响呢?

一、SELinux到底是什么?它来自哪里?
SELinux全名是Security-Enhanced Linux,是由美国国家安全部(National Security Agency,简称NSA)领导开发的GPL项目,是一种强制存取控制(mandatory access control)的实现。
它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性。
它的作法是以最小权限原则(principle of least privilege)为基础,在Linux核心中使用Linux安全模组(Linux Security Modules)。
它并非一个Linux发行版,而是一组可以套用在类Unix操作系统(如Linux、BSD等)的修改。
它提供了强健的安全保证,可防御未知***,据称相当于B1级的军事安全性能。比MS NT所谓的C2等高得多。
二、SELinux对Linux系统的安全性有什么提高?
对于这个问题,我想举这样一个例子,可以很明确的说明SELinux对Linux系统安全性的增强作用:
我们把/tmp目录下的所有文件和目录权限设置为0777,这样在没有SELinux保护的情况下,任何人都可以访问/tmp 下的内容。而在SELinux环境下,尽管目录权限允许你访问/tmp下的内容,但SELinux的安全策略会继续检查你是否可以访问。
三、SELinux的配置
SELinux的配置文件存在于/etc/selinux/config,打开文件可以看到SELinux的相关配置信息。
SELinux的策略分为两种,一个是目标(targeted)策略,另一个是严格(strict)策略。有限策略仅针对部分系统网络服务和进程执行SELinux策略,而严厉策略是执行全局的NSA默认策略。有限策略模式下,9个(可能更多)系统服务受SELinux监控,几乎所有的网络服务都受控。
四、SELinux的相关命令
1、查看SELinux权限
p_w_picpath
2、修改文件的属性
SELinux的属性是fild1:fild2:fild3,对不同的属性,需要不同的命令参数
chcon -u fild1 file
chcon -l fild2 file
chcon -t fild3 file
3、获取SELinux相关的bool值
getsebool -a | grep eclipse
4、给SELinux的相关bool值取反
togglesebool httpd_enable_homedirs

本文出自 “玄武·巴依” 博客,请务必保留此出处http://commandos.blog.51cto.com/154976/258630

本文出自 51CTO.COM技术博客