一次SSH暴力破解后的安全复盘

前段时间,公司一台测试环境服务器出现了异常情况。最开始我们只是感觉机器偶尔会卡顿,CPU负载会莫名其妙升高几分钟,但很快又恢复正常。因为业务访问量不大,应用日志里也没有明显报错,所以一开始并没有太在意。

直到有一天排查另一个问题时,我顺手查看了一下系统认证日志,才发现这台服务器正在遭受持续不断的SSH暴力破解攻击。

执行查看命令后:

复制代码
grep "Failed password" /var/log/secure

满屏都是类似这样的记录:

复制代码
Failed password for root from xxx.xxx.xxx.xxx
Failed password for admin from xxx.xxx.xxx.xxx
Failed password for test from xxx.xxx.xxx.xxx

几乎每隔几秒钟就会出现一次登录失败记录。

那一刻我突然意识到,原来服务器暴露在公网之后,并不是等别人盯上你才会被攻击,而是从开放端口的那一刻开始,就已经进入了各种自动化扫描工具的视野。

为什么SSH会成为攻击重灾区?

很多开发和运维都有一个误区,认为自己的业务规模不大,服务器数量不多,黑客不会专门攻击自己。

事实上,现在绝大多数网络攻击根本不是人工发起的,而是自动化程序在全网范围内不断扫描。

这些扫描程序会持续探测公网IP开放的端口。当发现22端口开放时,就会自动尝试各种常见用户名和密码组合。例如:

  • root

  • admin

  • test

  • ubuntu

  • oracle

以及各种弱密码字典。

攻击者甚至不关心你是谁,他们只是不断尝试。对于他们来说,只要成功控制一台服务器,这次扫描任务就已经有价值了。

一天两万次尝试,远比想象中夸张

为了确认攻击规模,我统计了一下失败登录记录。

结果发现,仅仅一天时间,服务器就遭遇了超过两万次登录尝试。

攻击源来自多个国家和地区,而且尝试的用户名远远不止root。

除了常见账号之外,还出现了:

  • mysql

  • postgres

  • git

  • ftp

  • deploy

甚至一些业务账号名称。

这说明如今的自动化攻击工具已经相当成熟,会根据不同服务自动切换攻击策略。

如果服务器存在弱密码或者密码泄露问题,被攻破可能只是时间问题。

真正危险的是侥幸心理

很多企业服务器的安全配置其实并不复杂:

  • Root允许远程登录

  • 使用密码认证

  • 密码多年不修改

  • SSH直接暴露公网

这些问题单独看似乎都不严重。

但当它们同时存在时,就会成为攻击者最喜欢的目标。

安全领域有一句很现实的话:

不是会不会被扫描,而是什么时候被扫描。

只要服务器开放在公网环境,扫描几乎是必然发生的事情。

发现问题后需要做什么?

确认存在暴力破解行为后,我们立即进行了几项整改。

首先关闭SSH密码认证:

复制代码
PasswordAuthentication no

统一改用密钥登录。

其次关闭Root远程登录:

复制代码
PermitRootLogin no

改用普通运维账号配合sudo进行权限管理。

随后增加访问控制策略,只允许办公网络和VPN出口访问SSH端口。

最后增加异常登录监控。当同一IP在短时间内出现大量认证失败时,自动触发告警。

这些调整并不复杂,但安全性提升非常明显。

安全建设关键在基础配置

经历这次事件之后,我对安全有了新的认识。

以前总觉得安全建设是一件很复杂的事情,需要防火墙、WAF、安全设备、漏洞扫描平台等各种工具。

但真正接触实际运维之后才发现,很多安全问题恰恰来自最基础的配置错误。

例如:

  • 弱密码

  • 开放公网端口

  • 权限配置不规范

  • 漏洞长期不修复

  • 缺少日志审计

攻击者往往不会先挑战最难的目标,而是优先寻找最容易得手的目标。

所以真正有效的安全建设,往往是先把这些基础工作做好。

中小企业更容易忽略哪些风险?

经过这次事件,我意识到安全不是装个杀毒软件就能解决的事,而是需要持续关注的日常。尤其是服务器访问控制、弱密码检测、异常登录监控这些基础项,如果靠人工定期检查,很容易遗漏。

后来我和同行聊到这个问题,了解到有些运维服务商会把这些安全检查做成标准化服务。比如江苏立维在提供云运维和应用运维服务时,会将服务器安全巡检、异常登录监测、监控告警以及业务稳定性分析纳入日常运维体系。其旗下OPSEYE监控平台除了监控服务器运行状态外,还能够帮助企业持续发现异常访问行为、SSH暴力破解、端口暴露等潜在风险。这种方式对于没有专职安全运维的小团队来说,确实挺省心的。

SSH暴力破解最终没有造成损失,但它让我重新理解了一件事:

真正的安全从来不是出了问题之后再补救,而是在问题发生之前,把那些最容易被忽略的风险提前发现并解决。

很多时候,攻击者并不比你聪明。他们只是比你更早发现了漏洞。

相关推荐
EntyIU1 小时前
DOCKER_CHEATSHEET
运维·docker·容器
xixingzhe21 小时前
SSH隧道连接服务器、数据库
运维·ssh
颜淡慕潇1 小时前
低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器
服务器·docker·harmonyos
SilentSamsara1 小时前
Python 与 Docker:多阶段构建、最小镜像与健康检查
运维·开发语言·python·docker·中间件·容器
左心房的默白,,,2 小时前
17:FDC数据采集与数据分析基础(EAP进阶)
运维·数据分析·自动化
小猿姐2 小时前
三种 MongoDB Operator 实测对比:Community、Percona 与 KubeBlocks,谁更适合团队落地?
运维·mongodb·kubernetes
V搜xhliang02462 小时前
告别SPSS卡顿:用AI智能体自动跑回归、生存曲线、生成方法学段落
运维·人工智能·数据挖掘·回归·机器人·自动化·飞书
财经三剑客2 小时前
蔚来公司5月交付37,705台,同比增长62.3%
运维
weixin_520649872 小时前
Modbus RTU
linux·运维·服务器