linux系统中的SElinux(内核加强火墙)

实验环境

重装ftp

rm -fr /etc/vsftpd/
yum reinstall vsftpd -y

允许匿名用户可以上传文件

vim /etc/vsftpd/vsftpd.conf 
anon_upload_enable=YES	##打开允许上传文件
systemctl restart vsftpd
chmod 775 /var/ftp/pub/
chgrp ftp /var/ftp/pub/

在这里插入图片描述

允许student用户上传文件

ls -ld /home/student/
chmod +w /home/student/

在这里插入图片描述

SEliunx:内核加强火墙

介绍
SELinux是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。
三种模式

Permissiveseliunx开启,警告
enforcingseliunx开启,强制
disabledselinux关闭
permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。
Enforcing就是你违反了策略,你就无法继续操作下去。

安全上下文
特定安全上下文的程序只能访问特定安全上下文件。
特定安全上下程序功能:给特定安全上下文件加开关——波尔值。

SEliunx设置

建立一个目录,移动到ftp的默认发布目录下,会看到匿名用户登陆可以显示出文件。

touch /mnt/westosfile
mv /mnt/westosfile /var/ftp

在这里插入图片描述
在这里插入图片描述
修改为强制模式:

getenforce	##查看seliunx状态

在这里插入图片描述

vim /etc/sysconfig/seliunx		##内核加强文件

在这里插入图片描述

 ps axZ | grep vsftpd
 ls -Z /var/ftp	##查看安全上下文的属性

在这里插入图片描述
从上图可以看出,文件的安全属性为空。
重启主机

reboot

发现重启主机过程时非常慢的,原因是:
当seiunx开启时,会给每一个程序添加一个标签,在每一个文件上也会添加一个标签。

重启后测试:
匿名用户重启前可以上传,重启后不能上传
在这里插入图片描述
本地用户重启前可以上传,重启后也不能上传
在这里插入图片描述

touch /mnt/westosfile1
mv /mnt/westosfile1 /var/ftp

在这里插入图片描述

ls -Z /var/ftp
ps axZ | grep vsftpd	##查看westosfile1为mnt_t:s0

在这里插入图片描述
在这里插入图片描述
从上图可以看出,匿名用户登陆看不到建立的westosfile1。
原因:因为seliunx开启后,意味着为了安全,内核对程序的防控指令多了一层,seliunx作用:会给系统中的每一个程序和文件加载一个标签,特定标签的程序只能读取特定标签的文件,如果标签不匹配,访问就会被禁止。这个标签被称做安全上下文。对程序本身的影响是给程序本身添加了一个开关——sebool值。
从下图可以看出,这些开关是关闭状态。
在这里插入图片描述
更改安全上下文程序(临时的)

chcon -t public_content_t westosfile1	##修改安全上下文
ls -Z /var/ftp/	##查看安全上下文属性

在这里插入图片描述
更改之后可以看见建立的文件westosfile1:

在这里插入图片描述
这样的更改只是临时更改新建立一个文件,它的安全上下文属性为default_t。

mkdir /westos/
ls -Zd /westos/

在这里插入图片描述
临时更改:当seliunx关闭再重启时,/westos/安全属性会还原成default_t

chcon -t public_content_t /westos/ -R	##更改安全上下文属性,【-R】:同时也更改文件里的内容,递归更改

在这里插入图片描述
当seliunx关闭再重启时,会还原成默认的安全上下文:
在这里插入图片描述
但是建立的westosfile1的安全上下文重启之后没有发生改变,因为westosfile1建立在目录/var/ftp/下,这个目录的安全上下文是被内核固定的,所以只要把westos的安全上下文固定下来就可以了。
更改安全上下文(永久性、固定的)
把目录/westos/加载在安全上下文列表里:

semanage fcontext -a -t public_content_t '/westos(/.*)?'	##【(/.*)】表示目录本身及里面所有内容都会被固定下来

在这里插入图片描述

semanage fcontext -l | grep westos	##加载到安全上下文列表里

在这里插入图片描述
固定下来之后还是没有改变,有两种方式,一种是把seliunx关闭再打开;另一种是刷新列表

restorecon -RvvF /westos/	##刷新

在这里插入图片描述

Permissive—>Enforcing的调整:

setenforce 0	##表示更改seliunx处于警告模式
setenforce 1	###表示更改seliunx处于强制模式
getenforce	##查看年seliunx的状态

在这里插入图片描述
Enforcing—>disabled的调整:

vim /etc/sysconfig/selinux 
reboot

bool值

getsebool -a | grep ftp
setsebool -P ftp_home_dir on	##开启on|1都可以,-P:系统重启bool值不还原

在这里插入图片描述
在这里插入图片描述
测试:
打开前
在这里插入图片描述
打开后
在这里插入图片描述
安全上下文与sebool的结合实验
没有打开匿名用户的写的功能之前,匿名用户不能上传文件。
在这里插入图片描述
打开匿名用户写的功能,匿名用户还是不能上传文件。
在这里插入图片描述
在这里插入图片描述
因为/var/ftp/pub/目录是只读的安全上下文:
在这里插入图片描述
改变安全上下文属性,改变bool值

semanage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?'	##【/var/ftp/pub(/.*)?】为安全上下文列表,在/var/ftp/下的文件的安全上下文都会被内核固定下来
restorecon -RvvF /var/ftp/pub/

在这里插入图片描述

测试:可以看出匿名用户可以上传文件

在这里插入图片描述

selinux的排错

清空日志,清空/var/pub/下的所有文件
在这里插入图片描述
建立文件,移动到/var/ftp/目录下
错误:/var/ftp/目录下有这个文件,但是访问时看不到。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看seliunx生成的日志:

cat /var/log/audit/audit.log

在这里插入图片描述
从上图可以看出ftp服务在访问这个/mnt/file文件时,被拒绝了,但没有说原因。

cat /var/log/messages 

在这个日志里,提供了解决方案
把完全控制权限打开:
在这里插入图片描述
刷新路径:
在这里插入图片描述

restorecon -v /var/ftp/file

在这里插入图片描述
在这里插入图片描述
/var/log/messages这个日志之所以会提供解决方案,是因为有一个setroubleshoot-server-3.2.17-2.el7.x86_64软件,它能为系统提供解决方案。如果没有这个软件,再查看/var/log/messages是提供解决方案的。

rpm -qa | grep setrouble

在这里插入图片描述
实验:
删除软件setroubleshoot-server-3.2.17-2.el7.x86_64后,查看到日志里不提供解决方案。(每次删除或安装软件是都清空一下日志,方便查看日志)

yum remove setroubleshoot-server-3.2.17-2.el7.x86_64

清空日志:

> /var/log/messages 
> /var/log/audit/audit.log 

新建文件:

touch /mnt/file1
mv /mnt/file1 /var/ftp/pub

访问主机
在这里插入图片描述
查看不到新建的文件
查看日志,寻找解决方案

cat /var/log/audit/audit.log
cat /var/log//messages

/var/log/audit/audit.log日志下仍有问题原因,但是/var/log//messages没有解决方案了。所以我们应该把提供解决方案的软件安装上。
安装提供解决方案的软件

yum install setroubleshoot-server.x86_64 0:3.2.17-2.el7 -y
yum install setroubleshoot.x86_64 -y

在这里插入图片描述
清空日志:

> /var/log/messages 
> /var/log/audit/audit.log 

在这里插入图片描述

cat /var/log/messages 

在这里插入图片描述
当执行了这个命令,刷新了路径后,发现访问主机时会看到新建的文件file1.

restorecon -v /var/ftp/pub/file1

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值