CentOS 7 SSH登录失败,如何分析日志找出原因?

在现代Linux服务器管理中,SSH(Secure Shell)是远程管理和维护的基石,对于广泛应用的CentOS 7系统而言,理解和分析SSH日志不仅是日常运维的必备技能,更是保障服务器安全的第一道防线,SSH日志详尽地记录了每一次连接尝试,无论是成功的登录、失败的认证,还是潜在的恶意攻击,都留下了可供追溯的痕迹,通过有效利用这些日志,系统管理员可以实时监控服务器访问状态、排查连接问题,并主动识别和防御安全威胁。

CentOS 7 SSH登录失败,如何分析日志找出原因?

SSH日志的核心位置

在CentOS 7系统中,SSH服务的日志信息主要由systemd管理的journald和传统的rsyslog服务共同处理,与SSH认证和登录活动最直接相关的日志,通常被集中记录在一个固定的文本文件中。

  • 主要日志文件: /var/log/secure
    这个文件是CentOS以及Red Hat系列系统中记录安全和认证相关信息的核心,所有通过SSH进行的登录尝试(无论成功或失败)、用户切换(su/sudo)以及其它认证活动,都会被记录在这里,它是分析SSH访问行为的首选文件。

  • 补充日志工具: journalctl
    作为systemd的一部分,journalctl提供了更强大的日志查询功能,你可以通过它来实时监控或筛选sshd服务的日志,使用 journalctl -u sshd 命令可以查看仅与SSH服务相关的系统日志。

解析关键日志信息

/var/log/secure文件中的每一条日志都包含了丰富的上下文信息,理解这些信息的含义,是进行有效分析的前提,一条典型的日志行通常包含时间戳、主机名、服务进程名(sshd)和具体的事件描述。

以下是一些最关键的日志类型及其含义:

  1. 成功登录:
    当用户成功通过密码或密钥对认证时,会记录“Accepted”日志。
    Oct 26 10:15:20 my-server sshd[2345]: Accepted password for user1 from 192.168.1.100 port 22 ssh2

    • 说明: 这条日志显示在10月15日10:15:20,用户user1从IP地址168.1.100成功通过密码方式登录。
  2. 失败登录:
    当认证失败时(如密码错误、用户名错误),会记录“Failed”日志,这是发现暴力破解攻击的最直接依据。
    Oct 26 10:16:05 my-server sshd[2350]: Failed password for root from 203.0.113.55 port 54321 ssh2

    • 说明: 在10:16:05,有人尝试从0.113.55使用root账户登录,但密码认证失败。
  3. 无效用户尝试:
    攻击者常常会尝试猜测不存在的用户名,这类尝试会被记录为“Invalid user”。
    Oct 26 10:17:11 my-server sshd[2355]: Invalid user admin from 203.0.113.55 port 54322 ssh2

    CentOS 7 SSH登录失败,如何分析日志找出原因?

    • 说明: 有人尝试使用一个在系统中不存在的用户名admin进行登录。

为了更直观地展示,下表小编总结了常见的SSH日志类型:

日志类型 示例日志片段 说明
成功登录(密码) Accepted password for testuser from ... 用户testuser通过密码验证成功登录。
成功登录(密钥) Accepted publickey for testuser from ... 用户testuser通过SSH密钥对验证成功登录。
密码错误 Failed password for root from ... 尝试登录root账户时,提供的密码不正确。
无效用户 Invalid user admin from ... 尝试登录一个系统中不存在的用户admin
断开连接 Received disconnect from ... 客户端或服务器主动断开了SSH连接。
会话关闭 pam_unix(sshd:session): session closed for user testuser 用户testuser的会话已结束。

日志分析与实用命令

仅仅知道日志的存在是不够的,掌握如何高效地从海量日志中提取有价值的信息才是关键。

  • 实时监控日志:
    使用tail -f命令可以实时查看最新的日志条目,非常适合在调试或观察攻击时使用。
    tail -f /var/log/secure

  • 筛选失败登录:
    这是安全分析中最常用的操作,可以快速发现暴力破解的源头。
    grep "Failed password" /var/log/secure

  • 统计并排序攻击IP:
    通过组合命令,可以快速统计出哪些IP地址尝试登录失败的次数最多,从而识别出主要的攻击来源。
    grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
    这个命令链会提取所有失败日志中的IP地址,进行去重计数,并按次数从高到低排序。


  • 对于更现代的查询方式,可以使用journalctl,它支持更丰富的过滤条件,如按时间范围查询。
    journalctl -u sshd --since "1 hour ago" | grep "Failed"

日志管理与安全加固建议

日志文件会随着时间推移而不断增大,必须进行有效管理,CentOS 7通过logrotate工具自动管理日志轮转和压缩,配置文件通常位于/etc/logrotate.d/目录下,管理员应根据需要调整保留策略,避免磁盘空间被占满。

基于日志分析,可以采取以下措施加固SSH安全:

CentOS 7 SSH登录失败,如何分析日志找出原因?

  1. 使用密钥对认证: 禁用密码认证,只允许使用SSH密钥登录,这是抵御暴力破解最有效的方法之一。
  2. 禁止root直接登录:/etc/ssh/sshd_config中设置PermitRootLogin no,强制攻击者必须先猜测一个普通用户名。
  3. 更改默认SSH端口: 将22端口改为一个不常用的高位端口,可以有效规避大部分自动化扫描工具。
  4. 部署fail2ban: fail2ban是一款强大的入侵防御软件,它能监控日志文件(如/var/log/secure),并根据预设规则自动使用firewalldiptables封禁那些在短时间内尝试登录失败次数过多的IP地址。

CentOS 7的SSH日志是系统安全状态的晴雨表,熟悉其位置、内容和分析方法,并结合相应的安全工具进行加固,能够极大地提升服务器的整体安全性,使其在复杂的网络环境中保持稳健运行。


相关问答 (FAQs)

问题1:我的SSH日志文件(/var/log/secure)变得非常大,占用了很多磁盘空间,我该如何安全地管理它?

答: 强烈不建议直接手动删除或清空/var/log/secure文件,这样做可能会导致正在运行的日志服务出现问题,CentOS 7系统自带了logrotate工具来自动化管理日志,你可以通过编辑/etc/logrotate.d/syslog文件来调整对/var/log/secure的管理策略,在这个配置文件中,你可以设置日志保留多少份(rotate参数)、是否压缩(compress参数)、轮转的频率(如weekly每日、weekly每周、monthly每月)以及当日志文件达到多大体积时进行轮转(size参数),设置rotate 4意味着系统会保留4个旧的(已压缩的)日志文件和一个当前正在使用的日志文件,通过合理配置logrotate,可以确保日志文件在可控范围内,同时又不会丢失重要的历史记录。

问题2:我发现日志中有一个IP地址在不断尝试登录,虽然都失败了,但很烦人,我如何通过日志信息自动将其封禁?

答: 实现自动化封禁恶意IP的最佳方式是使用fail2ban工具。fail2ban的工作原理就是持续监控指定的日志文件(如/var/log/secure),并匹配预设的失败模式(如“Failed password”),一旦某个IP地址在设定的时间窗口内(例如10分钟)失败次数超过了阈值(例如5次),fail2ban就会自动调用系统的防火墙(CentOS 7上通常是firewalld)为该IP创建一个封禁规则,暂时(例如1小时)或永久地阻止其访问SSH服务,你只需要安装并配置fail2ban,创建一个jail(监狱)来监控SSH日志,它就能在后台默默地为你完成这项工作,极大地减轻了手动干预的负担,并提升了服务器的主动防御能力。

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

(0)
热舞的头像热舞
上一篇 2025-10-11 10:47
下一篇 2025-10-11 10:49

相关推荐

  • 番禺网站建设信科网络专线接入点的优势在哪里?

    番禺网站建设信科网络提供专线接入服务,致力于为企业打造稳定快速的网络环境。通过专业的技术支持和定制化解决方案,满足不同企业的互联网需求,确保数据传输安全与高效。

    2024-08-07
    005
  • CentOS 6.8如何禁用ACPI来解决安装问题?

    在信息技术领域,系统的稳定性和兼容性是运维工作的核心,对于仍在使用Legacy系统(如CentOS 6.8)的环境而言,硬件与操作系统之间的交互,尤其是通过ACPI(高级配置与电源接口)实现的交互,往往是问题的多发地带,CentOS 6.8作为一个发布于2016年并早已停止维护(EOL)的版本,其内核和驱动程序……

    2025-10-03
    002
  • CentOS安装ATI显卡驱动,如何下载并避免安装后黑屏?

    在CentOS这类以其稳定性和企业级特性而著称的Linux发行版上,为ATI(现已更名为AMD)显卡安装合适的驱动程序,是一个需要谨慎处理的技术任务,与Windows系统不同,Linux下的驱动生态更加复杂,尤其是在CentOS这样优先考虑稳定性和长期支持的平台上,本文将详细阐述在CentOS系统中获取和配置A……

    2025-10-14
    002
  • 服务器ip 端口 密码_查看IP地址和端口

    要查看服务器的IP地址和端口信息,您可以使用以下命令:,,在Windows系统中,打开命令提示符(cmd),输入以下命令:,,“shell,netstat an,`,,在Linux或macOS系统中,打开终端,输入以下命令:,,`shell,netstat tuln,“,,这些命令将显示当前系统中所有网络连接的详细信息,包括本地和远程IP地址以及端口号。请根据您的操作系统选择相应的命令。

    2024-07-02
    0010

发表回复

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

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信