温馨提示×

linux syslog能审计吗

小樊
46
2026-10-28 17:40:02
栏目: 智能运维

可以,Linux 的 syslog 是可以用于审计的,但它属于基础日志审计,不是专门的安全审计系统。下面从几个层面说明。


一、syslog 能审计什么?

syslog(以及 systemd 下的 journald)可以记录:

1. 系统级事件

  • 系统启动 / 关机
  • 服务启动、停止、崩溃
  • 内核消息(kernel log)
  • 定时任务(cron)

2. 用户与认证相关(常用于审计)

  • 登录 / 登出(包括 ssh、本地登录)
  • sudo 执行命令
  • su 切换用户
  • PAM 认证失败

示例:

Aug 20 10:12:01 server sshd[1234]: Accepted password for root from 1.2.3.4
Aug 20 10:13:22 server sudo:   user1 : TTY=pts/0 ; COMMAND=/bin/systemctl restart nginx

3. 应用日志

  • Nginx / Apache
  • 数据库
  • 自定义业务程序(通过 syslog 接口)

二、syslog 审计的局限性

⚠️ syslog 不是完整的安全审计方案

局限性包括:

  1. 默认不记录命令内容

    • 普通 shell 命令不会进 syslog
    • 只能靠 sudo 或额外配置
  2. 容易被篡改

    • 本地日志可被 root 修改
    • 没有防篡改机制
  3. 缺乏细粒度审计

    • 无法审计:
      • 文件读取
      • 系统调用
      • 进程行为
  4. 依赖于程序“愿意写日志”

    • 程序不写,syslog 就不知道

三、常见的 syslog 审计增强方案

✅ 1. 使用 rsyslog / syslog-ng 转发

远程集中日志,防止本地篡改:

*.* @@log-server:514

✅ 2. 开启 sudo 审计

/etc/sudoers:

Defaults logfile=/var/log/sudo.log
Defaults log_input, log_output

✅ 3. 使用 auditd(真正的审计)

Linux 自带 audit 子系统,比 syslog 强很多:

  • 文件访问
  • 系统调用
  • 用户命令
  • 权限变更

示例:

auditctl -w /etc/passwd -p wa -k passwd_change

✅ 4. 结合 SIEM

  • ELK
  • Splunk
  • Graylog

四、总结一句话

✅ syslog 可以审计(尤其是登录、sudo、服务行为)
❌ 但不能替代专业审计(auditd / SIEM)

如果你愿意,我可以:

  • 给你一份 syslog 审计配置示例
  • 对比 syslog vs auditd
  • 针对 等保 / 合规 给建议

0 踩