服务器被攻击后,第一时间断开公网连接并启动应急预案,是止损最快的办法。很多站长遇到攻击时第一反应是慌乱,其实只要按步骤操作,绝大多数攻击都能在几小时内恢复,并且加固到比之前更安全的状态,下面这套流程,是业内多年实践下来的通用方案,建议收藏备用。
服务器被攻击后,如何判断攻击类型和影响范围
攻击类型决定了后续的处置方式,先花几分钟定位问题,比盲目重启更有用,登录服务器前,先通过云厂商控制台的监控面板查看CPU、带宽、连接数走势,如果带宽被占满,大概率是流量型攻击(DDoS/CC);如果CPU跑满但带宽正常,可能是挖矿木马或暴力破解后的恶意程序;如果网站被篡改、文件被替换,则是Webshell或漏洞入侵。
流量型攻击的快速识别
- 打开云厂商的流量监控图表,观察入方向带宽是否接近服务器峰值带宽。
- 使用命令
netstat -ant | grep SYN_RECV | wc -l查看半连接数,如果数值持续高于1000,说明正在遭受SYN Flood。 - 通过
ping测试丢包率,丢包超过30%且延迟极高,基本可确认DDoS攻击。
入侵型攻击的判断方法
- 检查登录日志:
last -a或cat /var/log/secure,如果出现大量失败登录记录,说明存在暴力破解。 - 查看当前可疑进程:
ps aux --sort=-%cpu,CPU占用异常高的进程需要重点排查。 - 检查计划任务:
crontab -l和cat /etc/crontab,黑客常通过计划任务持久化控制。
如果确认是DDoS这类大流量攻击,单靠服务器自身无法防住,需要启用高防IP或CDN清洗,如果确认是入侵,则按下一节的操作进行隔离和清理。
如何快速恢复服务器?两个优先级的操作步骤
恢复动作分为两级:第一级是止血,也就是让服务先不宕机,能访问;第二级是清毒,把隐患彻底消除,很多人只做了止血,导致攻击反复发生。
一级处理:断网隔离与保留证据
- 立即在云控制台关闭服务器外网访问,或者用安全组限制来源IP,只允许自己的办公IP登录。
- 不要直接关机或重置系统,先创建镜像快照,快照保留了攻击现场,方便后续取证和溯源。
- 记录当前时间点,保存
/var/log/messages、/var/log/secure、Web访问日志(如Nginx的access.log)到独立目录。 - 如果服务器上有重要业务数据,先拷贝到安全区域,但注意不要执行可疑二进制文件。
二级处理:查杀木马与修复漏洞
- 使用
top定位可疑进程,记下PID,然后执行ls -l /proc/PID/exe查看程序路径。 - 用
chkrootkit或clamav扫描常见木马,扫描前先升级病毒库。 - 检查所有用户的SSH公钥:
cat ~/.ssh/authorized_keys,删除陌生公钥,防止黑客留下后门。 - 检查Web目录:
find /var/www/html -name ".php" -mtime -7,找出最近7天修改过的脚本,重点排查一句话木马。 - 修改所有服务器密码,包括SSH密码、数据库密码、FTP密码,密码强度要求大小写字母+数字+特殊字符,长度不少于16位。
系统重装是最后手段
如果入侵痕迹过于严重,比如内核被替换、rootkit加载到内存,或者无法判断黑客做了什么,行业共识认为重装系统加恢复数据是最干净的方案,先利用前面的快照和日志找出漏洞根源,再重装干净的系统,然后按下一节的加固步骤操作,最后恢复业务数据。
服务器被攻击后的安全加固,防范二次入侵
攻击者往往利用自动化扫描工具批量入侵,不加固不换配置,几小时后还会再进来,这一部分按照从外到内的顺序,逐层补上漏洞。
网络安全组与防火墙配置
- 云厂商的安全组只放行必需端口,如80(HTTP)、443(HTTPS)、SSH自定义端口,关闭23、21、3389等高风险端口。
- 本地防火墙使用
iptables或firewalld,设置默认拒绝,按需放行,只允许指定IP访问SSH:iptables -A INPUT -p tcp --dport 22 -s 你的IP -j ACCEPT。 - 启用DDoS防护:如果业务长期在线,建议购买云厂商的DDoS高防包,或接入CDN隐藏源站IP。
应用层安全配置
- 如果是Linux+Apache/Nginx环境,禁用目录浏览,删除默认页面和示例脚本。
- PHP程序设置
disable_functions,禁止exec、shell_exec、system等高危函数,防止Webshell执行命令。 - 数据库使用最小权限账号,不对公网开放连接,WordPress、ThinkPHP等应用,定期更新到最新版本。
- 定期扫描Web目录恶意文件,可使用
find / -name ".php" -mtime -1这种简单命令结合备份对比。
信息收集与邮件防护
- 配置日志集中存储,比如将系统日志和Web日志发送到另一台日志服务器或对象存储,防止黑客删除日志。
- 设置邮件告警:当CPU超过80%或持续出现失败登录时,自动发送告警邮件。
- 对于邮件服务器,开启SPF、DKIM、DMARC验证,防止被用来发垃圾邮件。
被攻击后的数据恢复与业务验证
清理完攻击程序后,不意味着马上上线,还需要检查数据完整性和业务可用性。
验证数据完整性
- 对比数据库备份和当前数据,确认没有异常新增或删改的表。
- 检查文件目录的时间戳,凡是在攻击时间窗口内修改过的文件,都要一一审查。
- 如果数据被勒索病毒加密,不要立即支付赎金,先尝试使用免费解密工具(例如No More Ransom项目),并咨询当地网安部门。
逐步恢复业务流量
- 先开启测试环境验证功能,用少量IP访问,确认无异常日志。
- 再恢复正式环境,建议先切换部分DNS流量(比如10%),观察一小时,没有任何异常再全量切换。
- 恢复后持续监控一周,重点关注CPU、带宽、进程数、登录失败次数四个指标。
比较常见的服务器安全方案有哪些优缺点?
在规划长期防御时,很多人会问用云平台自带防护还是自建WAF,这里简单对比一下,方便按预算和规模选择。
| 安全方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 云厂商基础防护(安全组、DDoS基础清洗) | 免费或低成本,配置简单,无需额外维护 | 防护能力有限,不能应对大流量攻击和复杂Web攻击 | 个人博客、小型企业官网 |
| 高防IP/高防CDN | 抗大流量DDoS能力强,接入快 | 价格较高,可能影响源站回源延迟 | 游戏、电商、金融等业务 |
| 自建WAF(如ModSecurity) | 灵活可控,成本低 | 规则维护复杂,误报率高,需要专人维护 | 有技术团队的中型网站 |
| 云WAF(如简米云WAF、酷番云WAF) | 托管式更新,检测能力强,无需安装 | 依赖厂商,可能产生额外费用 | 大多数企业Web应用 |
对于预算有限的个人开发者,先做好系统和应用层加固,再启用云厂商的基础防护,性价比最高,对于企业业务,建议至少使用云WAF加高防CDN的组合。
服务器频繁被攻击,排查溯源怎么做?
如果同一台服务器多次被入侵,或者攻击者已深入内网,单纯的杀毒无法解决问题,需要做溯源分析。
从日志找源头
- 使用
lastb查看失败登录来源IP,结合whois查询归属地,判断是随机扫描还是针对性攻击。 - 分析Nginx或Apache日志中的攻击特征,比如
union select、eval(、base64_decode等关键词,说明是从Web漏洞进入的。 - 查看攻击前的跳转链路,如果先访问了后台登录页,可能存在弱口令问题。
清理后门并封禁IP
- 利用脚本批量封禁攻击IP:
iptables -A INPUT -s IP -j DROP,或者写入ipset。 - 检查所有用户的
.bash_history,黑客常在里面留下操作痕迹。 - 修改所有共享密钥、API密码,检查是否有未知员工或子账号存在。
预防内网横向移动
- 内网重要机器与Web服务器隔离,通过内网防火墙控制互访。
- 数据库、Redis、Elasticsearch等服务,不要监听
0.0.0,只监听内网IP。 - 定期用漏洞扫描工具(如Nessus、OpenVAS)自查,修复高危端口和服务。
服务器安全加固,长期投入该怎么做?
一次攻击后的修复只是起点,真正的安全需要常态化维护,根据自身的运维能力,可以选择不同的策略。
微小规模(1-5台服务器)
- 每两个月检查一次系统更新和安全补丁。
- 使用云厂商的安骑士或云安全中心,即使免费版也能提供基础入侵检测。
- 下载服务器基线检查脚本,定时核查密码策略和用户权限。
中等规模(5-20台服务器)
- 部署集中的日志分析平台,例如ELK,统一收集系统日志、Web日志、安全日志。
- 启用主机入侵检测系统(HIDS),如简米云云安全中心高级版、酷番云主机安全,可发现内存马和异常进程。
- 建立最小权限管理,运维人员通过堡垒机登录服务器,操作记录全程留存。
成长型企业(20台以上)
- 引入SOC或托管安全服务,由专业团队7×24小时监控。
- 定期做红蓝对抗和渗透测试,主动发现防御盲区。
- 制定应急预案并编排剧本,每月演练一次服务器被攻击后的恢复流程。
常见问题解答:服务器被攻击后的遗留问题
问:服务器被攻击后,网站被植入了挖矿代码,清理后还会复发吗?
答:如果只杀掉挖矿进程,但没排查定时任务、SSH公钥和Web后门,攻击者可以随时再次植入,必须从进程、文件、计划任务、启动项四个维度全面排查,并修改所有密码,才可能根治。
问:被DDoS攻击时,源站IP暴露了怎么办?
答:换源站IP,并隐藏到高防IP或CDN后面,确保新IP不通过DNS解析直接暴露,不使用服务器上的邮件发送服务来泄露IP,防止攻击者通过历史DNS记录或证书透明度日志找到新地址。
问:重启或重装系统后,数据如何安全恢复?
答:首先恢复最近一次干净备份,确保备份时间点早于攻击发生时间,数据库导入前先进行防注入检查,Web文件用原备份覆盖,然后逐项核对应用配置,最后再开放公网访问。
服务器安全没有一劳永逸,攻击者也在不断升级手段,每次被攻击都是一次防御测试,按这套流程处理,既能快速恢复,又能积累经验,记住最核心的一句话:先断网隔离,再查杀加固,最后验证恢复,三步走完,你的服务器会比以前更难攻破。