服务器阻断策略的核心是通过访问控制、流量清洗、行为分析和资源隔离的组合手段,在攻击到达业务层之前将其拦截或稀释,以保障服务的连续性和数据安全。现实中没有一套放之四海而皆准的配置,务实的选择是针对不同攻击类型部署多层防线,下面我们聊聊实际工作中用得上的策略、配置顺序和决策思路。
网络层阻断策略:先把大流量挡在门外
网络层攻击是流量型攻击的主战场,最常见的就是DDoS流量攻击,这类攻击的特征是流量大、来源分散、协议特征明显,单纯靠业务服务器自身扛不住,必须在入口处做文章。
流量清洗与黑洞路由
运维圈里常说的“被拉黑洞”就是路由层面的阻断动作,当攻击流量超过数据中心出口带宽的容忍阈值时,机房会直接将受攻击IP的流量牵引到黑洞设备丢弃,这招见效快、成本低,但代价是正常访客也会被误伤。
业内专家指出,合规的流量清洗流程通常是:检测设备发现异常 → 触发牵引指令 → 流量被引导至清洗集群 → 过滤恶意报文 → 将干净流量回注原链路,整个流程在30秒到3分钟内完成才算合格。
IP黑名单与地理位置封禁
对于明确来源的恶意扫描或攻击IP,直接封禁是效率较高的手段,不过在实操中有个细节容易被忽略:封禁不能只针对单个IP,因为分布式攻击的源IP往往是海量的,且动态变化,更实用的做法是配合CIDR网段封禁,或者基于地理位置(比如来源国家的流量占比异常)做区域级拦截。
具体操作路径一般是:在防火墙或云安全组中配置 inbound 规则,拒绝来自特定IP或网段的TCP/UDP连接,对于应用层的恶意请求,则需要在反向代理层做拦截,单纯靠iptables不够用。
应用层阻断策略:精准识别并拦截恶意请求
网络层防的是“大而猛”,应用层防的是“精而深”。CC攻击(Challenge Collapsar)就是典型的应用层攻击,用少量但高频率的合法请求耗尽应用资源,比如查询数据库、发送短信验证码之类的接口被频繁调用。
速率限制(Rate Limiting)
对单个IP或会话设置请求频率上限,是应用层最常用的阻断手段,这需要根据接口的业务属性决定阈值,登录接口和静态资源接口的标准肯定不一样,行业共识认为,合理的限流策略应当具备动态调整能力,比如对登录接口限制单IP每分钟10次,对普通业务接口放宽到每分钟60次,发现异常再逐步降级。
Web应用防火墙(WAF)规则
SQL注入、XSS跨站脚本、命令注入这几种攻击类型,靠代码层修复需要时间,WAF的防护规则可以在漏洞修复前先把攻击特征拦截掉,WAF的阻断模式一般有三种:告警(只记录不拦截)、拦截(直接拒绝请求)、人机校验(返回验证码或者JS质询),初次部署时建议先开告警模式观察一周,确认无误报再切换为拦截模式。
服务器CPU和带宽资源耗尽怎么处理
这是服务器被攻击后最直观的症状,CPU跑到100%、带宽被打满、登录都进不去,这时候需要的是外科手术式的应急阻断策略。
云控制台的紧急操作
如果你的业务跑在云上,大多数云厂商的控制台都提供了“防火墙”和“安全组”功能,应急处理顺序建议:
- 登录云控制台,先确认是否为入方向带宽占满
- 立即修改安全组规则,暂时只放行办公网IP和运维跳板机IP
- 通过VNC或管理终端登录服务器,查看进程列表找出异常进程
- 对可疑进程执行
kill命令前,先记录PID和进程路径,方便事后溯源
服务器IP被屏蔽了怎么解决
这里需要分情况判断,如果是被云厂商的安全策略自动封禁,控制台通常有一条“DDoS防护”菜单,里面有“解封”操作入口,但解封次数有限,频繁触发就可能被加入黑名单,如果是被机房或IDC封禁,那就只能提交工单说明情况,提供攻击流量截图和处置记录来申请解封。比较好的做法是给核心业务服务器配置备用IP,并提前做好DNS切换预案,避免单一IP成为故障点。
主机层面的本地阻断策略:不依赖外部设备的自保手段
外部防护设备失效时,服务器自身的本地策略是最后一道防线。
iptables与firewalld的流量控制
在Linux服务器上,iptables可以做连接数限制、IP封锁和端口转发控制,举个例子,要对某IP进行全端口封禁:
iptables -A INPUT -s 1.2.3.4 -j DROP
这个命令很直接,但这里有个细节值得留意:针对TCP SYN泛洪攻击,更有效的做法是限制syn包的速率:
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 20 -j ACCEPT
如果服务器跑的是CentOS 7+或使用了firewalld工具,firewall-cmd命令也能实现类似效果,且配置持久化更方便。
通过修改系统参数提升抗压能力
不少新手运维遇到的问题不是没做防护,而是系统默认参数太脆弱,常见的调优参数包括:调整net.ipv4.tcp_max_syn_backlog来增大半连接队列、降低net.ipv4.tcp_fin_timeout加快无效连接回收、开启net.ipv4.tcp_tw_reuse缓解TIME_WAIT堆积,修改后执行 sysctl -p 让配置生效,但注意,参数调整是辅助手段,不能替代流量清洗或WAF限制。
利用Fail2ban等工具自动阻断暴力破解
SSH端口被扫是常态,人工盯不现实,Fail2ban这类工具能根据日志中的失败登录记录,动态调用iptables或firewalld封禁恶意来源,配置路径通常是修改/etc/fail2ban/jail.local文件,为sshd服务设置maxretry和bantime参数,合理配置后,常见密码暴力破解在达到阈值后会被自动阻断,错误尝试次数会明显下降。
LVS、Nginx与负载均衡层面的转发阻断
业务架构稍微复杂一点的系统,常用Nginx来做反向代理和负载均衡,在这个层面配置阻断策略有一个重要优势:可以对URL路径和HTTP方法做语义级别的控制,比网络层更精细。
配置Nginx层封禁恶意请求
在server或location块中使用deny指令,
deny 223.64.0.0/16; allow all;
这条配置要放在server块的前面,才能让allow规则生效,对于频繁请求特定接口的客户端,Nginx的limit_req模块可以根据$binary_remote_addr变量识别来源IP并限速:
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=10r/s;
这种做法的实际意义在于:在应用层代码之前就完成了流量整形,即使后端应用存在性能瓶颈,也不会因为突发流量而瞬间崩溃。
健康检查与摘除异常节点
如果后端有多台业务服务器,负载均衡的健康检查机制本身就是一种“阻断”策略,当后端实例响应超时或返回5xx错误时,负载均衡器会将其自动置为“不可用”,新请求不再转发到该节点,这个逻辑的切换时间一般建议设为3个探测周期失败后摘除,避免单点故障拖垮整个集群。
常见的服务器攻击类型与对应的阻断策略选择
面对不同类型的攻击,没有一种策略是万能解,选择的核心依据是攻击特征、资源消耗模型和业务容忍度,下面把常见类型和应对策略做一个对照,方便快速决策。
| 攻击类型 | 典型特征 | 首选阻断策略 | 补充策略 |
|---|---|---|---|
| DDoS流量攻击 | 大带宽、大PPS | 流量清洗 / 黑洞路由 | CDN加速隐藏源站IP |
| CC应用攻击 | 高并发小请求 | 速率限制 / WAF人机校验 | 缓存静态资源 / 接口限流 |
| 暴力破解 | 连续失败登录 | Fail2ban / 防火墙封禁来源IP | 禁用root远程登录 / 改SSH端口 |
| SQL注入/WebShell | 恶意Payload特征 | WAF检测拦截 | 代码层参数化查询 / 文件只读权限 |
这里有个常见误区需要解释一下:配置了WAF不代表可以关掉系统防火墙,这两者防御层次完全不同,WAF工作在HTTP协议层,无法干预TCP层的SYN洪水或UDP反射攻击;而系统防火墙只认IP和端口,无法识别请求内容是否包含攻击代码,多层配置、各司其职才是合理的架构。
服务器被攻击怎么处理的完整流程参考
如果你正好在经历攻击现场,手忙脚乱容易出错,这里提供一套经过验证的操作路径,按顺序执行即可。
- 确认攻击类型:登录云控制台或IDC管理面板查看流量监控图,区分带宽型攻击还是CPU型攻击
- 启动基础防护:开启云厂商的DDoS基础防护或高防IP服务,将业务IP切换至防护IP
- 实施止血操作:在安全组或防火墙中临时限制非业务端口的入站流量,保留22、80、443等必要端口
- 采集攻击样本:在服务器上执行
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20查看TOP来源IP并保存日志 - 收敛暴露面:关闭不需要的UDP端口,调整数据库等内网服务的监听地址为内网IP
- 排查清理后门:检查
/tmp、/var/tmp目录下的可疑文件,执行last命令查看登录记录,检查定时任务crontab -l - 恢复业务并持续观察:修改服务密码和密钥,将事件报告提交给云厂商或安全服务商
服务器安全策略设置中的取舍与常见疑问
- 防护强度严格不是好事,过于激进的阻断策略会误伤正常用户,比如对登录接口限速设置的阈值为每秒1次,就会影响大量真实用户在企业办公网出口IP(NAT后共用一个公网IP)下的正常使用。
- 企业场景需要平衡成本和效果:高防IP的防护能力越强价格越高,而中小网站更适用的方案是配置WAF + 基础DDoS防护 + 限制管理端口,在可接受的安全范围内控制预算。
- 实时监控数据是策略调整的依据,如果部署了Zabbix、Prometheus等监控系统,就能直观看到阻断策略生效前后的流量曲线和负载变化,判断策略是否有效。
Q&A 版块
问:服务器IP被攻击导致封禁怎么办?
如果IP被云厂商或IDC封禁,先登录服务商控制台查看是否有“DDoS防护解封”入口,通常在“安全”或“防护”菜单下,自助解封次数耗尽后,需要提交工单并提供攻击时间段的流量截图、服务器侧抓包文件以及处理过程记录来申诉,日常运维角度出发,为源站配置CDN或者使用高防IP隐藏真实IP,能规避大部分IP封禁风险。
问:如何判断服务器被攻击了还是配置不对?
重点看四个维度:流量是否异常放大、CPU或带宽是否持续高位、错误日志是否集中报错、请求来源IP是否分散,如果是代码写死或死循环导致CPU飙升,进程列表里能看到明显的单一进程占满;如果是流量型攻击,外部入方向带宽会先被占满,此时通过安全组临时封锁非业务端口后,服务器负载通常能快速下降。
问:免费的安全防护工具能否替代收费的云安全产品?
免费的iptables、Fail2ban、Nginx限流模块能解决相当一部分应用层和暴力破解问题,但对于大流量DDoS攻击,本地工具无法在带宽被占满前完成拦截,因为攻击流量已经到达机房入口,收费高防服务的核心价值在于将恶意流量在骨干网侧清洗掉,源站本身不需要承受攻击带宽,对于无直接营收的个人站点,组合使用免费工具加域名解析商的免费DNS防护是性价比不错的选择;对于企业核心业务,高防服务和WAF属于必要的安全支出。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/776459.html


