如何使用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 -f、journalctl -u nginx、journalctl -b(本次启动)。
二 启用与加固系统日志
- 确认服务运行与开机启用:
- 检查:systemctl is-enabled rsyslog、systemctl 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 添加
- 服务器接收(编辑 /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 --load 或 sudo systemctl restart auditd
- 常用检索与报表:
- 按文件:ausearch -f /etc/passwd
- 按关键字:ausearch -k passwd_watch
- 生成报告:aureport --file、aureport --process、aureport --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 fail2ban;sudo systemctl enable --now fail2ban
- 集中化与可视化:
- 小规模可用 ELK/Graylog 搭建日志平台;或采用 Grafana Loki 轻量聚合与查询。