当一台 VPS 突然出现异常登录、进程占用飙升或邮件被滥发时,往往意味着系统已经被植入后门。要想彻底根除这类隐蔽的恶意入口,仅靠删掉可疑文件或重启服务远远不够——必须进行一次系统层面的“清洗”。下面从检测、定位、清除到防御四个维度展开说明。
一步:全盘快照与日志审计
在动手之前,先用 rsync -a --delete / /mnt/backup 或快照功能保存当前状态,防止误删关键数据。随后,打开 /var/log/auth.log、/var/log/secure、/var/log/syslog,筛选 ssh、sudo、cron 的异常时间点;last -i 能快速列出异常 IP 的登录轨迹。若发现某个时间段的登录频率异常,基本可以锁定入侵窗口。
二步:进程与网络异常追踪
- 使用
ps auxf | grep -v '[root]'检查是否有隐藏用户或异常进程。 - 通过
netstat -tunlp或ss -tulpen对比常用端口,留意 4444、8080、31337 等常见后门端口。 - 如果发现未知的可执行文件路径(如
/tmp/.X11-unix/.g),立刻记录哈希值sha256sum /tmp/.X11-unix/.g备用。
三步:彻底清除与系统重装
确认后门后,最保险的做法是全盘重装系统。重装前,务必把重要数据迁移到离线介质;重装后,用 dpkg -l | grep -E 'apache|php|mysql' 等命令审计已安装软件,确保所有组件均为官方最新版本。若业务不允许全量重装,可采用以下“清理清单”:
- 删除所有可疑的 SUID/SGID 文件:
find / -perm /6000 -type f -exec ls -l {} ; - 清空 crontab:
crontab -r; for u in $(cut -f1 -d: /etc/passwd); do crontab -u $u -r 2>/dev/null; done - 卸载未知的内核模块:
lsmod | grep -iE 'backdoor|rootkit',随后rmmod 模块名。
四步:防御再强化
清理完毕,别忘了把防线筑得更高。开启 fail2ban 并自定义 SSH 登录次数阈值;把 /etc/ssh/sshd_config 中的 PermitRootLogin 改为 no,只保留密钥认证;定期执行 apt-get update && apt-get upgrade -y,保持系统在最新安全补丁之上。每周跑一次 rkhunter --check,把潜伏的 rootkit 揪出来。
这玩意太吓人了,我之前就被黑过一次,删了文件结果几天后又回来了😭
fail2ban真的管用吗?感觉封了IP人家换一个接着来
重装系统最保险,别信那些手动清理的,根除不了
那个find / -perm /6000命令得记一下,刚用发现真有几个奇怪文件
rkhunter每周跑一次是不是有点频繁?服务器性能会扛不住不
密钥登录确实安全多了,密码登录等于门口放钥匙
我去,/tmp下面真有.g这种隐藏文件,细思极恐