SELinux在Linux中作用是什么
导读:SELinux在Linux中的作用 核心概念与定位 SELinux(Security-Enhanced Linux)是 Linux 的强制访问控制(MAC)安全架构,内置于Linux 内核,通过 Linux Security Modules...
SELinux在Linux中的作用
核心概念与定位 SELinux(Security-Enhanced Linux)是 Linux 的强制访问控制(MAC)安全架构,内置于Linux 内核,通过 Linux Security Modules(LSM) 框架实现。它并非替代传统的 DAC(自主访问控制),而是在其之上强制执行由管理员定义的策略,使系统遵循最小权限原则,即便进程以 root 身份运行,也会被策略约束,从而显著降低被攻陷后的横向移动与破坏范围。SELinux 最初由**美国国家安全局(NSA)**主导开发,2000 年开源,2003 年并入上游内核主线。
工作原理
- 所有主体与客体(进程、文件、端口等)都被打上安全上下文标签,格式为 user:role:type:level(其中 type 在常见的 targeted 策略中最关键,level 用于 MLS 等高级场景)。
- 当进程(subject)请求访问对象(object)时,内核先查询 AVC(Access Vector Cache) 缓存;未命中则交由安全服务器依据策略与安全上下文进行决策,最终允许或拒绝访问。
- 拒绝时通常会在日志(如 /var/log/messages)中出现 “avc: denied” 信息,便于审计与排障。
- 通过这种“标签 + 类型强制(Type Enforcement)”的机制,SELinux 能细粒度地控制谁能以何种方式访问哪些资源。
运行模式与策略类型
- 运行模式(由 /etc/selinux/config 的 SELINUX 项配置):
- Enforcing:策略强制生效,违规访问被拒绝并记录。
- Permissive:仅记录违规不阻断,便于排障与策略调优。
- Disabled:完全关闭 SELinux(需重启生效)。
- 策略类型(由 SELINUXTYPE 指定):
- targeted:默认策略,针对一组关键进程进行约束,其他进程遵循 DAC。
- minimum:在 targeted 基础上的更小范围保护。
- MLS(Multi-Level Security):多级安全,适合高安全需求场景。
带来的安全收益
- 最小化攻击面:严格执行最小权限,即便发生入侵,进程也难以越权访问关键资源。
- 进程隔离:将进程限制在各自的域(domain),避免相互干扰与资源滥用。
- 增强应用安全:防止应用越界访问系统资源,提升运行一致性与可预期性。
- 精确访问控制:可按系统需求细粒度定制策略,兼顾安全与功能。
常见运维提示
- 排查访问被拒时,优先检查 /var/log/messages 中的 “avc: denied” 日志,定位缺失的标签或策略规则。
- 需要临时排障可切换为 Permissive;若要从关闭改为启用,建议先设为 Permissive 验证后再切回 Enforcing,以避免因策略不当导致业务中断。
- 生产环境常用 targeted 策略,并辅以 SELinux 布尔值(Booleans) 做细粒度、无需重编译的动态调整。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SELinux在Linux中作用是什么
本文地址: https://pptw.com/jishu/754960.html
