识别思路与关键日志
- 先明确要重点看护的日志源与典型异常信号,做到“看哪里、找什么”。下表给出常用日志与对应异常特征:
| 日志文件 |
关注重点 |
常见异常关键词或现象 |
| /var/log/auth.log |
登录与提权 |
Failed password、Accepted、sudo、su、异常来源IP |
| /var/log/syslog 或 /var/log/messages |
系统全局事件 |
error、segfault、服务异常重启 |
| /var/log/kern.log |
内核与硬件 |
OOM、驱动报错、内核崩溃线索 |
| /var/log/cron.log |
计划任务 |
可疑的cron执行、非授权任务 |
| /var/log/dpkg.log |
软件变更 |
异常时间/来源的包安装或升级 |
| /var/log/apache2/access.log、/var/log/apache2/error.log |
Web访问与错误 |
大量4xx/5xx、可疑URL、SQL注入特征 |
| /var/log/mysql/error.log |
数据库错误 |
频繁连接失败、权限错误、崩溃 |
以上日志路径与关注点适用于大多数 Debian 系统,可据此建立基线告警与审计清单。
快速排查命令与用法
- 实时查看与过滤
- 系统日志流:sudo tail -f /var/log/syslog | grep -i “error|fail”
- systemd 日志:sudo journalctl -f -p err…alert(仅高优先级)
- 认证异常
- 失败登录:sudo grep “Failed password” /var/log/auth.log | tail -n 20
- 成功登录:sudo grep “Accepted” /var/log/auth.log
- 最近登录与 sudo 使用:last -a | head、sudo grep “sudo:” /var/log/auth.log | tail -n 20
- 服务与内核
- 某服务日志:sudo journalctl -u nginx.service -b(仅本次启动)
- 内核与 OOM:sudo journalctl -k | grep -i “oom|segfault”
- Web 与数据库
- Web 错误:sudo tail -n 50 /var/log/apache2/error.log
- 数据库错误:sudo tail -n 50 /var/log/mysql/error.log
- 批量统计与频率分析
- 统计失败登录来源:sudo grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | sort | uniq -c | sort -nr | head
- 按时间窗口聚合错误:sudo journalctl --since “2025-11-30 00:00:00” | grep -i error | wc -l
以上命令覆盖常用的“看日志、筛关键字、按时间/服务过滤、做频次统计”的排查路径,可快速定位异常线索。
常见异常模式与处置要点
- 暴力登录与横向移动
- 特征:Failed password 短时间高频、来自同一或相邻网段的大量尝试。
- 处置:启用 fail2ban 自动封禁;在防火墙层面限制来源;复核 /var/log/auth.log 与 last 记录确认是否被入侵。
- 可疑提权与后门
- 特征:sudo 非授权使用、su 异常切换、新增未知用户或 SSH 公钥。
- 处置:立即撤销可疑授权、强制重置关键账户口令、审计 /var/log/auth.log 与时间线。
- 内核异常与资源枯竭
- 特征:OOM、频繁 segfault、驱动报错。
- 处置:依据 /var/log/kern.log 与 journalctl -k 定位进程/驱动,释放内存或回退更新。
- Web 攻击迹象
- 特征:4xx/5xx 爆发、异常 User-Agent、可疑 URI(含 SQL 注入特征)。
- 处置:临时封禁来源 IP,检查 /var/log/apache2/access.log 与 error.log,修补应用漏洞。
- 计划任务滥用
- 特征:cron 新增未知任务、非常规时间执行。
- 处置:审查 /var/log/cron.log 与 /etc/cron*,禁用可疑任务并溯源。
- 软件包异常变更
- 特征:/var/log/dpkg.log 出现非计划安装/升级。
- 处置:回滚异常包,核查软件源与完整性,更新至安全版本。
以上模式结合日志特征与响应动作,可在早期阶段发现并阻断多数入侵与破坏行为。
长期监控与自动化
- 日志收集与可视化
- 集中化方案:ELK Stack(Elasticsearch、Logstash、Kibana)、Graylog、Splunk,用于统一采集、检索、告警与可视化。
- 报表与巡检
- 日报/周报:sudo logwatch --output=html --service=syslog,便于定期审计与回溯。
- 入侵防护联动
- fail2ban 自动封禁暴力来源;结合 iptables/nftables 或云安全组策略形成多层防护。
- 日志轮转与合规
- 配置 logrotate 控制日志大小与保留周期,防止磁盘被占满并满足审计留存要求。
- 主机与网络侧加固
- 部署 OSSEC/Wazuh 做主机入侵检测,部署 Snort/Suricata 做网络入侵检测,配合 SIEM 实现关联告警与响应。