selinux的管理及其对ftp的影响

一.selinux简介

1.selinux的定义
安全增强型Linux(Security-Enhanced Linux)简称selinux,它是一个Linux内核模块,也是Linux的一个安全子系统。
2.selinux的作用
让其应用程序运行在其所需的最低权限上,为经过修改过的Linux系统是使用自主访问控制的,用户可以自己请求更高的权限,由此恶意软件几乎可以访问任何它想访问的文件,而如果授予其root权限,那么它就无所不能了

在SELinux中没有root这个概念,安全策略是由管理员来定义的,任何软件都无法替代它。这意味着那些潜在的恶意软件所能造成的损害可以控制到最小。

3.selinux的状态

状态 解释
Enforcing 警告并拒绝
Permissive 警告并允许
Disabled 关闭

注:产生的警告信息会保存到/var/log/message或/var/log/audit/audit.log

4.查看selinux命令

  • 查看selinux状态命令
getenforce      ##selinux状态

在这里插入图片描述
如果状态显示为disabled,则会出现如下情况
在这里插入图片描述
则证明由于selinx的关闭,即使/mnt/test/与/var/ftp/的安全上下文不同,但通过lftp命令还是可以看到test。
5.配置环境

vim  /etc/sysconfig/selinux        ##更改参数,开启selinux
reboot       ##重启虚拟机

在这里插入图片描述

rm -rf /etc/vsftpd/*        ##更新ftp的环境
yum  reinstall  vsftpd -y    ##重新安装vsftpd
systemctl  start  vsftpd   ##开启服务

在这里插入图片描述

二.selinux

1.文件安全上下文
(1)什么是文件安全上下文
安全上下文是指一类定义某个进程允许做什么的许可和权限的集合

ls  -Z    file        ##查看那文件的安全上下文

在这里插入图片描述

(2)文件安全上下文对ftp服务的影响
文件安全上下文限制了访问用户的权限,有利于系统的安全性
在这里插入图片描述
在这里插入图片描述
由图可知由于selinux为enforcing,/mnt/test与/var/ftp文件的安全上下文不一致,即使移动/mnt/test到/var/ftp时,匿名用户也无法看到test
2.文件安全上下文的更改
(1)文件安全上下文的临时更改
当selinux为Enforcing状态时

chcon   -t    public_content_t    /var/ftp/test       ##更改test的安全上下文为public_content_t

在这里插入图片描述
当reboot虚拟机之后,安全上下文会恢复原样

(2)文件安全上下文的永久更改

semanage  fcontext  -l | grep  /westos   ##查看该文件是否有默认的安全上下文

在这里插入图片描述

semanage  fcontext -a -t public_content_t  '/westos(/.*)?'     ##永久更改目录安全上下文,使用该命令后需同步
restorecon  -FvvR   /westos/         ##同步该目录的安全上下文

在这里插入图片描述
验证如下:
在这里插入图片描述
3.设定selinux的安全上下文,实现本地用户文件的上传

getsebool  -a | grep ftp       ##查看关于ftp的所有sebool的值

在这里插入图片描述

setsebool  -P ftp_home_dir  on      ##打开selinux本地用户上传开关,-P为永久开启
chmod  775  /home/*
chgrp  ftp  /home/*

在这里插入图片描述
在这里插入图片描述
验证:
在这里插入图片描述
4.设定selinux的安全上下文,实现匿名用户文件的上传

vim /etc/vsftpd/vsftpd.conf      ##在配置文件中打开匿名用户上传参数
systemctl  restart  vsftpd      ##重启服务

在这里插入图片描述

setsebool  -P  ftpd_anon_write  on    ##打开selinux匿名用户上传开关
semanage  fcontext -a -t public_content_rw_t   /var/ftp/pub   ##安全上下文加入可写的权限说明
restorecon -FvvR  /var/ftp/pub/     ##同步该目录的安全上下文
chmod  775  /var/ftp/pub
chgrp  ftp  /var/ftp/pub

在这里插入图片描述
在这里插入图片描述
验证:
在这里插入图片描述

三.selinux的模式

enforcing     ##强制并拒绝
setenforce  1    ##警告并拒绝
setenforce  0    ##会有警告但是不会有拒绝

在这里插入图片描述
注意:
(1)当selinux关闭时,该命令无法使用
(2)使用该命令时只能切换到开启时的俩种状态,即Enforcing和Permissive
(3)使用该命令切换selinux的状态时,不需要重启虚拟机

准备工作:
getsebool -a | grep ftp ##查看文件安全上下文开关
在这里插入图片描述 在这里插入图片描述
(1)enforcing模式下
在这里插入图片描述
发现/pub下没有zll
(2)setenforce 1 模式
在这里插入图片描述
setenforce 1与enforcing的模式的作用是相同的
(3)setenforce 0
在这里插入图片描述
在这里插入图片描述
可以看到zll在/var/ftp下,有警告但是不会拒绝,即是在/mnt/zll与/var/ftp的文件上下名不同的情况下.

四.解决selinux的报错问题

出现的报错:
在这里插入图片描述
解决方案::
1.

semanage fcontext -a -t public_content_rw_t 
# restorecon -R -v 
# setsebool -P allow_ftpd_anon_write 1

2.系统必须有setroubleshoot-server-3.2.17-2.el7.x86_64软件
lftp的报错后,若是与slinux有关的报错的解决方案会出现生成在/var/log/message

[root@server ~]# rpm -qa | grep setroubleshoot //查看报错的文件
setroubleshoot-server-3.2.17-2.el7.x86_64  //报错的文件

在这里插入图片描述

> /var/log/message   ##清空日志文件

在这里插入图片描述

yum install  setroubleshoot-server-3.2.17-2.el7.x86_64 -y    ##安装报错软件

在这里插入图片描述

cat /etc/log/message    ##查看日志文件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/86776446