linux全链路审计系统以auditd为核心,整合/var/log/auth.log(或secure)、audit.log、sudo.log和btmp四大可信日志源,覆盖操作五要素,通过精准规则、日志加固、远程集中与上下文增强实现可追溯、防绕过、不可抵赖。

构建 Linux 全链路审计系统,核心是让每一次关键操作都“可追溯、防绕过、不可抵赖”,覆盖“谁、何时、从哪来、做了什么、结果如何”五个维度,而不是只看 history 或零散日志。
聚焦四大可信日志源
别依赖 .bash_history(易清空、不记录非交互式命令),真正可信的是系统级日志:
- /var/log/auth.log(或 /var/log/secure):记录所有 PAM 认证事件——SSH 登录(含源 IP)、su 切换、sudo 执行、密码修改、用户增删,带明确成功/失败状态和时间戳
- /var/log/audit/audit.log(auditd 产出):内核级捕获 execve 等系统调用,能还原完整命令行(含参数、脚本路径),无论是否走 shell、是否用 python -c 或 ssh 直接执行,都逃不过
- /var/log/sudo.log(需在 sudoers 中显式启用 Defaults logfile):比 auth.log 更聚焦提权动作,保留原始命令字符串,便于还原上下文
- /var/log/btmp(用 lastb 查看):所有失败登录尝试的原始记录,是识别暴力破解的第一线索
启用 auditd 并配置精准规则
auditd 是全链路审计的基石,必须开机自启且规则持久化:
- 安装并启动:
apt install auditd(Debian/Ubuntu)或yum install audit(RHEL/CentOS),再执行systemctl enable --now auditd - 写入规则文件(如
/etc/audit/rules.d/cmd.rules):- 捕获所有命令执行:
-a always,exit -F arch=b64 -S execve -k cmd_exec(32 位系统用 b32) - 监控敏感文件变更:
-w /etc/passwd -p wa -k identity_change、-w /etc/shadow -p wa -k shadow_change - 保护审计自身:
-w /var/log/audit/ -p wa -k audit_log_access
- 捕获所有命令执行:
- 加载规则:
augenrules --load,验证:auditctl -l | grep cmd_exec - 建议加
-F uid!=0过滤 root 自身维护行为,避免日志爆炸
加固日志完整性与集中留存
本地日志等于没审计——必须防篡改、防丢失、可验证:
- 权限收紧:
chmod 0600 /var/log/sudo.log、chmod 0700 /var/log/audit/、chown root:root所有关键日志文件和目录 - 强制追加保护:
chattr +a /var/log/audit/audit.log(仅允许追加);高安全场景可用chattr +i(需临时解除才能轮转) - 远程转发(必需):用 rsyslog 将 auth.log、audit.log、sudo.log 实时推送至独立 SIEM 或日志服务器
示例配置(/etc/rsyslog.d/10-remote.conf):*.* @@(o)192.168.10.100:514;RSYSLOG_ForwardFormat(TCP + TLS) - 时间同步:chrony 指向可信 NTP 源,并在
/etc/chrony.conf加makestep 1 -1,防止时间跳变导致日志顺序错乱
增强操作上下文与结构化分析
auditd 记录底层行为,但缺终端会话、工作目录等上下文,需补充:
- Shell 命令联动:在
/etc/bash.bashrc添加:export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.info "$(whoami) [$$] $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") [$RETRN_VAL]"'
再配 rsyslog 将 local6 日志外发,补全命令来源与返回值 - 集中分析推荐轻量组合:Loki + Promtail + Grafana
Promtail 抓取 audit.log 和 syslog,打上 host/env/role 标签;Grafana 中用 LogQL 快速检索,例如:{job="system-audit"} |~ "execve" | json | uid != 0 - 设置基础告警:如 5 分钟内同一用户执行 >10 次 sudo su -,或出现
rm -rf /、dd if=等高危模式











