linux日志审计需以auditd为核心,配合权限控制、日志轮转、时间同步与集中外发,通过规则配置、完整性保障及定期验证,满足等保2.0三级、gdpr等合规要求。

Linux日志审计不是装个服务就完事,关键在“可追溯、防篡改、能验证”。核心是用好 auditd 体系,再配合权限控制、日志管理与集中留存,才能真正满足等保2.0三级、GDPR 或金融监管的硬性要求。
启用并持久化 auditd 服务
auditd 是内核级审计入口,必须稳定运行且开机自启:
- 检查状态:systemctl status auditd;未安装则用 apt-get install auditd(Debian/Ubuntu)或 yum install audit(RHEL/CentOS)
- 启动并设为开机自启:systemctl start auditd && systemctl enable auditd
- 确认内核模块已加载:lsmod | grep audit,缺失需检查内核是否支持 audit 功能
配置精准有效的审计规则
规则要聚焦高风险行为,避免泛监控拖慢系统。所有规则写入 /etc/audit/rules.d/audit.rules,再执行 augenrules --load 加载:
- 监控敏感文件变更:-w /etc/passwd -p wa -k identity_changes(写+属性改)
- 捕获提权命令执行:-a always,exit -F arch=b64 -S execve -C uid!=euid -F euid=0 -k privileged_commands
- 记录登录登出事件:-w /var/log/tallylog -p wa -k logins,同时确保 sshd 和 pam_loginuid 配置正确
- 禁止临时规则干扰:删除 auditctl -w 的运行时规则,只保留 rules.d 下的持久化配置
保障日志完整性与可用性
本地日志易被清除,单点存储等于无审计:
- 严格限制访问权限:chmod 0700 /var/log/audit/,chmod 0600 /var/log/audit/audit.log
- 启用日志轮转:/etc/logrotate.d/auditd 中设置 maxsize 50M、rotate 6、compress
- 强制时间同步:chrony 指向可信 NTP 源,并在 /etc/chrony.conf 加 makestep 1 -1 防止时间跳变导致日志顺序错乱
- 必须外发日志:用 rsyslog 或 journalbeat 将 auth、audit、secure 日志实时推送至独立 SIEM(如 ELK、Splunk 或商用 SOC)
验证与持续合规运营
规则写了≠生效,得动手测、定期查:
- 触发测试行为:如用 sudo touch /tmp/test,再执行 ausearch -m SYSCALL -ts recent -i | grep test 查是否捕获
- 生成登录报告:aureport --login --summary 快速看近期登录分布
- 自动化基线检查:用 oscap xccdf eval 扫描等保/STIG 合规项,或用 lynis audit system 获取修复建议
- 每月人工抽检:从 SIEM 中抽样查看特权命令、密码修改、sudo 切换等关键事件链是否完整、时间戳是否连续、用户标识是否准确










