服务器被入侵、密码被改,先别急着重启或重装,正确顺序是断网隔离、保留现场、取证备份、清后门改凭据、补漏洞再验证;跳过取证直接“一把梭”重装,往往会丢掉入侵入口,过几天又被同一套路打进来。
服务器被入侵篡改密码怎么恢复?先把现场留住
密码被改只是表象,背后通常已经有一条完整的入侵链路:弱口令爆破、Web漏洞上传、Redis未授权、SSH密钥被塞入,或者云账号AK泄露后从控制台动手,恢复的目标不是“能登录”,而是“登录进去之后确认没有第二只手”。
第一步:断网,但别关机
关机等于把内存里的进程、网络连接、临时文件全部清掉,这是取证里最亏的操作。
- 在云控制台的安全组里把入方向规则暂时清空,只保留你自己的管理IP和带外通道。
- 物理机直接拔业务网线,保留管理口。
- 如果能进系统,先跑一遍
ss -tunap和ps auxf,把异常外联IP、可疑进程截图存档。 - 别在受害机上直接下载工具,用U盘或另一台跳板机。
第二步:从带外通道进去看登录痕迹
密码被改,普通SSH进不去,走云厂商控制台的VNC/远程连接,或者IDC的KVM,进去后重点看三件事:
- 谁进来的:
last -a看成功登录,lastb看失败记录,grep -i "Failed password" /var/log/secure(Debian系是/var/log/auth.log)。 - 怎么进来的:查Web日志里的异常POST、
/tmp和/dev/shm下的可执行文件、/var/spool/cron下的定时任务。 - 改了什么:
awk -F: '$3==0{print $1}' /etc/passwd找UID为0的异常账号,ls -la /root/.ssh/看有没有陌生公钥。
第三步:该备份的备份,该截图的截图
很多人一上来就 rm -rf 可疑文件,结果连攻击路径都说不清,行业共识认为,入侵后的日志和样本至少保留一份离线副本,后续排查和报案都用得上。
- 打包
/var/log、/root/.bash_history、/etc/passwd、/etc/shadow、/etc/crontab到外部存储。 - 对可疑进程用
lsof -p 进程号记录打开的文件和网络连接。 - 云服务器先打一个系统盘快照,别急着回滚,快照是“时间胶囊”。
第四步:清后门、改密码、补漏洞
确认入口后,按这个顺序处理:
- 改所有凭据:
passwd root改系统密码,同时改数据库、Redis、云账号、面板后台密码,别只改SSH。 - 清持久化:
crontab -l、ls -la /etc/cron.d/、systemctl list-unit-files --state=enabled逐个过,陌生服务先停再删。 - 查SUID和隐藏账号:
find / -xdev -perm -4000 -type f,对比基线;/etc/shadow里出现空密码字段的账号直接锁掉。 - 堵入口:Web漏洞该打补丁打补丁,Redis加requirepass并只监听内网,SSH关掉密码登录改密钥。
- 验证:用
rpm -Va(CentOS)或debsums(Debian)校验系统文件完整性,再观察24小时外联。
第五步:云服务器被入侵后数据恢复和重装系统怎么选
这是被问得最多的一类问题,答案取决于“污染范围”:
- 只丢了密码、没发现后门:清凭据、补漏洞、挂快照比对,可以保留系统继续跑。
- 发现rootkit、内核模块被替换、多个账号被动过:别犹豫,重装,被改过的系统你永远不知道还藏了什么。
- 数据在数据盘、系统盘被污染:重装系统盘,数据盘挂载前先杀毒和比对文件哈希。
- 业务不能停:先切流量到备用节点,再慢慢修原机,别在生产机上边跑边修。
判断标准很朴素:只要入侵者拿到过root且停留时间超过几小时,重装的性价比就高于“修”。
服务器被入侵后如何防止二次入侵?把“门”从里到外换一遍
恢复只是止血,防复发才是正事,多数二次入侵不是因为攻击者多高明,而是第一次的入口根本没堵上。
账号和登录入口
- SSH关闭密码登录:
PasswordAuthentication no,PermitRootLogin no,普通账号加sudo。 - 所有运维人员一人一把密钥,离职即删
~/.ssh/authorized_keys对应行。 - 装
fail2ban,对连续失败登录自动封IP,别指望改个端口就安全。 - 面板类软件(宝塔、Webmin)只允许固定IP访问,别裸奔在公网。
网络暴露面
- 安全组默认拒绝,只放业务必需端口,数据库、Redis、Elasticsearch一律只监听内网。
- 用
nmap从外网扫一遍自己的公网IP,看看实际开了什么,和你想开的是不是一回事。 - 云上的AK/SK别写进代码和镜像,用RAM子账号加最小权限。
监控和告警
- 开云厂商的主机安全或HIDS,重点看暴力破解、反弹Shell、异常进程。
- 配好日志外送,别把日志只留在被入侵的那台机器上。
- 对
/etc/passwd、/etc/sudoers、authorized_keys做文件完整性监控,变动即告警。
补丁与基线
业内专家指出,大量入侵事件对应的是已经公布数月甚至更久的漏洞,补丁窗口拖得越长,被扫到的概率越高,建议固定每月一次补丁窗口,Web中间件、框架、插件一起过。
服务器安全加固费用一般多少钱?三条路径的账要算清
这个问题没有统一定价,但可以按“谁来做、做多深”拆开看,下表是常见路径的对比,价格随资产数量和服范围浮动,仅作决策参考:
| 路径 | 适合对象 | 大致投入 | 能解决什么 | 短板 |
|---|---|---|---|---|
| 自己按清单加固 | 有运维、资产少于10台 | 人力成本为主 | 关端口、改密码、装fail2ban | 缺取证和深度排查能力 |
| 云厂商安全产品 | 已上云的中小团队 | 按台/按年计费,几百元起步 | 基线检查、入侵告警、防爆破 | 偏通用,业务层漏洞管得少 |
| 第三方应急+加固服务 | 已发生入侵或等保要求 | 按次或按年,视范围报价 | 取证、清后门、复测、出报告 | 需要甄别服务商资质 |
需要提醒的是,加固的钱要花在“入口收敛”和“可观测”上,而不是买一堆用不上的设备,对多数中小团队,先把SSH密钥化、安全组最小化、日志外送这三件事做扎实,收益比堆产品高。
服务器被入侵篡改密码Q&A
服务器密码被改还能找回来吗?
原密码基本找不回,/etc/shadow 里存的是哈希,被覆盖后不可逆,正确做法是用带外通道或单用户模式进系统,用 passwd 重设,同时检查是否有其他账号被提权,能进系统不代表干净,改完密码还要走一遍后门排查。
入侵后不重装系统,只清后门行不行?
可以,但有前提:入侵入口已确认并修复、没有发现rootkit、系统文件校验通过、观察期内无异常外联,只要有一条不满足,重装更省心,生产环境里,“修”的时间成本经常比重装还高。
没有专职安全人员的中小团队怎么落地?
把动作做成固定清单,比招人更现实:每月查一次账号和SUID、每季度扫一次外网端口、所有服务器日志外送、关键配置开文件完整性监控,真发生入侵,第一时间断网留证,再决定自己处理还是找外部应急,别在受害机上反复折腾。
恢复的关键是顺序,防护的关键是入口,把断网留证、清后门改凭据、收敛暴露面这三步做成习惯,服务器再被盯上时,你手里才有牌可打。