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命令

    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,安全上下文是指一类定义某个进程允许做什么的许可和权限的集合

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

在这里插入图片描述 2,文件安全上下文对ftp服务的影响:
文件安全上下文限制了访问用户的权限,有利于系统的安全性

在这里插入图片描述
在这里插入图片描述由上图可见:由于selinux为enforcing,/mnt/test与/var/ftp文件的安全上下文不一致,即使移动/mnt/test到/var/ftp时,匿名用户也无法看到test

3,文件安全上下文的更改
(1)文件安全上下文的临时更改
当selinux为Enforcing状态时

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

在这里插入图片描述

重后虚拟机之后,安全上下文会恢复原样

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

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

在这里插入图片描述

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

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

4,设定selinux的安全上下文,实现本地用户文件的上传
命令如下:

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
验证:
在这里插入图片描述
5,设定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

  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    ##查看日志文件

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值