RedHat Linux 8 中 selinux 介绍

selinux功能

首先我来查看我们系统的selinux状态,因为之前作vsftp实验,所以selinux是设置为disable关闭了,可以用命令:getenforce ,去查看
在这里插入图片描述
seliux关闭状态: 在/mnt/中建立文件文件
在这里插入图片描述
-Z查看文件的安全上下文,可以看到是“?”,并且去查看vsftpd程序发现程序前面的安全上下文也是空
在这里插入图片描述
安全上下文为空文件被移动到ftp默认发布目录中可以被访问
在这里插入图片描述
ftp程序安全上下文为空 用户可以上传文件
在这里插入图片描述

编配配置文件更改selinux的状态:vim /etc/sysconfig/selinux
在这里插入图片描述
enforcing表示开启,改完后reboot重启,当selinux开启以上功能操作均失败
在这里插入图片描述
重启时系统会重新加载安全上下文,以上功能操作均失败
在这里插入图片描述
在selinux重启后,新建的文件都文件的安全上下文,即使移动文件,安全上下文也是存在的
在这里插入图片描述
在这里插入图片描述
可以看到再去匿名访问,testfile1文件是看不到,因为他们的安全设定是不同的
用命令getsebool -a | grep ftp 查看selinux对ftp 的限制
在这里插入图片描述
当selinux开启会对服务本身相对不安全的功能加载开关sebool并且设定开关为关闭状态以保
证服务安全性
当需要此功能时需要超级用户手动调节


selinux状态

状态类型:

Disabled关闭
enforcing强制
permissive警告

setenforce 0/1 :0表示警告模式 1表示强制模式
在这里插入图片描述
当设置为警告模式时,我们就可以查看到文件,但是系统日志会给出警告信息

selinux开关:
编辑配置文件:vim /etc/sysconfig/selinux
SELINUX=[selinux的状态]:3种状态去写入,写完后要重启系统才可以
在这里插入图片描述


安全上下文

安全上下文的临时更改

命令:
更改文件: chcon -t 安全上下文类型 文件名
更改目录: chcon -R 安全上下文类型 目录名

在这里插入图片描述
更改后,ftp就可以访问到了
在这里插入图片描述

注意:这里设置的为什么说是临时呢,因为在selinux状态重新设置关闭再开启,我们更改的安全上下文就会还原到之前的

安全上下文永久更改设定

如果要让安全上下文永久生效那就需要更改内核配置

  • 创建目录,更改本地用户登录家目录
[root@rhel8-work ~]# mkdir -p /testuser/testfile

编辑写入配置: vim /etc/vsftpd/vsftpd.conf ,锁定登录的家目录为/testuser
local_root=/testuser

  • selinux状态为enforcing,用户登录lftp服务进去看不到家目录下的文件
    在这里插入图片描述
    因为安全上下文不匹配,可以查看/var/ftp的安全上下文来和/testuser做对比
    在这里插入图片描述
    查看出/var/ftp的为public_content_t,而/testuser/为default_t,所以无法看到
  • 内核安全上下文查看 semanage在这里插入图片描述
    根据查看/var/ftp是可以看到列表信息。而/testuser是没有任何信息
  • 修改安全上下文命令
[root@rhel8-work ~]# semanage fcontext -a -t 安全上下文 目录名'(/.*)?'
[root@rhel8-work ~]# restorecon -RvvF 目录名

(/.*)? 表示目录中将要出现的内容,因为这样修改的内容是不会直接生效的所以还需要“restorecon -RvvF”刷新安全上下文。
在这里插入图片描述
完成后我们就可以看到重新设置安全上下文的文件是可以被看到的,并且新建的文件也会继承目录更改后的安全上下文
在这里插入图片描述


sebool

SEBOOL:selinux 对服务功能能添加的开关
可以通过命令来查看程序的selinux的限制:getsebool -a | grep ftp
查看ftp的功能开关
在这里插入图片描述
查看到的第一条ftpd_anon_write --> off ,ftp的默认的selinux限制是不允许匿名用户可写,如果我们想要在selinux功能开启的状态下允许匿名用户可写,可以用到sebool功能,
命令:setsebool -P ftpd_anon_write=1\on ,表示永久开启此匿名用户写的功能,1和on都可以,参数-P表示永久开启,不加-P是临时的,
在这里插入图片描述
更改后,在vsftp配置文件里确认匿名用户可写配置开启,使用 lftp 命令测试,
注意在这里我要注意的原本的/var/ftp/put目录的安全上下文是public_content_t,只是可以访问,但是不可以读写,所以在上面的实验前我们需要去更改安全上下文使它变为public_content_rw_t,
在这里插入图片描述
保证这个前提后,再去测试lftp可写的功能就没有影响了
在这里插入图片描述

setrouble

在使用selinux时,产生的日志会被采集到/var/log/audit/audit.log,而不是/var/log/messenges,
在这里插入图片描述
我们建立在/mnt下一个文件,mv到/var/ftp里,lftp访问时因为安全上下文不同是看不到这个文件,selinux就会出现报错信息,而这些信息会被采集到/var/log/audit/audit.log 里,
在linux系统种有一个程序setroubleshoot,可以帮我们去分析报错信息,并为我们提供解决方案

  • 安装 setroubleshoot 服务
    在这里插入图片描述
  • 使用setroubleshoot服务
    命令sealert -a 日志路径 ,表示分析日志并提供解决方案
    在这里插入图片描述
    使用后等待分析过程,完后下面会有解决方案
    在这里插入图片描述
    我们来尝试提供的解决方案
    在这里插入图片描述
    可以看到问题被解决了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值