CentOS如何查看系统登录日志以发现密码破解行为?

在维护CentOS服务器的日常工作中,安全无疑是重中之重,监控和识别潜在的密码破解尝试是保障系统安全的第一道防线,通过有效地分析系统日志,管理员可以及时发现正在进行的暴力破解攻击、定位攻击源,并采取相应的防御措施,本文将详细介绍在CentOS系统中如何查看和分析密码破解记录,从基础命令到高级技巧,帮助您构建一个更安全的服务器环境。

CentOS如何查看系统登录日志以发现密码破解行为?

核心战场:系统日志文件

在CentOS(尤其是6及以下版本)系统中,绝大部分与安全认证相关的事件都会被记录到 /var/log/secure 文件中,而在使用 systemd 的CentOS 7及以上版本中,虽然该文件依然存在并被广泛使用,但更现代的方式是通过 journalctl 来查询 systemd-journald 收集的日志,无论如何,/var/log/secure 仍然是查看SSH、sudo等服务认证活动的首选之地,这个文件忠实地记录了每一次成功或失败的登录尝试,是我们分析密码破解行为的“黑匣子”。

使用基础命令进行初步排查

最直接的方式是使用 greptailless 等基础文本处理工具来筛选日志内容。

  1. 查看失败的密码登录尝试
    暴力破解攻击最显著的特征就是大量的“Failed password”记录,使用以下命令可以快速定位这些记录:

    grep "Failed password" /var/log/secure

    输出结果通常会包含时间戳、主机名、服务名(sshd)、进程ID以及关键信息:尝试登录的用户名、来源IP地址和端口号,通过观察这些记录,您可以初步判断是否存在攻击行为。

  2. 查看尝试使用不存在用户名的登录记录
    攻击者常常会使用一个常见用户名列表(如admin, test, root等)进行试探,这些记录以“Invalid user”为标志:

    grep "Invalid user" /var/log/secure

    发现大量此类记录,说明攻击者正在进行用户名枚举和猜测。

  3. 查看成功的登录记录
    为了安全,同样需要关注成功的登录,特别是那些在一系列失败尝试之后突然成功的登录,这极有可能是密码已被攻破的信号。

    grep "Accepted password" /var/log/secure

    结合失败日志,如果发现某个IP在多次失败后成功登录,应立即提高警惕,检查该会话的活动情况,甚至强制断开连接并修改密码。

统计分析,定位攻击源

单个日志条目信息有限,我们需要进行聚合分析来找出最活跃的攻击者,以下是一个经典且高效的命令组合,用于统计尝试破解密码的IP地址及其次数:

CentOS如何查看系统登录日志以发现密码破解行为?

grep "Failed password" /var/log/secure | awk '{print $NF}' | sort | uniq -c | sort -nr

让我们分解这个命令链:

  • grep "Failed password" /var/log/secure:从日志中筛选出所有密码失败的行。
  • awk '{print $NF}'awk 是一个强大的文本处理工具。$NF 代表“最后一个字段”,在这里正好是来源IP地址。
  • sort:对提取出的IP地址列表进行排序,为下一步去重做准备。
  • uniq -cuniq 命令用于报告或忽略重复的行。-c 参数表示在每行旁边显示其连续出现的次数。
  • sort -nr:对统计结果进行排序。-n 表示按数值排序,-r 表示反向(降序),这样次数最多的IP就会排在最前面。

执行后,您会得到一个清晰的列表,显示哪些IP地址对您的服务器进行了最频繁的密码猜测。

利用专用工具 lastlastb

CentOS提供了两个非常方便的命令来查看登录历史:lastlastb

  • last:用于显示最近成功登录的用户列表,它读取 /var/log/wtmp 文件。

    last

    通过此命令,您可以查看所有成功的登录记录,包括时间、用户、终端、来源IP和登录时长。

  • lastb:专门用于显示最近失败登录的尝试,它读取 /var/log/btmp 文件。

    lastb

    这个命令的输出与 last 类似,但内容全是失败的登录尝试,使用 lastb | head -n 20 可以快速查看最近的20条失败记录。

这两个工具比直接解析 /var/log/secure 更直观,是快速概览登录状况的得力助手。

实时监控与 journalctl

对于正在进行的攻击,实时监控至关重要。

CentOS如何查看系统登录日志以发现密码破解行为?


  1. 可以组合使用 watchtail 命令,每隔几秒刷新一次最新的失败日志:

    watch "tail -n 20 /var/log/secure | grep 'Failed password'"

  2. 在现代CentOS系统中,journalctl 是更强大的工具,您可以实时跟踪 sshd 服务的日志:

    journalctl -u sshd -f

    -u sshd 指定了服务单元,-f 参数表示“follow”,类似于 tail -f 的实时效果,要筛选失败事件,可以结合 grep

    journalctl -u sshd -f | grep "failure"

从被动查看到主动防御

检测到攻击只是第一步,更重要的是采取措施预防。

  • 强化密码策略:使用复杂且长度足够的密码,避免使用常见词汇。
  • 禁用密码认证,启用密钥对登录:这是最推荐的措施,通过在SSH配置文件(/etc/ssh/sshd_config)中设置 PasswordAuthentication no,可以彻底杜绝暴力破解。
  • 更改SSH默认端口:将SSH服务从22端口更改为一个不常用的高位端口,可以有效规避大量的自动化扫描脚本。
  • 使用自动化封禁工具:安装并配置 fail2banfirewalldipset 功能,这类工具能监控系统日志,一旦发现某个IP在短时间内有多次失败尝试,就自动调用防火墙规则将其封禁一段时间。

相关问答 (FAQs)

问题1:我如何区分一次正常的密码输错和恶意的密码破解尝试?
解答:关键在于观察模式和频率,正常的密码输错通常是孤立事件,可能来自一个您信任的IP地址,并且不会频繁发生,而恶意的密码破解(暴力破解)则表现出明显的模式:在短时间内,来自一个或多个IP地址的大量、连续的“Failed password”或“Invalid user”记录,且尝试的用户名通常是常见的系统账户或字典词汇,使用前面提到的统计分析命令,可以很容易地识别出这种高频次的攻击行为。

问题2:除了封禁IP,发现密码破解尝试后,我还能做些什么来加固系统?
解答:封禁IP是应急响应,但根本性的加固更为重要,立即检查所有成功登录的日志,确认没有异常登录,立即为所有相关用户(尤其是root)修改更强壮的密码,长远来看,最有效的措施是全面转向SSH密钥对认证,并彻底禁用密码认证,确保系统及其所有软件包都是最新的,及时修补安全漏洞,并考虑使用端口敲门(Port Knocking)或VPN等更高级的访问控制手段来隐藏您的服务端口。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 15:56
下一篇 2025-10-04 15:59

相关推荐

  • 如何在CentOS 6.5系统中成功增加并配置一块新网卡?

    在服务器运维工作中,为系统增加新的网卡是一项常见任务,无论是为了实现网络隔离、负载均衡还是扩展带宽,对于已经进入生命周期末期的CentOS 6.5系统,这一过程依然有其特定的操作步骤和注意事项,本文将详细介绍在CentOS 6.5系统中增加新网卡的完整流程,从硬件识别到软件配置,再到最终的验证与故障排除,硬件安……

    2025-10-03
    002
  • 如何确保服务器高效地接收短信和工单?

    服务器接收短信和工单,这意味着系统具备处理来自用户通过短信发送的请求以及接收和分配工作订单的能力。这通常涉及自动或人工处理信息,确保及时响应客户需求。

    2024-08-10
    006
  • 防火墙小_防火墙

    防火墙,网络安全的守门员,阻挡恶意攻击和非法入侵。它监控数据流,防止未授权访问,保护敏感信息免受威胁。是维护网络安全的重要工具。

    2024-07-15
    0019
  • ftp授时服务器软件_FTP

    FTP授时服务器软件是一种用于同步计算机时间的工具,它通过FTP协议与授时服务器进行通信,获取准确的时间信息并更新本地计算机的时间设置。

    2024-07-03
    003

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信