系统安全审计:auditd 规则配置与日志分析实战
概述 凌晨三点,你被告警吵醒。登录服务器一看,某个关键配置文件被改了,但 last 命令显示那个时间段没有人登录,bash_history 也没记录。你知道出事了,但不知道是谁干的、怎么干的。 这时候你需要的是 auditd——Linux 内核自带的审计系统。它就像飞机的黑匣子,记录系统上发生的每一个关键动作:谁执行了什么命令、访问了哪些文件、改了什么配置、什么时候提的权。而且这些记录在内核层面生成,不依赖 shell history 或应用日志——攻击者就算删了 ~/.bash_history,也删不掉 auditd 的日志。 本文从安装部署讲到规则编写、日志分析和生产调优。不是手册翻译,是踩过坑后的实战经验。 auditd 是什么,和 syslog 有什么区别 先说清楚一个常见的混淆。很多人觉得"我有 syslog/journald 了,还要 auditd 干嘛?" 两者记录的东西完全不同: 对比项 syslog/journald auditd 记录层级 应用层 内核层 记录内容 服务启动/停止、应用日志、登录记录 系统调用、文件访问、权限变更 粒度 粗(按事件) 细(按系统调用) 防篡改 无(root 可随意修改) 有(日志写入前加密校验) 性能影响 极低 有,取决于规则数量和复杂度 典型用途 日常运维日志 安全审计、合规检查、应急响应 打个比方:syslog 像小区门口的保安登记簿,谁进谁出记一笔。auditd 像每户人家的门禁记录加室内监控——什么时候开了哪个门、谁开的、开了多久,精确到秒。 auditd 最初源自 Solaris 的审计子系统,Linux 内核 2.6(2004 年)开始引入,由 Red Hat 和 IBM 主导开发。现在已经是 CIS Benchmark、PCI-DSS、HIPAA 等安全合规标准的必备组件。 auditd 已成为 Linux 安全标准(如 CIS Benchmark、PCI-DSS、HIPAA)的重要组成部分。参考来源:Demystifying Auditd: A Complete Guide for Linux Security Monitoring...