liunx下SELINUX强制模式带来的影响(提供解决方案)

SELINUX是一种增强型的Linux安全机制,它通过安全上下文控制文件、进程和服务的访问。在强制模式下,即使以root身份运行的进程也可能因缺少相应的SELINUX权限而被拒绝访问。文章探讨了如何查看和切换SELINUX状态,以及强制模式对服务、进程和文件的影响。通过修改安全上下文和sebool值,可以解决因SELINUX导致的访问限制。在遇到无法访问的问题时,SELINUX会在日志中提供解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.SELINUX概念

SELINUX(安全性增强型linux,内核型的加强性防火墙)是可保护系统安全性的额外机制,在某种程度上,它可以被看作是与标准权限并行的权限系统。在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限(控制哪些用户对哪些文件具有哪些访问权,SELINUX的另一个不同之处在于若要访问文件,必须具有普通访问权限和SELINUX访问权限。因此,即使以超级用户身份root运行进程,根据进程以及文件或资源的SELINUX安全性上下文也可能拒绝访问文件或资源标签

二.selinux的模式

Disabled不警告不拒绝/关闭状态
Enforcing强制模式,如果不符合会拒绝访问
Permissive警告模式,不符合会警告但是可以访问

三.管理selinux状态

<1>查看

getenforce 		##查看selinux的状态

在这里插入图片描述
<2>切换selinux状态

vim /etc/sysconfig/selinux     selinux配置文件
SELINUX=enforcing	           ##selinux开启,级别为强制
SELINUX=permissive          	##selinux开启,级别为警告
SELINUX=disabled	           ##selinux关闭,
setenforce 0|1		             ##更改selinux当前的级别0标示警告1标示强制

注意:当selinux从关到开,或者从开到关,需要重启系统

实验如下:

从开到关状态

此时的selinux状态
在这里插入图片描述

编辑配置文件
在这里插入图片描述
将其改为disabled
在这里插入图片描述
重启
在这里插入图片描述
开机之后查看状态:
在这里插入图片描述
从关到开状态

在这里插入图片描述
将状态修改为enforcing
在这里插入图片描述
重启
在这里插入图片描述
开机后查看状态:
在这里插入图片描述
警告状态与强制状态之间的切换
在这里插入图片描述

总结:当selinux从关到开,或者从开到关,需要重启系统,而警告状态切换强制状态或者强制状态切换警告状态不需要重启(可以直接切换)。

四:selinux对服务,进程,文件的影响

1.针对文件,会对系统中每个文件添加安全上下文(context)
2.针对进程,会对系统中的每个进程添加安全上下文(context)
3.会在系统服务上设定sebool开关
4.当进程安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
5.sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值

在这里插入图片描述

实验如下:
当selinux状态为disabled时候,lftp可以看见移动到默认访问目录下的文件westosfile
在这里插入图片描述
当selinux状态为enforcing时候,lftp可以看不见移动到默认访问目录下的文件hhh
在这里插入图片描述
这时候我们用ls -Z查看文件的标签,发现hhh文件的安全上下文不同

在这里插入图片描述

原来当selinux为enforcing时,它会给系统中的文件,进程,服务添加安全上下文,只有相对应的才能访问,不对应的无法访问。

五:修改安全上下文

<1>临时更改(更适用于文件)

chcon -t 安全上下文  文件/目录
比如:
chcon -t public_content_t  /var/ftp/hhh

实验如下:

临时更改文件安全上下文
在这里插入图片描述lftp去访问,可以访问到
在这里插入图片描述
注意:目录本身符合要求,里面的文件不符合,用这个更改文件的安全上下文,文件的安全上下文是永久的

临时目录文件安全上下文

实验如下:

vsftpd原本的默认访问目录的安全上下文如下图所示:
在这里插入图片描述
建立一个新的目录,查看其安全上下文并将其修改为vsftpd匿名用户的默认访问目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用lftp查看

在这里插入图片描述

临时更改目录的安全上下文,并用lftp查看
在这里插入图片描述
重启selinux
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
再次重启selinux
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看目录安全安全上下文,发现恢复原本,证明这更改是临时的
在这里插入图片描述

<2>永久更改文件安全上下文

有些服务,目录,进程的安全上下文之所以是永久的,是因为它的安全上下文被系统记录着

semanage fcontext -l      查看
semanage fcontext -a -t public_content_t '/ftpdir(/.*)?'   更改系统记录的安全上下文
restorecon -RvvF /ftpdir/                                  使目录本身的安全上下文也更改

实验如下:
在这里插入图片描述

在这里插入图片描述

用lftp查看,可以查看到:
在这里插入图片描述
六:修改selbool值

sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值

实验如下:

用student上传文件,发现失败

在这里插入图片描述
查看服务功能
在这里插入图片描述
将其服务功能打开
在这里插入图片描述
再次查看
在这里插入图片描述
再次去上传,发现成功

在这里插入图片描述

匿名用户上传,发现失败
在这里插入图片描述
在这里插入图片描述

打开服务功能
在这里插入图片描述
再次查看
在这里插入图片描述
再去使默认家目录子目录可写
在这里插入图片描述
发现可以上传在这里插入图片描述

七:selinux提供解决方案

前提:

我们将一个/mnt下的文件移动到/var/ftp下,lftp查看不到,在日志里会提供一个解决方案,这个方案是怎么来的?这是我们要探究的问题

移动:
在这里插入图片描述
为了保证实验环境纯净,将日志清空
在这里插入图片描述
发现查看不到
在这里插入图片描述查看日志
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

那么这个解决方案是从那里来的?我们需要解决这个问题

实验如下:

发现selinux提供了一个解决问题的软件包
在这里插入图片描述
在这里插入图片描述
此时我们的系统已经安装这个软件包,我们将其移除掉
在这里插入图片描述
移除成功
在这里插入图片描述
再去清空日志
在这里插入图片描述
lftp查看
在这里插入图片描述
查看日志,发现没有提供解决方案
在这里插入图片描述
我们再去将这个软件包安装回来

在这里插入图片描述
安装完成
在这里插入图片描述
清空日志
在这里插入图片描述
lftp查看
在这里插入图片描述
查看日志
在这里插入图片描述
发现提供解决方案
在这里插入图片描述
我们按照这个解决方案处理
在这里插入图片描述
发现可以查看到kkk文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值