蓝易云CDN:跨境独立站安全实战:Nginx环境搭蓝易云WAF,新手也能半小时筑牢防线

蓝易云CDN:Nginx环境搭配蓝易云WAF,新手半小时筑牢独立站防线 🛡️

很多跨境卖家接入CDN后就以为万事大吉,结果源站IP一暴露,攻击照样直达服务器。真正有效的做法是两层配合:蓝易云WAF在边缘过滤恶意请求,Nginx源站只接受CDN回源并做好兜底。下面按操作顺序讲,照着做基本半小时内能完成。

第一步:准备工作 📋

动手前确认三件事:服务器已安装Nginx并能正常访问站点;你有服务器root或sudo权限;已向服务商获取最新的CDN回源IP段列表。另外,修改任何配置前先备份:

cp -r /etc/nginx /etc/nginx.bak.$(date +%F)

第二步:在控制台接入域名并开启WAF ⚙️

在蓝易云控制台添加加速域名,填写源站IP,按提示到DNS服务商处把域名解析改为CNAME记录。解析生效后,在WAF相关设置中开启防护。具体菜单名称以控制台实际界面为准。

建议新手注意一点:如果控制台提供"仅记录/观察"模式,先开这个模式运行一两天,确认没有误拦正常用户后,再切换为拦截模式。直接开最严格规则,最常见的后果是支付回调、第三方接口被误拦,订单状态同步失败。

第三步:让Nginx识别访客真实IP 🔍

接入CDN后,Nginx日志里记录的都是CDN节点IP。需要用realip模块还原真实地址,编辑Nginx配置的http段:

set_real_ip_from 203.0.113.0/24;   # 示例地址,替换为服务商公布的回源IP段,逐条填写
real_ip_header X-Forwarded-For;
real_ip_recursive on;

只有来自set_real_ip_from中所列地址的请求头才会被信任,这样可以防止攻击者伪造IP。请求头名称请以服务商文档为准。

第四步:源站只放行CDN回源 🔒

这是最关键的一步。注意,限制回源不要用Nginx的allow/deny来做,因为第三步开启真实IP后,Nginx判断的已经是访客地址而不是CDN地址,规则会失效。正确做法是在系统防火墙或云服务器安全组里限制。以ufw为例:

ufw allow 22/tcp                       # 先放行SSH,避免把自己锁在外面
ufw allow from 203.0.113.0/24 to any port 443 proto tcp   # 每个回源IP段都执行一次
ufw allow from 203.0.113.0/24 to any port 80 proto tcp
ufw enable

ufw默认拒绝未放行的入站连接,所以只需添加允许规则。如果你用的是云服务器,在安全组里做同样限制效果更好。

第五步:Nginx层兜底加固 🧱

WAF挡在前面,Nginx仍建议加几条基础防护。在http段加入:

server_tokens off;
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

在server段加入(以WordPress站点为例):

location = /xmlrpc.php {
    deny all;
}

location = /wp-login.php {
    limit_req zone=login burst=3 nodelay;
    # 此处需保留原有的PHP处理配置(fastcgi_pass等),否则登录页无法解析
}

server_tokens off用于隐藏Nginx版本号;limit_req让同一IP每分钟最多尝试5次登录;如果站点没有使用依赖xmlrpc的功能,可直接禁用该接口。

第六步:检查并验证 ✅

nginx -t && systemctl reload nginx

语法检查通过才会重载。之后做三项验证:

  • 用其他网络直接访问"源站IP",应无法连接,说明回源限制生效;
  • 查看access.log,确认记录的是真实访客IP而不是CDN节点;
  • 短时间内多次访问登录页,应返回503,说明限速生效。

常见问题提醒 💡

回源IP段服务商可能会调整,建议定期核对,否则可能出现部分节点回源失败。支付平台的回调地址如果被WAF拦截,需要在WAF中为对应路径设置放行规则,而不是整体关闭防护。遇到问题时,先查WAF拦截日志和Nginx错误日志,定位到具体规则再调整。

两层防护搭好之后,大部分自动化攻击和扫描都会被挡在门外,源站压力也会明显下降,独立站才能安心跑流量 🚀

THE END