selinux:Security Enhanced Linux安全加强的linux
早期是美国国安局(NSA)发起的一个项目,目的是使操作系统通过一种机制进行加固,直到操作系统的安全性能够达到让军方使用的程度而设计的。selinux是对MAC的一种解决方案。MAC:强制访问控制mandatory access control
定义一个类型,用户只可以访问此类型或者此类型的子类型的文件,其它文件不允许访问。当一个文件被移动时它的类型会随着所处的位置发生改变,这是selinux定义的访问控制策略所设定的。一个用户能访问的文件取决于
1、文件的权限 2、用户的权限 3、文件的类型 他们就是用户定义的规则,定义过后一个用户能否访问就取决于这些规则/etc/selinux/config
/etc/sysconfig/selinux这两个是一个文件。在文件里面 strict: 工作在此进程下的是全局的,所有进程都被控制、使用这个很困难,一不小心,系统就不能正常运行。 targeted:(由红帽开发) 指定只有谁被限定不能做什么,其他的不进行限定。 策略policy 把规则组合起来就叫策略 规则为了提高效率是以二进制格式的形式存在的。 /etc/selinux目录下是各种策略的文件 他们都是布尔类型,更改后将不用重新启动系统,直接生效 使用 getsebool -a 查看所有由selinux定义的bool型的控制。通过修改文件的类型,可以扩大和缩小用户的域
查看一个文件的标签
ls -Z 下面会出现类似这样的一段标签共5段,redhat只用三段 用户 角色 类型 root:object_r:user_home_tps -Z查看一个进程的域,如果出现
unconfined_t //表示这个服务不受selinux控制在不同位置建立的文件类型不同,这里我们可以修改它们的类型使用
chcon (change context) -R 递归修改 -v 显示信息,vv显示更详细的信息,最多3个v -t 更改类型指定为特定类型 --reference 以某个文件的类型为参照,改成那个类型 如: chcon -R --reference=/var/www/html /www 以/var/www/html类型为参照把/www的所有文件都改成那个类型 chcon -R -t samba_share_t /share/ 把/share/下目录的类型都改为samba_share_t的类型 restorecon恢复selinux安全上下文 -R递归 -v显示信息 -F强制恢复 如:恢复上面被修改的/www下的文件的类型 restorecon -R -v -F /www查看定义bool型的开关
getsebool -a就可以查看 如:这里想查看与httpd相关的 getsebool -a | grep httpd如何开启和关闭呢?
这里使用setsebool -P表示修改后永久有效,不加临时有效 让一个类型=1或者=on表示开启,=0或者=off表示关闭。 如: setsebool httpd_enable_cgi=1 表示开启 setsebool httpd_enable_cgi=0 表示关闭