用了7年VPS,第一次中病毒:被植入挖矿木马的排查与加固指南

在这个数字化时代,很多人手里都攥着几台VPS,有的用来跑网站,有的用来做节点,还有的纯粹是为了收藏。我也算是个老玩家了,手里的机器跑跑停停用了七年,一直觉得自己也就是个“小透明”,黑客看不上。结果,现实狠狠地给了我一巴掌——我居然被植入了挖矿木马。

终端显示 top 命令结果,CPU 占用率极高,疑似挖矿进程

通过 top 命令发现异常进程,CPU 长期 100% 占用

今天把这次翻车的经历、排查过程以及后续的加固方法写出来,希望能给各位提个醒,毕竟谁也不想自己的机器莫名其妙变成别人的“矿机”。

1. 发现异常:机器怎么变得这么卡?

事情的起因很平常。某天我登录其中一台比较闲置的VPS准备更新一下环境,发现SSH连接反应迟钝,输入命令都要卡顿一下。起初我以为是网络波动或者是那个廉价商家的超售问题(毕竟便宜没好货嘛),并没有太在意。

但当我习惯性地敲下 top 命令查看系统负载时,傻眼了。CPU占用率居然长期维持在100%左右,而且占用资源的并不是我熟悉的Nginx或Python进程,而是一个名叫奇怪名字的进程(比如随机字符串)。

这时候我才意识到:中招了,这是典型的挖矿特征。

2. 紧急排查:锁定“凶手”

发现问题后,千万别急着重启(当然也别急着重装系统,先看看能不能抢救一下数据)。我们需要先搞清楚它是怎么进来的,以及它在干什么。

第一步:查看异常进程

继续使用 tophtop 查看资源占用。注意观察那些CPU占用极高、名字看起来很可疑的进程。我的情况是有一个伪装成系统服务的进程在疯狂运行。

找到进程ID(PID)后,使用 ls -l /proc/PID/exe 查看该进程对应的可执行文件路径。这一步通常能帮你找到木马本体藏在哪里。

第二步:切断网络与终止进程

在杀毒之前,最好先切断服务器的对外网络连接,防止它继续连接矿池或者下载其他恶意程序。如果是在本地环境或者有控制面板,可以直接断网。

直接使用 kill -9 PID 强制杀掉可疑进程。这时候你会发现CPU负载瞬间降下来了,但战斗只完成了一半。

第三步:清理计划任务(重灾区!)

很多挖矿脚本为了持久化,会把自己写在定时任务里。你刚杀掉进程,过几分钟它又复活了。这时候必须检查 crontab

检查以下几个位置:

  • crontab -l (当前用户的定时任务)
  • /var/spool/cron/ (所有用户的定时任务目录)
  • /etc/cron.d/, /etc/cron.daily/ 等系统级定时任务目录。

如果你看到有莫名其妙的脚本下载链接或者一段奇怪的Shell脚本,直接删掉!

第四步:查找启动项

除了计划任务,木马还可能修改系统的启动脚本。检查 /etc/rc.local 以及 systemd 的 service 文件。有些脚本甚至会替换系统的 sshd 文件,这是一个非常危险的信号,遇到这种情况建议直接重装。

3. 寻找入口:我是怎么被黑进来的?

清理完现场后,最关键的是反思:黑客是怎么进来的?只有堵住漏洞,才能避免下次再中招。

经过排查,我怀疑是以下几个原因之一(也可能是组合拳):

1. 弱口令或默认口令 虽然我知道SSH不能用密码登录,但这台机器因为历史原因,我还是保留了密码登录方便某些临时操作。如果密码不够复杂,黑客通过全网扫描SSH端口,撞库成功的概率极高。

2. 应用程序漏洞 这台机器上跑着一个很久没更新的WordPress站点,或者是某个带有RCE漏洞的Web应用。如果不及时打补丁,这就是黑客最喜欢的后门。

编辑 sshd_config 配置文件禁止密码登录的代码截图

修改 SSH 配置文件,禁止密码登录以提高安全性

3. 非官方软件包 有时候为了方便,我们可能会去网上找一些“一键脚本”安装环境。如果不小心引用了不信任的源,或者脚本里本身就带了后门,那就纯纯是自己把门打开了。

4. 深度加固:亡羊补牢,为时未晚

经历了这次惊魂,痛定思痛,我决定对这台机器以及手里的其他VPS进行一次全面的安全加固。

4.1 SSH 安全第一

  • 禁止密码登录:彻底放弃密码,只允许SSH Key登录。编辑 /etc/ssh/sshd_config,将 PasswordAuthentication 设为 no
  • 修改默认端口:把SSH端口从22改成一个高位端口,虽然不能完全防御扫描,但能避开绝大多数全自动的脚本小子。
  • 限制登录用户:禁止root直接登录,创建一个普通用户,配置好sudo权限,需要时再提权。

4.2 配置防火墙

不要让所有端口都敞开着。除非必要,否则只开放80、443和你的SSH端口。使用 iptablesufw 或者云厂商提供的防火墙策略进行限制。

4.3 自动更新与监控

  • 开启系统的自动安全更新(或者至少定期手动更新)。
  • 安装监控工具(如NodeQuery、UptimeRobot等)监控CPU负载,一旦异常飙高立刻发邮件报警。

4.4 绝不运行不明脚本

想测试新功能或者安装新软件,尽量去官方文档找安装步骤。对于GitHub上那些星标很少甚至没有文档的“一键脚本”,保持高度的警惕。如果非要跑,建议先在Docker容器里隔离运行。

写在最后

用了7年都没事,这次翻车提醒我:安全意识不能松懈。 网络环境越来越恶劣,黑客的自动化脚本24小时都在扫描互联网上的每一个IP。我们的VPS就像大海里的一叶扁舟,如果不把门窗焊死,随时可能被海盗登船。

如果你也有闲置的VPS,不妨现在就登录上去检查一下 top 命令,看看有没有陌生的进程在为你“挖矿”。希望我的这篇排雷指南能帮到大家,祝各位的机器永远稳如老狗!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭