Linux——selinux的简介与用法

本文深入解析SELinux的工作原理,包括安全上下文的访问规则,布尔值管理及错误排查工具的使用。通过实例展示如何修改文件安全上下文,以及如何启用特定服务的上传权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、selinux简介

  1. selinux: 内核级加强型防火墙
  2. 作用: 给每一个文件加载标签(context:安全上下文)
    对文件的影响:安全上下文
    对服务的影响:对服务的特定功能加开关(sebool)
  3. selinux的三种状态
    enforcing   强制模式
    permissive  警告模式
    disabled   关闭
  4. 显示selinux的状态: getenforce
  5. 更改selinux的开机状态:
    在这里插入图片描述
    在这里插入图片描述
    更改完状态要重启才能生效
    在这里插入图片描述
    在这里插入图片描述
  6. selinux的两个级别: 强制和警告
    setenforce 0 -----> permissive
    setenforce 1 -----> enforcing
    在这里插入图片描述
  7. selinux报错日志: /var/log/audit/audit.log

二、selinux:安全上下文访问规则

  1. 安全上下文简介:
      所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的
      在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文
      比如:我们从别的地方移动一个文件到/var/ftp,而当我们登陆lftp之后,发现看不到该文件,是因为这个文件的安全上下文和/var/ftp的安全上下文不匹配,这就是selinux的保护机制,所以我们需要将这个文件的安全上下文修改和/var/ftp的达到一致
  • 测试
  • 查看selinux状态为强制模式
    在这里插入图片描述
  • 在/mnt下新建一个文件hui,并将它移动到 /var/ftp
    在这里插入图片描述
    注意:
    mv是重命名的过程,文件的属性和权限不会改变(文件上下文类型不会改变)
    cp新建的过程,文件的属性和权限会改变(会重新生成安全上下文)
  • 查看/var/ftp的安全上下文的类型
    (1)ls  -Z  查看文件的安全上下文
    (2)ls  -Zd   查看目录的安全上下文
    /var/ftp是lftp的默认发布目录,它默认的安全上下文是public_content_t
    此处可以看到hui和pub安全上下文类型不一致
    在这里插入图片描述
  • lftp登录服务端,看不到移动过去的文件
    在这里插入图片描述
  • 当把selinux的状态由强制模式改为警告模式后
    在这里插入图片描述
    再次登录客户端,就可以看到移动过去的文件hui
    在这里插入图片描述
  1. 修改上下文的方法:
    (1)临时修改:
  • 查看/ftphome的上下文类型 ,显示default
    在这里插入图片描述
  • chcon -t public_content_t /ftphome/ -R
    -t  表示修改上下文类型为public_content_t
    -R 表示递归设置
    在这里插入图片描述
  • 测试临时属性
    修改selinux的配置文件,将selinux的状态进行如下改变:enforcing–>disabled–>enforcing
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    发现上下文类型又变成默认,说明这种方式的修改是临时的
    在这里插入图片描述
    (2)永久修改:
  • 查看/var/ftp和/ftphome的上下文列表
    因为/ftphome是自己建立的目录,没有列表信息
    在这里插入图片描述
  • 修改/ftphome和底下的所有文件的安全上下文 ,递归刷新并显示刷新过程
    在这里插入图片描述
    -a  表示增加
    -t  表示设置安全上下文的类型为public_content_t
    /ftphome(/.*)?   表示对文件本身和里面的所有文件,包括隐藏文件
  • 再次查看 /ftphome的上下文列表
    在这里插入图片描述
  • 上下文类型永久设定成功
    在这里插入图片描述

三、管理selinux 布尔(sebool)值

SELinux 布尔值是更改 SELinux 策略行为的开关
SELinux 布尔值是可以启用或禁用的规则
(1)本地用户上传

  • 在selinux开启的状态下,默认本地用户是没有上传权限的
    在这里插入图片描述
  • 查看开关(本地用户上传开关是关闭的)
    在这里插入图片描述
  • 开启本地用户上传开关
    在这里插入图片描述
  • 测试:此时本地用户可以上传文件
    在这里插入图片描述
    (2)匿名用户上传
  • 在selinux开启的状态下,匿名用户是没有上传权限
    在这里插入图片描述
  • 编辑ftp服务配置文件,将匿名用户上传权限打开
    在这里插入图片描述
    在这里插入图片描述
  • 修改匿名用户目录的所有组并给组添加权限
    在这里插入图片描述
  • 打开匿名用户上传开关
    在这里插入图片描述
  • 给匿名用户默认家目录的安全上下文类型添加读写权限
    在这里插入图片描述
  • 测试:此时匿名用户可以成功上传文件
    在这里插入图片描述

四、selinux的排错工具: setroubleshoot-server

  • 查看selinux排错工具软件包
    在这里插入图片描述
  • 在/mnt下新建一个文件hui,并将它移动到 /var/ftp
    在这里插入图片描述
  • 清空日志信息,方便测试报错信息
    在这里插入图片描述
  • lftp登录服务端,看不到自己建立的文件,这是由于安全上下文的关系
    在这里插入图片描述
  • 查看selinux的报错日志/var/log/audit/audit.log,会有报错信息产生
    在这里插入图片描述
  • 查看/var/log/messages 日志,里面会有报错的解决方案(排错指令)
    在这里插入图片描述
    在这里插入图片描述
  • 如果删除setroubleshoot-server软件
    在这里插入图片描述
    在这里插入图片描述
    此处再次清空日志信息方便测试
    在这里插入图片描述
  • 再次登录服务端并退出
    在这里插入图片描述
  • selinux报错日志/var/log/audit/audit.log中仍有报错,但是/var/log/messages就不会有排错指令了
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值