在CentOS 7系统中,SSH(Secure Shell)是远程管理的核心服务,其日志文件是系统管理员进行安全审计、故障排查和性能监控的关键信息来源,通过细致地分析这些日志,管理员可以清晰地了解系统的访问情况,及时发现潜在的安全威胁,并确保服务器的稳定运行。

SSH日志的核心位置与内容
在CentOS 7中,所有与安全和认证相关的日志,包括SSH的连接尝试,都默认记录在 /var/log/secure 文件中,这个文件对于非root用户是不可读的,确保了日志信息的安全性,它详细记录了每一次SSH登录的成功与失败,包括时间戳、源IP地址、尝试登录的用户名以及认证方式等关键信息,当您怀疑服务器遭受攻击或需要排查连接问题时,首先应该查看的就是这个文件。
解读SSH日志条目
/var/log/secure 文件中的每一行都遵循特定的格式,理解这些格式是有效分析日志的第一步,以下是一些典型的日志条目及其含义:
成功登录示例:
Dec 10 10:15:30 my-server sshd[2345]: Accepted publickey for admin from 192.168.1.100 port 54321 ssh2这条日志表示在12月10日10:15:30,一个名为
admin的用户通过publickey(公钥)认证方式,从IP地址168.1.100成功登录。sshd[2345]是处理该请求的SSH守护进程及其进程ID。密码认证失败示例:

Dec 10 10:16:05 my-server sshd[2350]: Failed password for root from 203.0.113.5 port 22 ssh2此日志显示在10:16:05,有人尝试使用密码从
0.113.5以root用户身份登录,但失败了,这是最常见的暴力破解攻击迹象。无效用户登录失败示例:
Dec 10 10:17:11 my-server sshd[2355]: Failed password for invalid user admin from 203.0.113.5 port 22 ssh2这条记录表明攻击者正在猜测用户名(如
admin),但该用户在系统上并不存在,这同样是自动化攻击的典型特征。
高效分析SSH日志的实用命令
直接查看庞大的日志文件效率低下,使用命令行工具组合可以快速提取关键信息,下表列出了一些常用的分析命令:
| 目的 | 命令示例 | 说明 |
|---|---|---|
| 查看所有SSH相关日志 | grep sshd /var/log/secure | 筛选出所有由sshd进程产生的日志条目。 |
| 统计失败登录的用户名 | grep "Failed password" /var/log/secure | awk '{print $9}' | sort | uniq -c | sort -nr | 提取所有密码失败的用户名,并按失败次数降序排列。 |
| 统计攻击来源IP | grep "Failed password" /var/log/secure | awk '{print $13}' | sort | uniq -c | sort -nr | 提取所有失败登录的源IP,并按攻击次数降序排列。 |
| 实时监控SSH日志 | tail -f /var/log/secure | 动态显示日志文件末尾新增的内容,用于实时观察登录活动。 |
基于日志的安全加固建议
分析日志的最终目的是为了提升系统安全性,根据日志中反映的问题,可以采取以下加固措施:

- 强制使用SSH密钥认证:密码认证极易受到暴力破解,应生成SSH密钥对,将公钥部署到服务器,并在
/etc/ssh/sshd_config文件中设置PasswordAuthentication no,彻底禁用密码登录。 - 限制登录用户:通过在
sshd_config中使用AllowUsers或AllowGroups指令,明确指定只有特定的用户或用户组可以通过SSH登录,减少攻击面。 - 更改默认SSH端口:将SSH服务从默认的22端口更改为一个不常用的高位端口,可以有效规避大部分自动化扫描工具。
- 部署fail2ban:fail2ban是一款入侵防御软件,它能实时监控
/var/log/secure等日志文件,并根据预设规则(如5分钟内密码失败3次)自动调用防火墙(如firewalld或iptables)封禁恶意IP地址。
相关问答FAQs
A1: CentOS 7使用logrotate工具来自动管理系统日志,其配置文件位于/etc/logrotate.conf和/etc/logrotate.d/目录下,对于/var/log/secure,其轮转规则通常定义在/etc/logrotate.d/syslog文件中。logrotate会根据配置(如每周轮转一次、保留4个历史文件、自动压缩旧文件等)定期处理日志,防止其无限增长,从而节省磁盘空间,您可以根据需要编辑这些配置文件以自定义轮转策略。
A2: 出现大量 invalid user 的失败记录是典型的“暴力破解”或“凭证填充”攻击的早期阶段,攻击者使用自动化脚本,尝试用一个或多个常见密码(如123456, password)去匹配一系列常见的用户名(如admin, test, user, root等),由于他们不知道系统上存在的具体用户名,所以会先进行用户名猜测,这强烈表明您的服务器IP地址已被扫描器发现并成为攻击目标,除了检查是否有用户账户被攻破外,更应立即采取前述的安全加固措施,特别是部署fail2ban来动态拦截这些攻击源。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复