感谢支持
我们一直在努力

RHEL7 学习笔记(21) – SELinux

RHEL7 学习笔记(21) – SELinux

这一节和老师学习了SELinux的基本知识。

SELinux的全称是Security Enhanced Linux, 直译就是安全加强的Linux。在SELinux之前,root账号能够任意的访问所有文档和服务;如果某个文件设为777,那么任何用户都可以访问甚至删除;这种方式称为DAC(主动访问机制),很不安全;SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个标签进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。

SELinux安全上下文初探 http://www.linuxidc.com/Linux/2014-04/99508.htm

一次由SELinux引起的SSH公钥认证失败问题 http://www.linuxidc.com/Linux/2013-07/87267.htm

SELinux 入门教程 http://www.linuxidc.com/Linux/2013-04/82371.htm

SELinux简单配置 http://www.linuxidc.com/Linux/2012-12/77032.htm

CentOS系统如何快速关闭SELinux http://www.linuxidc.com/Linux/2012-11/74613.htm

这个标签在程序或者进程上叫做domain(域),在访问对象或者文件上叫做context (上下文)。

查看上下文可以通过ls -Z,查看域可以使用 ps Z, 我高亮的部分就是他的上下文了

以httpd为例,这个httpd的进程只能允许访问/var/www/html下的文档对象。

下面做个小实验,新建一个index.html文档,打开没有问题

在root的家目录下创建一个index2.html文档,并剪切到/var/www/html目录下,可以发现其默认的上下文是继承 /home的,标签不匹配,因此无法访问

我甚至收到了SELinux的警告信息,打开看看

在 /var/log/audit/audit.log 也可以查看这个报错

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-02/112764p2.htm

如何修复?有两种方式,一种是通过restorerecon( restore context) 修复继承当前目录默认的上下文;一种是通过chcon (change context) 修改当前的上下文

自动恢复

或者强行指定另外一个文件的上下文来设置

那么这个默认的上下文是哪里来的呢,我们可以通过semanage来配置

首先查看一下默认的上下文

然后可以通过-a -t来强行修改,修改之后再restorecon一下,就变成了默认的context

SELinux 里面有3种模式,分别是Enforcing, Permissive, 和 Disable。 Enforing不匹配的直接就报错挡住了; Permissive会报错但是不会挡住, Disable就直接关掉SELinux

可以通过getenforce 查看 setenfore 来设定。 注意他没法直接设定 Disable

Disable 需要修改配置文件来生效

修改之后重启就可以了

改回来,重启,开机会出现一个警告,SELinux重新打标签会花时间~~

进入系统,再看看最后一个概念,SELinux的布尔值。这个布尔值类似一个开关,打开的话,他对应的一些服务就允许执行,否则的话就拒绝执行。

看看有哪些布尔值

知道了布尔值的名字,可以通过sesearch 来确认他关联了哪些服务的域,比如httpd_enable_homedir允许下列规则,如果设置为off的话,那么他们都是无法访问的

除了命令行,我们还可以访问图形界面

总结一下,如果搭配了某个服务器,然后客户端无法正常访问,应该按照下面的顺序进行排错:

该服务的配置文件中是否开启了相关的权限 ,比如是否允许匿名用户写入等等;

文件系统的权限,比如是否需要使用chmod修改权限

SELinux的上下文和布尔值

例子(创建FTP访问,略)

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-02/112764.htm

赞(0) 打赏
转载请注明出处:服务器评测 » RHEL7 学习笔记(21) – SELinux
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏