服务器被入侵后怎么做:应急响应流程与实战操作清单

服务器出现异常进程、陌生登录记录或对外发起大量连接时,第一反应不应该是直接重启或重装。
正确做法是按应急响应流程与实战步骤,先隔离、再取证、后清除,避免证据丢失或攻击者二次进入。
本文按零基础运维也能照做的顺序,给出每步的命令和验证方式。

先判断是否真的被入侵

不要凭感觉操作,先收集几个客观信号。
登录服务器后依次执行:

who          # 当前登录用户和来源 IP
last -n 20   # 最近登录记录
ps aux --sort=-%cpu | head -20   # CPU 占用最高的进程
ss -tunlp    # 监听端口和对应进程

重点看三类异常:非本人来源 IP 的登录、不认识的监听端口、CPU 或网络占用异常高的陌生进程。
如果 last 里出现大量来自同一陌生 IP 的失败或成功记录,基本可以确认需要进入应急流程。

注意:确认异常后不要立刻 kill 进程或删除文件,先完成下一步隔离,否则排查线索会断。

隔离:切断攻击者通路但保留现场

隔离的目标是让攻击者无法继续操作,同时保留可分析的数据。
推荐做法不是关机,而是限制网络访问:

# 只允许你的管理 IP 访问 SSH,其余全部拒绝
iptables -A INPUT -p tcp --dport 22 -s 你的管理IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

如果服务器在云平台,更稳妥的方式是在控制台安全组里先把 22 端口来源改成你的固定 IP。

同时做一份快速取证快照,方便后续分析:

mkdir -p /root/ir_$(date +%F)
cp /var/log/secure /root/ir_$(date +%F)/ 2>/dev/null
cp /var/log/auth.log /root/ir_$(date +%F)/ 2>/dev/null
ps aux > /root/ir_$(date +%F)/ps.txt
ss -tunlp > /root/ir_$(date +%F)/netstat.txt
crontab -l > /root/ir_$(date +%F)/cron_root.txt

/var/log/secure 是 CentOS 系登录日志,/var/log/auth.log 是 Debian/Ubuntu 系登录日志,按你的系统取其一即可。

避坑:不要在这一步执行 reboot 或 shutdown。
内存中的恶意进程、临时文件、网络连接会随关机消失,很多挖矿和反弹 Shell 的证据就此丢失。

定位入口和持久化位置

攻击者通常会留下后门,常见位置有以下几个,逐个检查:

  • 计划任务:crontab -l、cat /etc/crontab、ls /etc/cron.d/
  • 启动项:systemctl list-unit-files --state=enabled,重点看陌生服务
  • SSH 授权文件:cat /root/.ssh/authorized_keys,检查是否有陌生公钥
  • 用户账号:awk -F: '$3==0{print $1}' /etc/passwd,查看是否有 UID 为 0 的额外账号
  • 异常文件:find /tmp /var/tmp /dev/shm -type f -mtime -7 2>/dev/null

如果发现陌生进程,用 ls -l /proc/PID/exe 找到它实际对应的可执行文件路径,再决定是否清除。

ls -l /proc/1234/exe    # 1234 换成实际可疑 PID

这样能识别出被删除但仍运行的恶意文件,避免直接 kill 后无法定位来源。

清除与加固:按顺序收尾

确认入口后按以下顺序处理,顺序反了容易反复被入侵:

  1. 修改所有账号密码,尤其是 root 和可登录用户
  2. 删除陌生账号和 authorized_keys 中的陌生公钥
  3. 删除恶意计划任务和启动项
  4. 结束恶意进程并删除对应文件(先确认路径再删)
  5. 更新系统和软件:yum update -y 或 apt update && apt upgrade -y
  6. 关闭密码登录,改用密钥:编辑 /etc/ssh/sshd_config,设置 PasswordAuthentication no,然后 systemctl restart sshd

修改 SSH 配置前,务必确认密钥登录已经可用,否则重启后可能把自己锁在外面。
建议先开一个已登录的 SSH 会话不动,改完用新会话测试。

验证与复盘

处理完成后不要直接恢复业务,先做验证:

last -n 10          # 确认没有新的陌生登录
ss -tunlp           # 确认没有多余监听端口
crontab -l          # 确认计划任务干净
ps aux | grep -v grep | grep -E 'tmp|shm'   # 确认临时目录无异常进程

观察一到两天,确认没有反弹。
同时回顾入口:是弱密码、未修复漏洞还是暴露了不必要端口。
只清除不补入口,很可能再次中招。

常见疑问

服务器被入侵必须重装吗? 不一定。
如果入口明确、后门已清理、日志能佐证,可以加固后继续使用。
但如果无法确认攻击者留下的全部后门,重装并重新部署是更省心的选择。

没有备份怎么办? 先隔离并复制关键数据到外部存储,再决定是否重装。
不要在受感染的机器上直接打包业务数据传给生产环境。

云服务器安全组和 iptables 哪个先改? 优先改云平台安全组,它在网络层拦截,比主机防火墙更早生效,也能防止本机规则被攻击者篡改后失效。

应急响应流程与实战的核心不是工具多,而是顺序对:先隔离、再取证、后清除、最后验证。
把这套流程走一遍,比事后反复重装更有效。
遇到不确定的文件或进程,宁可不删,先留证据再判断。

分享到:
上一篇
服务器防SQL注入配置:从代码到WAF的完整实操指南
下一篇
服务器磁盘IO瓶颈怎么排查:从iostat到定位高IO进程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意