Linux SELinux与审计机制的关系
导读:Linux SELinux与审计机制的关系 核心关系概述 SELinux 是建立在 Linux Security Modules(LSM) 上的 强制访问控制(MAC) 机制,所有主体对客体的访问都会先经过 SELinux 的策略判定。判...
Linux SELinux与审计机制的关系
核心关系概述
- SELinux 是建立在 Linux Security Modules(LSM) 上的 强制访问控制(MAC) 机制,所有主体对客体的访问都会先经过 SELinux 的策略判定。判定过程由内核中的 AVC(Access Vector Cache) 与策略服务器完成,并在需要时生成审计事件。
- 审计机制 负责持久化记录安全事件。对 SELinux 而言,审计事件主要写入 /var/log/audit/audit.log,由 auditd 守护进程管理;常用工具包括 ausearch、aureport、audit2allow。
- 二者协同工作:SELinux 决定是否允许访问并在策略/条件满足时“产生审计事件”,审计机制负责“记录与查询”,共同实现可问责的安全控制闭环。
工作流程与审计触发
- 访问流程:进程发起系统调用 → 内核先做 DAC 检查 → 进入 LSM hook 调用 SELinux → 依据安全上下文与策略进行 MAC 判定(查询/更新 AVC)→ 允许或拒绝访问。
- 审计触发:
- 在 Enforcing 模式下,访问被拒绝时通常会生成 AVC 拒绝事件;在 Permissive 模式下不阻断但同样会记录事件,便于排障与策略调优。
- 通过策略中的 auditallow/auditdeny/dontaudit 可精确控制“成功/失败”是否写审计;例如 auditallow 可使成功的特定访问也被记录(注意它并不赋予权限)。
- 若某类检查的策略关闭了审计(例如使用 dontaudit),即便拒绝也可能不写日志。
日志与工具
- 关键日志与工具一览:
- 日志文件:/var/log/audit/audit.log(由 auditd 写入)。
- 查询命令:ausearch -m avc -ts recent(查看最近 AVC 拒绝)、ausearch -m avc -ts today(今天)、ausearch -m avc -c < 进程名> (按进程)。
- 报表与回放:aureport 生成综合审计报告。
- 策略辅助:从日志生成模块并用 semodule -i < 模块.pp> 安装,常用 audit2allow 辅助分析。
- 状态与模式:sestatus、getenforce、setenforce 0|1;永久模式编辑 /etc/selinux/config。
- 上下文管理:ls -Z 查看、chcon 临时修改、semanage 持久化维护。
典型协作场景
- 故障排查:服务异常或权限不足时,先用 ausearch -m avc 定位 AVC denied,结合 audit2allow 生成最小化的策略模块,再用 semodule -i 热加载,验证后固化。
- 合规取证:利用 aureport 与 ausearch 按时间、类型、进程等维度抽取审计记录,满足审计与留痕要求。
- 运行期调优:在 Permissive 下观察大量 AVC 日志,收敛策略后再切回 Enforcing,降低生产环境噪声与风险。
常见误区与建议
- 将 SELinux 与审计等同:前者是“判不判、怎么判”的 MAC 决策引擎,后者是“记不记、怎么查”的 日志系统;缺一不可。
- 认为所有拒绝都会被记录:若策略使用了 dontaudit 或未启用相应审计规则,拒绝事件可能不写日志。
- 忽视性能影响:AVC 命中缓存可提升性能,但审计写入会带来 I/O 开销;生产环境应合理配置 auditd(如日志大小、轮转)并定期归档分析。
- 仅依赖 DAC:即便 root 也可能被 SELinux 策略约束;运维与安全应同时审视 DAC 与 MAC 的协同效果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux SELinux与审计机制的关系
本文地址: https://pptw.com/jishu/759487.html
