一次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暴力破解最终没有造成损失,但它让我重新理解了一件事:

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

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

相关推荐
不能跑的代码不是好代码7 小时前
Linux系统常用命令中文速查表
linux·运维·服务器
石一峰6998 小时前
深入理解 Linux 中断三层机制与 1-Wire 时序锁原理
linux·运维·服务器
运维老郭8 小时前
PostgreSQL编译安装实战
运维·postgresql
无限码农9 小时前
Linux上通过cmake编译uchardet
linux·运维·服务器
运维大师10 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
007张三丰11 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
ACP广源盛1392462567311 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
Hiyajo pray12 小时前
SDN 访问控制性能调优方法
服务器·网络·网络安全
huainingning14 小时前
交换机通过ftp下载文件或者传输文件到ftp服务器
运维·服务器·网络
edwarddamon14 小时前
CentOS 7 国内安装 Docker CE(阿里云源)
运维