SELinux 拒绝记录
SELinux 在强制模式下会拒绝不符合策略的操作,并把细节写成 AVC 记录。这类记录有两层价值:一是能说明某个进程尝试访问了哪些本不该访问的资源,二是可以解释服务异常的原因,避免把策略拦截误判成入侵行为。
基本信息
| 查看命令 | ausearch -m AVC、dmesg | grep -i avc |
|---|---|
| 状态检查 | getenforce、sestatus |
| 日志位置 | /var/log/audit/audit.log 或内核消息缓冲区 |
| 分析工具 | audit2why、audit2allow |
| 运行模式 | enforcing、permissive、disabled |
| 权限要求 | 读取审计日志与切换模式需要 root |
典型使用场景
- 排查服务异常是否由策略拦截引起
- 分析进程越权访问敏感文件的尝试
- 区分策略冲突与恶意行为
- 为策略调整提供依据
- 与其它审计事件一起还原访问时序
最小示例
最小示例
getenforce # 当前运行模式
sestatus 2>/dev/null | head -6 # 状态汇总
ausearch -m AVC -ts today 2>/dev/null | head -40 # 今天的拒绝记录
dmesg | grep -i avc | tail -20 # 未运行审计服务时的兜底查看
ausearch -m AVC -ts today 2>/dev/null | audit2why 2>/dev/null | head -20
grep -c 'avc:' /var/log/audit/audit.log # 记录总数字段与关注点
| 字段 | 含义 | 关注点 |
|---|---|---|
| denied | 被拒绝的操作 | 说明策略拦截确实发生 |
| comm 与 exe | 发起访问的进程 | 判断是已知服务还是异常程序 |
| scontext | 源安全上下文 | 进程所处的域 |
| tcontext | 目标安全上下文 | 被访问对象的类型 |
| tclass | 对象类别 | 文件、目录或套接字 |
| permissive | 仅告警未阻止 | 记录存在但操作实际已成功 |
被拒对象是否为敏感文件值得优先关注:针对口令文件与密钥目录的拒绝记录,往往指向尝试越权访问的进程。
强制模式与宽容模式的记录含义不同:宽容模式下操作实际执行成功,只是留下告警,判断影响时必须区分。
大量重复的 AVC 记录常来自策略冲突或自定义程序,要结合程序来源与部署时间区分策略问题与恶意行为。
不要在排查过程中把模式切换为宽容或禁用:会改变系统安全状态,也使后续记录失去原有判定基础。