当前位置: 首页 > news >正文

了解SELinux

了解SELinux

1. SELinux 概述

  • 定义:SELinux(Security-Enhanced Linux)即安全增强型Linux,是由美国国家安全局(NSA)开发的安全机制。

  • 背景

    • 传统Linux采用自主存取控制(DAC),仅通过文件权限控制访问,存在安全隐患(如SUID/SGID特殊权限滥用、错误配置导致漏洞)。
    • SELinux引入强制存取控制(MAC),要求操作同时满足DAC(文件权限)和MAC(SELinux策略)才能执行,否则被拒绝。
  • DAC与MAC的区别

    • DAC(自主访问控制):主体是用户,访问权限由文件自身权限决定。
    • MAC(强制访问控制):主体是程序,访问权限由文件权限和SELinux安全策略共同决定。

2. SELinux 原理与特点

  • 核心原理:基于强制访问控制机制,在传统权限基础上定义各类安全类型,类型不匹配则拒绝访问。
  • 主要特点
    1. 为所有对象(文件、进程等)设置安全上下文标签(context值)。
    2. 访问控制同时依赖普通文件权限和SELinux安全策略。

3. SELinux 安全策略

  • 三种策略
    • targeted:默认策略,适用于RHEL系统,仅对关键服务(如Apache、MySQL)进行限制。
    • minimumtargeted的简化版,限制更少。
    • mls:多级安全策略,安全性极高但配置复杂。

4. SELinux 运行模式

  • 配置文件/etc/sysconfig/selinux(与/etc/selinux/config为软链接)。

    在这里插入图片描述

  • 三种模式

    1. enforcing:强制模式(默认),违反策略的操作会被阻止并记录。
    2. permissive:警告模式,仅记录违反策略的操作但不阻止,用于排查问题。
  1. disabled:禁用SELinux(需重启生效)。
  • 模式管理命令
    • 查看当前状态:getenforce
    • 临时切换模式:setenforce [0|1](0=Permissive,1=Enforcing)

5. SELinux 安全上下文(Context)

  • 组成:用户(u)、角色(r)、类型识别符(t)(核心为类型t)。

  • 查看上下文

    • 文件:ll -Z /path/to/file
    • 目录:ll -ldZ /path/to/directory
  • 修改上下文

    • 临时修改:chcon -t [类型] /path/to/object(如chcon -t tmp_t file
    • 恢复默认:restorecon -v /path/to/object(根据策略恢复)
  • 永久修改上下文

    1. 添加规则:semanage fcontext -a -t [类型] "/path(/.*)?"(/.*)?表示包含子目录)
    2. 应用规则:restorecon -RFv /path(-R递归,-F强制)
  • 标签修复

    • 当标签混乱时:touch /.autorelabel(重启后自动重新标记所有文件)
    • 或先禁用SELinux重启,再启用重启。

6. SELinux 布尔开关(Boolean)

  • 管理命令
    • 查看所有开关:getsebool -a
    • 查看开关说明:semanage boolean -l
    • 修改开关:
      • 临时:setsebool [开关名] [on|off](如setsebool ftpd_full_access on

      • 永久:setsebool -P [开关名] [on|off](-P保存到配置)

        setsebool -P ftpd_full_access on

7. SELinux 端口标记

  • 管理命令
    • 添加端口标签:semanage port -a -t [端口类型] -p [tcp|udp] [端口号]

      -a -t http_port_t -p tcp 8910

    • 查询端口标签:semanage port -l | grep [端口号]

      semanage port -l | grep 8910

    • 修改端口标签:semanage port -m -t [新类型] -p [协议] [端口号]

      semanage port -m -t pegasus_http_port_t -p tcp 8910

    • 删除端口标签:semanage port -d -t [类型] -p [协议] [端口号]

      semanage port -d -t pegasus_http_port_t -p tcp 8910

-d -t [类型] -p [协议] [端口号]`

如`semanage port -d -t pegasus_http_port_t -p tcp 8910`
http://www.dtcms.com/a/317435.html

相关文章:

  • CGAL中函数squared_distance使用细则
  • 数据安全框架规划图
  • 【LeetCode 热题 100】347. 前 K 个高频元素——(解法三)桶排序
  • 使用R将nc文件转换为asc文件或者tif文件
  • C语言控制语句练习题2
  • KVazaar:开源H.265/HEVC编码器技术深度解析
  • vcpkg: 一款免费开源的C++包管理器
  • 【开源分享】can-utils:深入解析 Linux CAN 工具集
  • UE编辑器相机窗口运行时相机fov 大小不一致
  • 毕业设计选题推荐之基于Spark的在线教育投融数据可视化分析系统 |爬虫|大数据|大屏|预测|深度学习|数据分析|数据挖掘
  • css margin属性auto原理
  • 海康威视相机,MVS连接成功,但无图像怎么办?
  • python每日一题 贪心算法
  • 智能文本转语音新选择:EasyVoice与内网穿透打造私域有声平台
  • 深入理解 Qt 中的 QOverload
  • 分布式事务Seata、LCN的原理深度剖析
  • Java 排序教程
  • P1983 [NOIP 2013 普及组] 车站分级
  • 《第五篇》基于RapidOCR的图片和PDF文档加载器实现详解
  • 分布式文件系统07-小文件系统的请求异步化高并发性能优化
  • LeetCode——118. 杨辉三角
  • 数据结构(四)内核链表、栈与队列
  • Go语言数据类型深度解析:位、字节与进制
  • 实时数据可视化工具SciChart.js v4.0即将发布——扩展更多极坐标图表
  • 【前端】问题总结
  • Spring Data MongoDB 教程:用 @Query 快速实现字段查询
  • 大前端游戏应用中 AI 角色行为智能控制
  • STM32CubeIDE新建项目过程记录备忘(九) A/D转换并用串口定时上报
  • 基于可视化分析的房地产市场监测与预警机制,展示二手房的价格趋势、区域分布、户型结构等关键信息
  • DataKit 采集器敏感信息加密最佳实践