Ubuntu SELinux日志查看
小樊
37
2025-11-14 21:04:09
Ubuntu SELinux日志查看与排查
一 前置检查
- 确认是否启用 SELinux:运行命令 getenforce(返回 Enforcing/Permissive/Disabled)。如返回 Disabled,需先启用 SELinux 才可能产生 AVC 日志。也可使用 sestatus 查看更详细状态。注意:Ubuntu 默认不启用 SELinux,若未启用则不会有 SELinux 拒绝日志。启用通常涉及编辑 /etc/selinux/config 并重启系统。
二 日志位置与实时查看
- 主要日志文件:SELinux 的 AVC(Access Vector Cache)拒绝等审计事件由 auditd 写入 /var/log/audit/audit.log。实时查看可用:
- 直接跟踪日志:sudo tail -f /var/log/audit/audit.log
- 过滤拒绝事件:sudo grep -i “denied” /var/log/audit/audit.log
- 若系统未安装或未运行 auditd,先安装并启动:sudo apt install auditd,sudo systemctl enable --now auditd。未运行 auditd 时,通常看不到 /var/log/audit/audit.log 中的 SELinux 审计记录。
三 常用检索与分析命令
- 按 AVC 类型检索:sudo ausearch -m avc -ts today(查看今天所有 AVC 事件)
- 按时间范围检索:sudo ausearch -m selinux -ts recent -te now(最近一段时间的 SELinux 审计事件)
- 生成 SELinux 审计报告:sudo aureport -m selinux
- 按自定义关键字检索:ausearch -k (配合审计规则使用,便于聚焦特定路径或进程)
- 快速查看最近拒绝:ausearch -m avc --start recent
四 无日志时的排查与启用
- 确认 auditd 状态:sudo systemctl status auditd;如未运行,执行 sudo systemctl enable --now auditd 并再次检查日志。
- 启用 SELinux:编辑 /etc/selinux/config,设置 SELINUX=enforcing(或 permissive 用于排错),保存后重启系统。
- 验证:重启后用 getenforce 确认为 Enforcing/Permissive,再复现问题并查看 /var/log/audit/audit.log。