SELinux安全上下文初探

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

SELinux安全上下文初探

   开启我们的SELinux,我在安装linux系统时将它禁用了,但是开启selinux后,可能会对我们的一些服务有些限制功能,比如你可能不能正常访问网页、ftp等等,下面就对这些问题通过设置SELinux来解决这些问题

 

1、如果你的SELinux没用启动的话,有以下几种启动的方法

不可用状态

开启SELinux

Vim  /etc/sysconfig/selinux  如下:

或者用图形化界面修改命令为 system-config-selinux 或 system-cofig-securitylevel  SELinux设置为“强制”

以上三种方法必须重新启动计算机后SELinux才能生效。

2、当我们将SELinux设置为“强制”模式后,我们更改httpd.conf里的根目录以后,会发现,httpd重启不了,老失败、、、、

这里将根目录改为如下:

 DocumentRoot "/www"

mkdir /www

echo "123" > /www/index.html

重启httpd时,报错了,重启不了,查看日志发现如下:

Dec 23 11:33:03 localhost setroubleshoot: SELinux is preventing access to files with the default label, default_t. For complete SELinux messages. run sealert -l 511c4eda-797d-4b79-a1e3-51477afed4e6

按照日志的提示我们允许sealert -l 511c4eda-797d-4b79-a1e3-51477afed4e6命令 有以下信息

源上下文和目标上下文的类型 不同,httpd 无法对default_t类的文件及目录的读取,所以启动不了,修改为httpd能够读取的类型

httpd能够读取什么样的类型呢,通过如下一些命令查看 

命令 ll -Z 目录或文件

或者是命令 semanage  fcontext  -l   | grep http

从上边我们可以看到httpd 能读取的类型是 httpd_sys_context_t的类型

好了知道了这个类型,我们就把/www这个目录改成这个类型 命令有chconchange context)或者restorecon 用法如下:

chcon  -R --reference=/var/www/html/  /www/ 或者chcon -t httpd_sys_content_t  /www/

改回原来的类型用 restorecon -v -R /www

Httpd正常启动了,并且也能访问到index.html网页

重启httpd报错时。除了参看日志外还可用以下命令排错

sealert -b  或者是图形界面下右上角的

单击小星星

关于web这里用的是默认的80端口,如果我们要建基于端口的虚拟主机时,能否通过SELinux呢。。。 假如我们把端口改为8001,

Listen 8001

重启httpd服务

出现错误了,不能绑定8001端口

通过上述的排错方式找到了如下

SELinux安全策略库里没有关于httpd8001端口,所以我们要添加上去

semanage port  -a  -t http_port_t -p tcp 8001

重启httpd服务就没问题了。

ftp关于SELinux的一些问题

登录ftp以后dir一下看不到自己家目录里的任何文件及文件夹如下:

通过上述的排错方法得知如下:

先看一下ftp的布尔值

默认SELinux不允许的,需要改为ON命令如下:

setsebool -P ftp_home_dir=ON 或者setsebool -P ftp_home_dir=1

再次dir

Samba关于SELinux的一些问题

共享目录为/wsm   

        [public]

        comment = Public

        path = /wsm

        public = yes

但是却访问不了/wsm  和自己的家目录  日志如下:

Dec 23 14:35:15 localhost smbd[13169]: [2012/12/23 14:35:15, 0] smbd/service.c:make_connection_snum(1003) 

Dec 23 14:35:15 localhost smbd[13169]:   '/wsm' does not exist or permission denied when connecting to [public] Error was 权限不够 

要设置一下SELinux了, smb.conf里就有关于SELinux的配置说明

执行如下命令

chcon -R  -t samba_share_t  /wsm/

开启自己的家目录

setsebool -P samba_enable_home_dirs=ON

一切OK 



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1102086

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
监控 安全 Linux
在Linux中,SELinux的作用是什么?如何临时和永久地更改SELinux上下文?
在Linux中,SELinux的作用是什么?如何临时和永久地更改SELinux上下文?
|
7月前
|
Linux Android开发
代码里永久关闭selinux
代码里永久关闭selinux
132 0
|
安全 Apache
18.7 SELinux安全上下文的修改和设置
安全上下文的修改是我们必须掌握的,其实也并不难,主要是通过两个命令来实现的。
484 0
18.7 SELinux安全上下文的修改和设置
|
安全 Apache 数据安全/隐私保护
18.6 SELinux安全上下文查看
SELinux 管理过程中,进程是否可以正确地访问文件资源,取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签,比如 SELinux 用户、角色、类型、类别等,当运行 SELinux 后,所有这些信息都将作为访问控制的依据。
421 0
18.6 SELinux安全上下文查看
|
安全 Linux 数据安全/隐私保护
18.2 SELinux的主要作用
我们知道,传统的 Linux 系统安全,采用的是 DAC(自主访问控制方式),而 SELinux 是部署在 Linux 系统中的安全增强功能模块,它通过对进程和文件资源采用 MAC(强制访问控制方式)为 Linux 系统提供了改进的安全性。
184 0
18.2 SELinux的主要作用
|
安全
18.8 SELinux默认安全上下文的查询和修改
前面讲到,restorecon 命令可以将文件或目录恢复成默认的安全上下文,这就说明每个文件和目录都有自己的默认安全上下文,事实也是如此,为了管理的便捷,系统给所有的系统默认文件和目录都定义了默认的安全上下文。
261 0
18.8 SELinux默认安全上下文的查询和修改
|
安全 Linux 数据安全/隐私保护
18.11 SELinux的3种策略类型
对于 SELinux 来说,所选择的策略类型直接决定了使用哪种策略规则来执行主体(进程)可以访问的目标(文件或目录资源)。不仅如此,策略类型还决定需要哪些特定的安全上下文属性。通过策略类型,读者可以更精确地了解 SELinux 所实现的访问控制。
498 0
18.11 SELinux的3种策略类型
|
安全 Linux Apache
|
安全 Linux 数据安全/隐私保护