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

简介: 本文记录了一次SSH暴力破解攻击的实战发现与整改过程:服务器暴露公网后,日均遭2万次自动化爆破,攻击覆盖多国IP及数十种账号名。作者通过分析系统日志,果断禁用密码登录、关闭root远程访问、限制IP并启用告警。反思指出:安全防线不在高精尖工具,而在弱口令治理、端口管控、权限规范等基础配置——防住“最容易得手的目标”,才是最有效的防护。

前段时间,公司一台测试环境服务器出现了异常情况。最开始我们只是感觉机器偶尔会卡顿,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、安全设备、漏洞扫描平台等各种工具。但真正接触实际运维之后才发现,很多安全问题恰恰来自最基础的配置错误。

例如:

  • 弱密码
  • 开放公网端口
  • 权限配置不规范
  • 漏洞长期不修复
  • 缺少日志审计

攻击者往往不会先挑战最难的目标,而是优先寻找最容易得手的目标。所以真正有效的安全建设,往往是先把这些基础工作做好。

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

后来我和同行聊到这个问题,了解到有些运维服务商会把这些安全检查做成标准化服务,例如江苏立维。对于没有专职安全运维的小团队来说,借助这类服务是一种省心的选择。

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

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

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

相关文章
|
23小时前
|
消息中间件 监控 NoSQL
线上Kafka积压后,我是怎么处理的
本文记录一次Kafka消费组Lag飙升20万+的实战排障全过程:从快速定位积压分区、紧急扩容消费者、优化消费参数,到发现Redis大key根因、临时降级、事后加固监控与自动化响应。强调“可观测性+自动化”是应对消息积压的关键。
|
27天前
|
人工智能 运维 监控
AI 运维 Skill 设计指南:从空泛描述到可落地执行
企业在AI运维中常陷“提示词陷阱”:大模型输出空泛、不稳定。根源在于Skill(运维技能包)设计缺失标准化——它不是角色描述,而是可复用、可执行、可审计的任务包,涵盖触发条件、细化流程、真实环境材料与安全禁令。立维助力中小企业从低风险场景起步,构建贴合业务的AI运维体系。
AI 运维 Skill 设计指南:从空泛描述到可落地执行
|
28天前
|
人工智能 运维 监控
AI 时代,前端开发的破局与进阶之路
本文剖析AI对前端开发的真实影响:AI优化重复劳动,但无法替代业务理解、架构设计与工程能力。文章指出行业正向全栈化、工程化、专业化演进,并提供三条可落地的成长路径——业务型、架构型、全栈型前端发展路线,助力开发者破除焦虑、构建AI难替代的核心竞争力。
|
2月前
|
运维 监控 网络协议
运维干货|10个宝藏Linux测速命令,告别低效网络排查
在Linux运维工作中,网络性能是保障业务稳定运行的核心,而测速则是排查网络问题、优化网络质量的基础操作。提到Linux测网速,绝大多数新手只会用ping命令判断网络通断,却不知ping仅能测试延迟和丢包率,无法全面反映带宽、流量、进程占用等关键信息。其实,掌握以下10个测速相关命令,就能轻松完成从“网络小白”到“运维专家”的蜕变,高效应对各类网络场景测试需求。
|
24天前
|
人工智能 运维 安全
本地开源大模型选型与落地实践指南
随着AI普及,云端API模式暴露成本高、隐私风险等短板。开源大模型生态成熟,支持免费商用、本地部署,适配消费级硬件,兼顾低成本、高安全与强灵活。DeepSeek V3、Qwen3.5、Llama 4、Gemma 4、GLM-5五大模型覆盖通用、长文本、轻量化、中文编程等场景,助力中小企业自主可控落地AI。
|
29天前
|
数据采集 人工智能 运维
AI运维核心解析:Agent、RAG、Skill、MCP概念与落地方法
本文系统解析AI智能运维四大核心技术:Agent(自主任务执行)、RAG(检索增强防幻觉)、Skill(实操能力接口)、MCP(多智能体协同协议),结合运维监控、故障排查等真实场景,提供从原理差异到落地四步法的完整实践路径,助力企业构建可闭环、可协同、可演进的智能运维体系。
|
1月前
|
人工智能 运维 开发工具
一篇搞懂 AI Agent 架构选型,避开 80% 落地坑!
AI Agent正加速落地,但架构选型常成绊脚石。本文精析LangChain、LangGraph、AutoGen、CrewAI、OpenAI Agents SDK五大主流框架,从任务复杂度、可控性、开发效率、成本四大维度对比,助企业按需选型、避坑提速,实现智能化升级。
一篇搞懂 AI Agent 架构选型,避开 80% 落地坑!
|
23小时前
|
消息中间件 人工智能 运维
AI运维,别一上来就想“自动修故障”
AI运维不是一上来就自动定位、自动修复。真实落地中,数据治理、告警降噪、日志分析和流程反馈更关键。本文结合企业实践,聊聊AI运维怎么做更稳。
|
23小时前
|
人工智能 运维 监控
MCP会成为AI时代的新中间件吗?
MCP(Model Context Protocol)是AI时代的新型连接协议,旨在标准化大模型调用外部工具与数据的方式,类似“AI世界的USB接口”。它解决模型与数据库、API、企业系统间重复适配难题,赋能Agent高效接入监控、日志、运维等内部系统,正成为AI落地企业场景的关键基础设施桥梁。
|
23小时前
|
运维 监控 Kubernetes
服务器突然连不上了,要从哪里开始查?
运维最怕的不是宕机,而是“突然连不上”:SSH超时、业务异常却难定位。本文详解五步排查法——从网络连通性、监控分析、控制台登录、防火墙到容器网络,并强调监控与巡检对早发现、快响应的关键价值。