selinux

selinux是什么

selinux(secure linux):内核级加强型火墙

selinux基本使用

1.查看selinux的状态

getenforce        ##查看selinux的状态
开启状态分为两种模式:
enforcing         ##表示强制,有警告,拒接访问
permissive        ##表示警告,有警告,但是可以访问
关闭状态:
disadled

2.开启状态下两种模式的转换

setenforce 1           ##修改状态为强制
setenforce 0           ##修改状态为警告

3.关闭状态和开启状态的转换
关闭状态和开启状态的转换需编辑/etc/sysconfig/selinux文件。修改完文件需要重启电脑状态才会改变
例如,此时电脑selinux的状态为下图
在这里插入图片描述
编辑/etc/sysconfig/selinux文件,后重启电脑
selinux_第1张图片
重启后发现selinux的状态以改变
在这里插入图片描述
4.selinux状态的不同对我们的影响
进行下图的操作
selinux_第2张图片
强制状态:
使用匿名用户登陆ftp,就会看到pub/目录下不会显示hellotest文件
selinux_第3张图片

警告状态:
使用匿名用户登陆ftp,就会看到pub/目录下hellotest文件

在这里插入图片描述selinux_第4张图片
查看/var/log/audit/audit.log文件,我们可以在此文件中看到在警告模式下selinux的警告日志
在这里插入图片描述

临时修改安全上下文

为什么出现上述问题?
这就时因为安全上下文的原因,每个文件和目录都给他们设置了安全上下文。常对于目录中的文件,其安全上下文的内容继承所在目录的安全上下文。selinux允许访问安全上下文成功匹配的文件或目录,而对于安全上下文不匹配的文件或目录,我们是不能访问的。在上述问题不显示hellotest文件的原因就是我们将hellotest文件移动到pud目录下,由于mv命令并不改变文件的安全上下文,所以在强制状态下,无法显示hellotext文件
1.查看临时安全上下问
ls -Z 目录或文件名
在这里插入图片描述
我们可以看到hellotest文件的安全上下文和其他文件的安全上下文不一样

将selinux的模式改编成关闭模式
在这里插入图片描述此时无法显示hellotest
在这里插入图片描述
所以在关闭模式和警告模式下hellotset文件可以显示

2.临时修改安全上下文

chcon -t  安全上下文       ##更改文件安全上下文
chcon -t  -R  安全上下文   ##若是目录要加参数-R

把hellotest的安全上下文更改的和其他文件相同
在这里插入图片描述
当在登陆就可以看到hellotest文件
在这里插入图片描述
这种修改方式是临时的,先关闭selinux再重启电脑,再开启selinux再重启电脑,再查看hellotest文件的上下文,发现它会恢复到未修改之前的状态

永久修改安全上下文

semanage fcontext -l                                               ##查看永久上下文的设定
semanage fcontext  -t public_content_t '/ftphome(/.*)?'            ##永久修改安全上下文
restorecon -Rvvf /ftphome/                                         ##保存对永久上下文的更改

查看/ftphome的永久安全上下文设定,发现没有任何设定:
在这里插入图片描述
对hellotest文件进行永久安全上下文设定
在这里插入图片描述
保存此设置:
selinux_第5张图片
我们可以看到,父目录及以下的子目录的安全上下文都已经修改:
在这里插入图片描述
再查看,我们可以看到/hellotest全上下文设定:
在这里插入图片描述

selinux对于服务的影响

1.首先将selinux模式设置为警告模式:
在这里插入图片描述
2.在警告模式下,设置匿名用户可以上传文件:
在这里插入图片描述
3.此时再将selinux模式设置为强制模式:
在这里插入图片描述
可以看到在强制模式下,不能上传文件:
在这里插入图片描述
(1)查看各个配置的布尔值
家目录以及写权限都为关闭状态,现在打开他们的权限
selinux_第6张图片selinux_第7张图片“注意”:-P参数表示永久开启
此时我们依旧无法上传文件:
在这里插入图片描述
目录的安全上下文对目录权限有限制:
给安全上下文添加读权限
在这里插入图片描述
此时我们再上传文件,就可以正常上传
selinux_第8张图片

selinux的日志分析

存放setlinux日志的文件为 /var/log/audit/audit.log,但此文件中只存放报错信息不提供解决方案。/var/log/messages也可能不提供解决方案,只有安装了setroubleshoot才在massage里面看到具体的报错解决方案
在这里插入图片描述
警告状态下,我们可以上传文件,但是在/var/log/audit/audit.log会有警告信息生成
selinux_第9张图片
安装setroubleshoot
selinux_第10张图片
selinux_第11张图片
清空以前日志:
在这里插入图片描述
在警告模式下上传文件:
在这里插入图片描述
可以看到在/var/log/audit/audit.log有警告信息生成:
selinux_第12张图片
在/var/log/messages会有日志信息生成并且在此日志中会提出针对此问题的解决方案:
selinux_第13张图片

你可能感兴趣的:(selinux)