温馨提示×

如何使用Ubuntu日志进行系统审计

小樊
47
2026-01-08 07:22:55
栏目: 智能运维

Ubuntu 日志系统审计实操指南

一 核心日志与定位

  • Ubuntu 的日志主要集中在 /var/log/,常见关键文件与用途如下:
    • /var/log/syslog:系统级事件总日志(Debian/Ubuntu 常用)。
    • /var/log/auth.log:登录与认证日志(SSH、sudo、PAM 等)。
    • /var/log/kern.log:内核日志(硬件、驱动、内核报错)。
    • /var/log/dmesg:内核启动环形缓冲日志(可用 dmesg 命令查看)。
    • /var/log/cron:计划任务执行日志。
    • /var/log/lastlog、/var/log/faillog、/var/log/wtmp:登录历史、失败登录、当前登录会话信息(配合 last、faillog 使用)。
    • 服务日志:如 /var/log/nginx//var/log/mysql//var/log/mail.log 等。
  • 常用查看方式:
    • 实时查看:tail -f /var/log/syslog
    • 检索关键字:grep “error” /var/log/syslog
    • systemd 日志:journalctl -fjournalctl -u nginxjournalctl -b(本次启动)。

二 启用与加固系统日志

  • 确认服务运行与开机启用:
    • 检查:systemctl is-enabled rsyslogsystemctl is-enabled systemd-journald
    • 启动/重启:systemctl restart rsyslog
  • 配置 rsyslog 基础安全类日志分离(示例):
    • 编辑 /etc/rsyslog.conf/etc/rsyslog.d/50-default.conf
      • auth,authpriv. /var/log/auth.log*
      • cron. /var/log/cron*
      • kern. /var/log/kern.log*
      • 保存后重启 rsyslog。
  • 日志文件权限与防篡改:
    • 最小化访问:chmod 600 /var/log/auth.log
    • 追加不可改:chattr +a /var/log/auth.log(必要时对 /var/log/syslog 等也加固)
  • 日志轮转(保留策略):
    • 编辑 /etc/logrotate.d/rsyslog/etc/logrotate.conf,示例:
      • /var/log/auth.log { daily; rotate 30; compress; delaycompress; missingok; notifempty; create 640 root adm }
    • 测试配置:logrotate -d /etc/logrotate.conf
  • 远程集中日志(防本地擦除):
    • 客户端发送(UDP 示例):在 /etc/rsyslog.conf 添加
      • . @remote_log_server:514
    • 服务器接收(编辑 /etc/rsyslog.conf 启用模块与端口):
      • module(load=“imudp”)
      • input(type=“imudp” port=“514”)
    • 重启 rsyslog 后生效。

三 启用内核级审计 auditd

  • 安装与启动:
    • sudo apt update && sudo apt install auditd audispd-plugins -y
    • sudo systemctl enable --now auditd
  • 常用审计规则(按需精简与扩展):
    • 监控关键账户文件:
      • sudo auditctl -w /etc/passwd -p wa -k passwd_watch
      • sudo auditctl -w /etc/shadow -p wa -k shadow_changes
    • 监控命令执行(进程创建):
      • sudo auditctl -a always,exit -F arch=b64 -S execve -k process_exec
    • 仅监控普通用户命令(示例 UID≥1000):
      • sudo auditctl -a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=4294967295 -k user_commands
    • 审计日志自身防篡改:
      • sudo auditctl -w /var/log/audit/audit.log -p wa -k audit_log_tamper
  • 规则持久化与生效:
    • 将规则写入 /etc/audit/rules.d/audit.rules(或 /etc/audit/audit.rules),然后:
      • sudo augenrules --loadsudo systemctl restart auditd
  • 常用检索与报表:
    • 按文件:ausearch -f /etc/passwd
    • 按关键字:ausearch -k passwd_watch
    • 生成报告:aureport --fileaureport --processaureport --summary
  • 日志位置:/var/log/audit/audit.log(由 auditd 写入)。

四 登录与会话审计

  • 登录历史与失败登录:
    • 最近登录:last
    • 失败登录统计:lastb
    • 认证日志检索:grep “Failed password” /var/log/auth.log
  • 命令历史与时间戳(便于事后追溯):
    • /etc/bash.bashrc 或用户 ~/.bashrc 中设置:
      • export HISTTIMEFORMAT="%F %T "
  • 完整会话录制(对高权限账户尤佳):
    • 临时录制:script -a /var/log/session_$(date +%F_%T).log
    • 建议使用专业会话记录工具(如 tlog)进行结构化留存与检索。

五 分析与告警自动化

  • 日常分析工具:
    • 日报/周报:sudo apt install logwatch;示例:logwatch --detail High --service All --range today
    • Web 访问分析:goaccess /var/log/nginx/access.log -a -o /var/www/html/report.html
  • 入侵与暴力破解防护:
    • sudo apt install fail2bansudo systemctl enable --now fail2ban
  • 集中化与可视化:
    • 小规模可用 ELK/Graylog 搭建日志平台;或采用 Grafana Loki 轻量聚合与查询。

0