答案:Linux 安全审计日志系统以 auditd 为核心,通过配置 /etc/audit/auditd.conf 和规则文件监控关键文件、系统调用及用户行为,使用 ausearch 和 aureport 分析日志,并强化日志存储与远程传输以提升安全性。

在 Linux 系统中构建安全审计日志系统,核心是利用 auditd 服务,它是 Linux Audit System 的主要组件,能够记录系统调用、文件访问、用户行为等关键操作,帮助实现合规性检查和入侵检测。
启用并配置 auditd 服务
大多数主流 Linux 发行版(如 CentOS、RHEL、Ubuntu)默认提供 auditd 包。首先确保安装并启动服务:
安装 auditd(以 CentOS 为例):
sudo yum install audit audit-libs -y
sudo systemctl enable auditd
sudo systemctl start auditd
服务启动后,审计规则需手动配置才能生效。主要 配置文件 位于:
-
/etc/audit/auditd.conf:定义日志存储路径、日志轮转、磁盘空间告警等全局参数 -
/etc/audit/rules.d/audit.rules或/etc/audit/rules.d/目录下的规则文件:存放持久化审计规则
常见关键配置项:
-
log_file = /var/log/audit/audit.log:指定日志路径 -
max_log_file = 50:单个日志最大 50MB -
max_log_file_action = ROTATE:达到上限后轮转 -
space_left = 100:剩余磁盘空间低于 100MB 时触发警告 -
admin_space_left = 50:紧急保留空间
配置关键审计规则
通过 auditctl 命令可临时添加规则,但重启后失效。建议将规则写入 /etc/audit/rules.d/audit.rules 以持久化。
监控敏感文件和目录:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k privileged-actions
-w /var/log/audit/ -p wa -k audit-log-access
说明:-w指定监控路径,-p wa表示监听写入(write)和属性变更(attribute),-k为自定义标签,便于后续搜索。
监控系统调用:
-a always,exit -F arch=b64 -S execve -S unlink -S rmdir -k suspicious-exec
该规则记录所有 64 位系统的execve(执行程序)、unlink/rmdir(删除文件 / 目录)调用,可用于追踪可疑命令执行。
监控特定用户行为:
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -F auid!=4294967295 -F auid=1000 -k time-change
监控 UID 为 1000 的用户是否尝试修改系统时间。
查询与分析审计日志
使用 ausearch 和aureport工具 解析日志。
按关键字搜索:
sudo ausearch -k identity
查找所有标记为“identity”的事件,例如对 /etc/shadow 的修改。
生成汇总报告:
sudo aureport –summary:查看事件类型汇总
sudo aureport -f -i:文件访问报告(- i 表示人性化输出)
sudo aureport -u -i:用户活动报告
日志中关键字段包括:
-
msg=audit(……):时间戳和事件 ID -
exe=:执行程序路径 -
comm=:命令名 -
cwd=:当前工作目录 -
key=:规则标签 -
uid、auid:实际用户 ID 和登录用户 ID(重要用于识别提权行为)
增强审计系统的安全性
审计日志本身可能成为攻击目标,需加强保护:
- 设置日志文件权限为
600,属主root:root - 配置远程日志服务器,使用
audispd-plugins将日志实时发送至 SIEM 系统(如 Syslog-ng、Rsyslog) - 定期备份并归档日志,防止本地篡改或删除
- 禁用非必要用户的 shell 访问,减少日志噪音
- 结合
fail2ban或自定义脚本,对异常行为自动响应
基本上就这些。合理配置 auditd 能显著提升系统可观测性和安全性,关键是明确审计目标,聚焦高风险操作,并建立日志分析机制。不复杂但容易忽略。