SELinux安全上下文初探

安全 网站安全
开启我们的SELinux,我在安全linux系统时将它禁用了,但是开启selinux后,可能会对我们的一些服务有些限制功能,不如你可能不能正常访问网页、ftp等等,

开启我们的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这个目录该成这个类型 命令有chcon(change 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安全策略库里没有关于httpd的8001端口,所以我们要添加上去。

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

责任编辑:蓝雨泪 来源: 红黑联盟
相关推荐

2017-05-11 14:00:02

Flask请求上下文应用上下文

2022-09-14 13:13:51

JavaScript上下文

2022-09-15 08:01:14

继承基础设施基础服务

2023-07-11 10:02:23

2022-10-28 16:24:33

Context上下文鸿蒙

2017-12-17 17:01:23

限界上下文系统模型

2021-07-26 07:47:36

Cpu上下文进程

2020-07-24 10:00:00

JavaScript执行上下文前端

2010-02-25 17:04:54

WCF实例上下文

2019-05-06 14:36:48

CPULinux寄存器

2012-07-30 16:29:40

架构架构模式.NET

2022-04-24 15:37:26

LinuxCPU

2023-12-10 13:37:23

Python编程上下文管理

2023-06-15 15:45:42

自然语言语言模型

2011-06-28 10:55:02

QT QMainWindo 内存泄露

2024-03-14 08:11:45

模型RoPELlama

2012-07-18 11:39:18

ibmdw

2024-04-03 10:05:00

LLM性能基准测试

2022-04-25 11:27:34

LinuxCPU

2022-09-26 23:36:33

Linux系统CPU
点赞
收藏

51CTO技术栈公众号