【踩坑】CentOS7部署Vulhub靶场后,在启动漏洞容器时弹出SELinux警告,致使网站无法正常执行文件上传功能。

1 背景

  1. 为研究网络安全,本人准备在CentOS上部署Vulhub靶场来实现,部署过程参考文章《CentOS上部署Vulhub靶场》,部署过程一切顺利。
  2. 部署后,启动Nginx CVE-2013-4547漏洞进行实验,在上传文件时出现文件无法成功上传的问题,该问题并非由于网站对文件类型或内容的限制,而是其他方面的原因,一开始我以为是相关文件夹没有“文件写入”权限导致的,对所有文件都进行权限修改,然而没卵用。
    在这里插入图片描述
  3. 后来偶然在一次启动容器时,在屏幕的右上角发现系统弹出了SELinux警告(估计是之前将终端设置为全屏就没看到)。
    在这里插入图片描述
  4. 点开该通知,发现与写入权限有关,因此可能是这个原因导致漏洞环境执行失败。
    在这里插入图片描述

2 SELinux 概述

  1. 概述:SELinux的全称是Security Enhanced Linux, 就是安全加强的Linux。在SELinux之前,root账号能够任意的访问所有文档和服务;如果某个文件设为777,那么任何用户都可以访问甚至删除;这种方式称为DAC(主动访问机制),很不安全。
    1. DAC 自主访问控制: 用户根据自己的文件权限来决定对文件的操作,也就是依据文件的own,group,other/r,w,x权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。
    2. SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。
  2. 在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户(u)、角色(r)和类型(t)标识符。
  3. 工作流程:当程序访问资源时,主体程序必须要通过selinux策略内的规则放行后,才可以与目标资源进行安全上下文的比对,若比对失败则无法存取目标,若比对成功则可以开始存取目标,最终能否存取目标还要与文件系统的rwx权限的设定有关。所以启用了selinux后出现权限不符的情况时,你就得一步一步的分析可能的问题了。

3 解决

  1. 对于生产环境,建议根据提示信息一步步解决问题,但是此处是为了搭建漏洞实验环境,就直接采用比较暴力的方法,直接关闭SELinux。
  2. 在root身份下使用命令 vim /etc/selinux/config对文件进行编辑,将第六行中的SELINUX=enforcing改为SELINUX=disabled,如下图,保存后重启系统(不知道有没有其他重启方法)。
    在这里插入图片描述

参考文献

  1. CentOS7系统下SELinux阻止MongoDB启动的问题详解
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值