CentOS系统在日常运行中会产生大量日志,这些记录是分析安全事件最直接的数据来源。无论是ssh暴力破解、异常提权还是服务异常崩溃,都会在对应日志中留下线索。理解日志结构与查看方式,是运维人员必备的能力。

CentOS日志文件的主要位置
在传统CentOS 6及以前版本中,系统日志主要由rsyslog管理,常见文件位于/var/log/目录。CentOS 7及之后默认使用systemd,日志由journald统一收集,但兼容rsyslog落盘。
| 日志路径 | 主要内容 |
|---|---|
| /var/log/messages | 系统通用信息,含部分安全相关记录 |
| /var/log/secure | 认证与授权信息,如ssh登录、sudo操作 |
| /var/log/audit/audit.log | auditd记录的细粒度安全审计事件 |
使用journalctl分析系统日志
systemd环境推荐使用journalctl查询日志,可按时间和单元过滤。例如查看本次启动以来的安全相关记录:
# 查看ssh服务本次启动后的日志 journalctl -u sshd --since today # 查看所有认证失败事件 journalctl _COMM=sshd | grep "Failed password"
从secure日志识别异常登录
/var/log/secure记录了所有通过PAM的登录行为。当发现大量Failed password,说明可能存在爆破。可配合last命令查看成功登录历史:
# 显示最近登录用户及来源IP
last -i | head -20
# 统计secure中失败次数最多的IP
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
利用auditd深入审计
auditd能监控文件修改与系统调用。下面规则监控/etc/passwd被改写:
# 添加审计规则 auditctl -w /etc/passwd -p wa -k passwd_change # 搜索相关事件 ausearch -k passwd_change
建立日常检查习惯
建议将日志检查写入定时任务,使用logwatch或自写脚本每日汇总。发现陌生IP、非工作时间登录、频繁权限拒绝时,应立即隔离账户并复盘。通过CentOS日志功能,安全事件可追溯、可预警。