首页主机资讯Linux SELinux的工作原理是什么

Linux SELinux的工作原理是什么

时间2025-12-12 08:15:03发布访客分类主机资讯浏览476
导读:Linux SELinux 的工作原理 核心概念与定位 SELinux 是 Linux 内核的 强制访问控制(MAC) 安全架构,工作在 Linux Security Modules(LSM) 框架之上,最早由 NSA 开发,2000 年...

Linux SELinux 的工作原理

核心概念与定位

  • SELinux 是 Linux 内核的 强制访问控制(MAC) 安全架构,工作在 Linux Security Modules(LSM) 框架之上,最早由 NSA 开发,2000 年开源、2003 年并入上游内核。它在传统的 DAC(自主访问控制) 之上再叠加一层策略控制,使得即使进程以 root 身份运行,也会被策略严格约束,从而将受损进程的影响限制在最小范围。SELinux 对系统用户通常是透明的,由管理员通过策略进行细粒度授权与隔离。

工作流程

  • 当一个进程(主体)请求访问资源(客体,如文件、端口、套接字等)时,内核中的 SELinux 子系统会进行如下判定:
    1. 先从 AVC(Access Vector Cache) 查询是否已有缓存的访问决策,命中则直接返回结果,提高性能。
    2. 若缓存未命中,则将请求交给 安全服务器,依据已加载的策略与安全上下文进行匹配判定。
    3. 判定依据包括:进程的安全上下文(特别是其 域/类型)与目标客体的安全上下文(特别是其 类型),以及策略中定义的允许规则集合。
    4. 根据策略返回 允许拒绝;被拒绝的访问会生成 AVC 拒绝日志,常见记录位置为 /var/log/audit/audit.log,部分系统也会在 /var/log/messages 出现 “avc: denied” 信息。
    5. 只有在 DAC 与 MAC 同时允许 的情况下,访问才会最终放行。

标签与类型强制

  • SELinux 是一个“标签系统”:系统中的 文件、进程、端口 等对象都会被内核赋予一个 安全上下文(Security Context),其格式为:user:role:type:level(其中 level 为可选,常用于 MLS 场景)。在常见的 targeted 策略中,最关键的是 type 字段。
  • 类型强制(Type Enforcement, TE) 是策略的核心:策略以规则形式声明“具有某 类型 的进程(域)能否对具有某 类型 的客体执行哪些操作”。例如,常见规则形态为:allow < 主体类型> < 客体类型> :< 客体类别> { 操作集 } 。通过 TE,可以实现对服务的最小权限约束,例如限制 Web 服务仅能读取 Web 内容目录而不能触及敏感系统文件。

策略模式与配置

  • SELinux 有三种运行模式,配置位于 /etc/selinux/config(部分系统链接自 /etc/sysconfig/selinux):
    • Enforcing:策略强制生效,违规访问被拒绝并记录日志。
    • Permissive:仅记录违规不阻断,便于排障与策略调优。
    • Disabled:完全关闭 SELinux(需重启,且再次启用通常需要重标记文件系统)。
  • 常用操作与工具:
    • 临时切换模式:setenforce 0|1(0 为 Permissive,1 为 Enforcing)。
    • 查看与修复标签:ls -Zps -eZ(查看上下文),restorecon(按策略恢复默认上下文)。
    • 策略细粒度调优:getsebool -asetsebool -P < 布尔名> on|off(持久化开关),以及 audit2allow/ausearch 用于分析拒绝日志并生成或定位需要的策略模块。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux SELinux的工作原理是什么
本文地址: https://pptw.com/jishu/770144.html
Ubuntu如何进行磁盘整理 Ubuntu如何进行分区备份

游客 回复需填写必要信息