日志是安全排查的第一手资料
系统层面的关键日志位置:
/var/log/auth.log(Debian/Ubuntu)或journalctl -u sshd:登录与认证记录/var/log/syslog/journalctl:系统级事件/var/log/nginx/access.log:Web 访问记录auditd日志(/var/log/audit/audit.log):文件访问与系统调用审计
快速排查异常登录
# 查看最近登录成功记录
last -20
# 查看登录失败记录
sudo grep "Failed password" /var/log/auth.log | tail -50
# 统计失败登录来源 IP 排名
sudo grep "Failed password" /var/log/auth.log \
| awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
使用 auditd 监控关键文件
sudo apt install auditd
sudo systemctl enable --now auditd
# 监控 /etc/passwd 的写入操作
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
# 查询相关审计记录
sudo ausearch -k passwd_changes
规则可写入 /etc/audit/rules.d/audit.rules 实现持久化,重启后仍然生效。
轻量级入侵检测:AIDE
AIDE(Advanced Intrusion Detection Environment)通过文件完整性校验发现未授权变更:
sudo apt install aide
sudo aideinit
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# 定期检查
sudo aide --check
建议配合 cron 或 systemd timer 定期执行检查,并将结果发送到独立的日志收集系统,避免攻击者篡改本机日志后不留痕迹。
集中化日志的价值
单机日志容易被入侵者清除或篡改。对多台服务器场景,建议将日志实时转发到独立的日志服务器或云端日志服务(如通过 rsyslog 转发),确保即便主机被攻陷,审计记录依然可追溯。
# /etc/rsyslog.d/50-forward.conf
*.* @@log-server.internal:514
小结
日志审计的核心不在于工具本身,而在于是否建立了“定期检查 + 集中存储 + 关键指标告警”的闭环流程。auditd 与 AIDE 是入门级但足够实用的组合。