宝塔面板WAF防CC跨境攻击:宝塔面板WAF如何有效防御跨境
很多站长在做海外业务或开放外网访问时,经常遇到网站慢、卡甚至504,一看负载飙升,查日志发现大量来自国外IP的重复请求——这就是典型的跨境CC攻击。
如果本身没有专业硬件防火墙,宝塔面板内置的WAF(Web应用防火墙)可以免费帮你顶住大部分攻击。
下面直接上操作方法,新手上手也能轻松搞定。
先做好这些准备
在开始配置前,确认以下两项已经就绪:
- 宝塔面板版本:建议使用7.9.0以上(可在面板首页查看),WAF功能运行更稳定。
- Nginx环境:WAF基于Nginx的Lua模块工作,需要站点使用Nginx(Apache用户暂时无法使用此功能)。如果站点当前为Apache,可在宝塔“软件商店”重新安装Nginx并切换。
- 备份当前配置:在“网站”->对应站点->“设置”->“配置文件”中备份原始配置,防止误操作后需要还原。
分四步配置WAF防跨境CC攻击
第一步:开启WAF并启用CC防护
进入宝塔面板左侧“网站”菜单,点击对应站点右侧的“设置”。
在弹出的窗口中,找到“WAF”选项卡,开启WAF总开关。
接着点击“CC防护”子标签:
- 将“CC防护”开关打开。
- 请求频率:建议从100请求/60秒开始(即1个IP在60秒内超过100次请求自动拦截)。如果攻击很猛可降低到50。
- 拦截时间:设为600秒(10分钟),避免频繁误封。
- 地区选择:如果要精准防御跨境攻击,直接勾选“仅允许中国大陆”(如果你的站只面向国内用户)。这一步会大幅减少海外恶意IP的请求。
第二步:配置区域白名单与黑名单
如果站点需要接待海外真实用户(比如跨境电商、外贸站),不要直接全封,而是采用“黑名单”+“白名单”的组合策略:
- 在WAF的“地区限制”中,先添加你业务主要国家的白名单(比如美国、德国),其余国家默认拦截。
- 在“IP黑名单”中手动添加已知攻击IP段(可通过日志提取)。
操作路径:点击“全局设置”->“IP规则”->“添加IP规则”,选择“黑名单”或“白名单”。
注意:白名单优先级高于黑名单,所以先把可信国家加进白名单,再在黑名单里封特定IP。
第三步:自定义CC防护规则(进阶)
如果默认CC防护不够精细,可以点击“自定义规则”选项卡,新建一条匹配URI的规则:
- 匹配路径:输入攻击最集中的URL,例如
/api/或/wp-login.php。 - 匹配方式:选择“包含”。
- 请求频率:可以比全局更严,比如20请求/30秒。
- 动作:选择“拦截”或“验证码”(验证码对机器有效,对用户影响小)。
示例:阻止对/wp-login.php的暴力请求,频率设为10请求/30秒,动作选“验证码”。
这样真实用户输错密码后弹出验证码继续,而脚本直接卡死。
第四步:保存并检查WAF日志
所有配置完成后,点击页面底部的“保存”。
然后立即在“WAF”->“日志”中观察是否有拦截记录。
真实的攻击IP会在“拦截日志”里看到红色记录。
如果出现大量误拦截(比如国内正常用户被拦),需要调高请求频率阈值或把误拦IP加到IP白名单。
避坑指南:这些地方容易出问题
- 频率阈值调太低导致误封:新手常把阈值设为10/60秒,导致自己访问也被拦。建议先用100/60秒跑一天,观察日志中误拦比例,再逐步降低。
- 忘记开启“仅允许中国大陆”后国外客户无法访问:如果业务需要海外客户,不要勾选此选项,改用地区白名单。
- WAF和CDN同时使用时的IP来源问题:如果你的站点套了Cloudflare等CDN,WAF拿到的可能全是CDN节点IP,导致CC防护无效。需要在Nginx配置中开启“Real IP”模块(宝塔->软件商店->Nginx设置->配置修改,加入
set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For;),让WAF识别真实访客IP。
如何验证效果
- 压力测试:使用ab或Apache Bench等工具模拟100个并发请求,观察WAF日志是否成功拦截超过阈值的请求。注意:不要在自己生产环境压测,建议在测试站操作。
- 监控站点的负载:在宝塔面板“监控”页面查看CPU和内存走势,如果攻击被有效拦截,负载会明显下降。
- 查看WAF拦截统计:在“WAF”->“统计”中查看今日拦截次数,数值越大说明WAF正在工作。
如果你正在处理宝塔面板WAF防跨境CC攻击,建议先按本文步骤执行,再根据自己站点的访问日志微调频率和区域规则。
遇到异常时优先回看上面的避坑和高频问题,大多数误拦问题可以通过调整阈值或白名单解决。