linux日志审计策略核心是“可追溯、防篡改、易分析”,聚焦高风险行为如权限变更、敏感文件访问、登录登出等,统一日志源与格式,强化完整性保护,并建立轻量级实时告警与响应机制。

Linux日志审计策略的核心是“可追溯、防篡改、易分析”,关键不在记录多少,而在记录什么、谁在操作、何时发生、是否异常。审计日志设计需兼顾安全性、性能与运维实用性,避免日志爆炸或关键信息缺失。
明确审计范围:聚焦高风险行为
不是所有操作都要审计,重点覆盖权限变更、敏感文件访问、用户登录登出、系统配置修改等高风险路径:
- sudo 命令执行(含参数和执行者)
- /etc/passwd、/etc/shadow、/etc/sudoers 等关键配置文件的读写
- 用户登录(成功/失败)、su/sudo 切换、SSH 远程连接(含源IP)
- 系统服务启停(systemctl start/stop/restart)
- 时间同步(timedatectl)、防火墙规则变更(iptables/nft)
统一日志源与格式:便于集中分析
混用 syslog、journald、应用自定义日志会增加分析难度。建议:
- 启用 auditd 作为内核级审计主干,捕获底层系统调用(如 openat、execve)
- 配置 rsyslog 或 journald 将 auditd 日志转发至统一日志服务器(如 ELK 或 Loki+Grafana)
- 日志条目至少包含:时间戳(UTC)、主机名、用户UID/GID、进程PID、命令路径、操作结果(success/fail)、事件类型
- 避免明文记录密码或密钥;对敏感字段(如 SSH 密码尝试)仅记录“认证失败”,不记输入内容
保护日志完整性:防删改、防丢失
审计日志本身是攻击者首要清除目标,必须独立于被审计主机:
- 禁用本地 root 删除 audit.log 权限(chattr +a /var/log/audit/audit.log 仅允许追加)
- 启用远程日志传输(rsyslog TCP+TLS 或 journald ForwardToSyslog + TLS),日志服务器独立部署、最小化服务
- 定期校验日志哈希(如用 aide 或自建 SHA256 摘要链),检测中间篡改
- 设置合理的日志轮转策略(logrotate),保留至少90天,压缩归档并异地备份
建立轻量级告警与响应机制
日志堆得再全,无人看等于无效。需嵌入基础实时识别能力:
- 用 auditctl 定义关键规则并触发 immediate alert(如连续5次 su 失败 → 写入 /var/log/alert)
- 用 swatch、go-audit 或简单 grep + systemd timer 扫描日志,匹配关键词(如 “failed password”、“invalid user”、“deleted rule”)
- 将高频告警(如 root 登录、sudo 权限提升)推送至企业微信/钉钉/邮件,并附上下文行(前2后2行)
- 为每类告警预设响应 SOP:例如多次 SSH 暴力尝试 → 自动封 IP(fail2ban)+ 通知管理员










