准备工作与前置条件
在进行 CentOS日志中快速识别恶意攻击 的实操前,需要建立一个可观测、可追踪的环境。时间同步与日志完整性是基础,只有时间一致才能对齐事件序列。本文所述的方法围绕常用日志源展开,帮助你在短时间内定位异常。若你看到标题中的 temperature=0.6,这其实代表在 SEO 写作中的探索性幅度,而实操部分仍以日志分析为核心。
核心目标是从现有日志中快速抽取异常信号,尽量减少噪声干扰。为此,确保服务器开启并持续运行的审计子系统(auditd)、将日志统一收集到本地或集中日志管理平台,以及配置好时区和日志轮转策略。
# 安装并启动 auditd(若尚未安装)
yum install -y audit
systemctl enable --now auditd# 确认 rsyslog 服务运行,用于日志统一收集
systemctl enable --now rsyslog# 确保时钟同步
yum install -y chrony
systemctl enable --now chronyd
chronyc sources
CentOS 的关键日志源与含义
/var/log/secure 是 CentOS 上最重要的认证相关日志,包含 SSH 登录、sudo 与其他认证事件的记录。/var/log/messages 捕获内核与系统级日志,帮助追踪底层错误与异常行为。/var/log/audit/audit.log 来自 auditd,用于详细的系统调用审计。掌握这些日志源,能快速定位攻击痕迹的落点。
另外一个需要关注的来源是 systemd 的 journal,通过 journalctl 可以对系统事件进行时间线分析。将日志轮转与集中化日志服务结合,可以实现跨主机的威胁检测与取证。下面给出常用日志路径的快速检查示例,帮助你确认日志是否正常产生。
# 查看 /var/log/secure 的最近条目
tail -n 200 /var/log/secure# 查看 /var/log/audit/audit.log 的最近事件
ausearch -ua root -m all --start recent -i
快速筛选异常行为的实用 grep 技巧
在海量日志中快速发现异常,正则筛选是第一道防线。常见的异常信号包括反复的失败认证、异常用户切换、以及非交互式会话的异常执行。下面给出几组常用的筛选条件,帮助你在 日积月累的日志中 提炼出高可信度的告警线索。
1)SSH 登录失败与暴力破解迹象:在 /var/log/secure 中经常出现“Failed password”或“authentication failure”的记录。
grep -iE "Failed password|authentication failure" /var/log/secure -n | tail -n 100
2)Root 用户直接登录或切换:关注“root”账户的直接登录与 sudo 事件。
grep -E "root.*(session|pam|sudo)" /var/log/secure -n
3)异常时间段的命令执行:可结合 cron 与历史命令,发现非正常时间点的执行。
grep -iE "session opened for user|CRON|sudo" /var/log/secure -n | tail -n 100基于 journalctl 的时间线分析方法
journalctl 提供了强大的时间线分析能力,可以按时间范围、单元、优先级等条件筛选日志。通过把过滤条件与文本匹配结合,能快速构建攻击事件的时间线。实际应用中,先锁定相关服务的日志,再向前回溯以还原攻击过程。
1)查看最近 24 小时的 SSHD 失败尝试,结合时间与关键字过滤能快速定位攻击窗口。
journalctl _COMM=sshd --since "24 hours ago" | grep -i "Failed password"
2)查看某次异常事件的系统级错误,可将日志优先级限定在 err 及以上,辅助定位系统层面的异常。
journalctl -p err --since "2025-08-19 10:00:00" -b
3)跨时间段的事件聚合:将多个筛选条件组合,快速汇总相关事件,便于后续取证分析。
journalctl _COMM=sshd --since "2025-08-19 00:00:00" --until "2025-08-19 23:59:59" | grep -i "Failed password"auditd 与 ausearch 的深度检测能力
auditd 提供了可配置的审计规则,用于监控对关键文件、系统调用与命令执行的行为。借助 ausearch 与 aureport 可以对事件进行定位与统计,帮助你从对话式事件走向结构化取证。
1)添加审计规则监控关键路径:对 /etc/passwd、/etc/shadow、以及 /bin/login 等敏感资源进行监督,遇到未授权访问时立即记录。

auditctl -w /etc/passwd -p rwxa -k passwd-watch
auditctl -w /etc/shadow -p rwxa -k shadow-watch
auditctl -w /bin/login -p x -k login-watch
2)使用 ausearch 追踪特定事件:通过关键字和时间范围检索,快速定位相关行为。
ausearch -k login-watch -m login -ts today -i
3)生成总览报告:aureport 提供关于事件、用户、操作的摘要,方便汇报与取证。
aureport -k login-watch -x --summary日志关联与跨主机威胁检测的实践
单机日志只能提供有限线索,跨主机日志关联与集中化分析才能揭示大规模攻击。通过 集中日志平台、时间对齐、以及跨主机事件的字段共享,你可以发现同一攻击者在不同主机间的移动轨迹。
实操要点是确保不同主机的日志字段格式一致、为核心事件打上统一的 标签/Key,便于在 SIEM 或自建分析脚本中进行相关性分析。下面给出一个跨主机日志聚合的简单示例思路,帮助你快速上手。
# 假设使用 rsyslog 将本机日志转发到集中日志服务器
# 在 /etc/rsyslog.d/forward.conf 添加如下(示例)
*.* @logserver.example.com:514# 集中服务器端,使用 awk/grep 进行跨主机聚合(示例伪代码)
# 假设已经从各机采集到同一格式的日志文件 /var/log/central/all.log
grep -i "Failed password" /var/log/central/all.log | awk '{print $1" "$2" "$3" "$9" "$0}' | sort | uniq -c | sort -nr | head -n 20
持续改进是提升检测能力的关键:定期审查审计规则、更新日志轮转策略、以及将新发现的攻击模式转化为新的日志标签与告警条件。


