Linux日志审计策略_审计日志设计

4次阅读

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

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)+ 通知管理员
text=ZqhQzanResources