服务器CC DDoS跨境攻击防护
攻击识别:先判断是CC还是DDoS
当你发现服务器响应变慢或无法访问,第一步不是急着买防御,而是先确认攻击类型。CC攻击的特征是大量正常请求(如刷新首页、搜索接口)占用服务器CPU和数据库连接;DDoS攻击则通过伪造IP发送海量数据包,堵满带宽。
你可以通过以下方式快速判断:
- 执行
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n查看连接来源IP,如果某个境外IP连接数异常高(数千甚至上万),很可能是CC。 - 登录云厂商控制台查看“入带宽”监控,如果带宽跑满而CPU不高,多半是DDoS。
- 在宝塔面板的“防火墙-实时监控”中也能看到瞬时连接数。
第一步:用Cloudflare过滤跨境恶意流量
Cloudflare免费版就能提供基础的DDoS保护和CC防护能力。
操作非常简单:
- 将域名DNS托管到Cloudflare:官网注册并添加站点,按提示修改NS记录。
- 在SSL/TLS设置中开启“完全(严格)”,避免源站IP暴露。
- 进入安全性 > 设置,将“Under Attack Mode”(攻击下模式)设为“开启”可临时拦截所有JavaScript挑战失败的请求。
- 在防火墙(WAF)规则中,创建一条“IP访问规则”,屏蔽掉高风险的境外国家/地区(如俄罗斯、乌克兰等非业务地区)。点击“添加规则”,选择“国家/地区”并设置为“阻止”。
- 开启速率限制:在“安全性 > 速率限制”中新增规则,匹配URL路径(如 /wp-login.php),阈值设为“每10秒5次”,动作选择“封锁”。
注意:Cloudflare免费版对HTTPS流量有100MB上限,但日常CC防护足够;如果想增强,可开启“Always Use HTTPS”并缓存静态资源。
第二步:服务器端防火墙与安全组双重防护
光靠CDN还不够,源服务器也要加固。
以下以宝塔面板和CentOS为例:
宝塔面板操作路径
- 进入“安全”菜单,点击“防火墙”标签,将“SYN Flood攻击防御”、“ICMP Flood攻击防御”等选项全部勾选。
- 在“IP规则”中添加“只允许国内IP访问”(如果你的业务仅面向国内)。将国内IP段列表(可去GitHub搜索“china ip list”)导入,拒绝其他。
- 添加“端口转发”规则,只开放80、443、SSH(修改默认SSH端口),其余端口封闭。
命令行配置(以iptables为例)
# 限制每个IP的并发连接数(防CC)
iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 50 -j DROP
# 限制单个IP每秒新建连接数(防DDoS)
iptables -A INPUT -p tcp --syn -m limit --limit 20/s --limit-burst 100 -j ACCEPT
把这些规则写入 /etc/sysconfig/iptables 并重启防火墙。
第三步:应用层速率限制与连接限制
如果你的业务无法使用Cloudflare(如API接口),可以在Nginx层做限制:
# 在http块中定义限流区域
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
# 在需要保护的location(如PHP解析)中应用
location ~ \.php$ {
limit_req zone=one burst=20 nodelay;
...
}
宝塔用户可直接在“网站 > 设置 > 性能调整”中开启“防CC攻击”,设置“单个IP最大并发连接数”为100。
避坑指南:跨境防护常见误区
- 误区1:只买高防IP不配置规则。高防IP只能消化大流量,应用层的CC请求依然会落在源站,必须配合WAF或速率限制。
- 误区2:封禁整个国家/地区导致误杀。建议先通过日志统计真实用户来源,再决定屏蔽范围。
- 误区3:SSH端口暴露在公网。跨境攻击者可能通过猜密码入侵,务必修改端口并使用密钥登录。
验证防护是否生效
攻击发生时,可以:
- 在Cloudflare“分析”页面查看“请求数”和“攻击数”,确认拦截记录。
- 用
watch -n 1 'ss -ntu | wc -l'实时观察连接总数,正常值应远低于攻击时。 - 从境外IP(也可以使用代理)尝试访问你的网站,如果被Cloudflare挑战页拦截或直接超时,说明规则生效。
- 在宝塔“日志 > Nginx访问日志”中搜索“403”,可见被速率限制拒绝的请求。
常见问题解答
Q:我的网站连了CDN,为什么源站IP还会被打?
A:可能是DNS泄露,或攻击者通过历史记录找到了源站IP。建议在CDN面板中只允许CDN回源IP段,并关闭源站非CDN来源的访问。
Q:免费版Cloudflare够防护跨境DDoS吗?
A:免费版可防护7层DDoS和CC,但遇到大流量带宽攻击(超过CDN单节点限制)时可能会显示525错误。此时需升级付费版或换用高防IP。
Q:配置完速率限制后,我的正常用户被封了怎么办?
A:将错误页面提示改为“请求过于频繁,请稍后重试”,并在规则中加白名单(如搜索引擎爬虫、常用API密钥)。