1.
概念与定位:高防CDN与高防IP分别是什么
- 高防CDN:在CDN基础上集成DDoS/应用层防护,做7层(HTTP/HTTPS)清洗、缓存与WAF规则,常见厂商有Cloudflare、Akamai、阿里云、腾讯云。
- 高防IP:提供专门的可达IP(通常Anycast或专线回源),在3/4层进行清洗(TCP/UDP),适合游戏/登录/API等需要固定IP的场景。
2.
选型原则与成本考虑
- 如果网站依赖域名且访问模式以Web为主,优先用高防CDN;若需要固定公网IP或承载非HTTP业务(游戏、邮件),必须加高防IP。
- 混合部署(CDN前端+高防IP作为源站/备份)能兼顾成本与保护强度。
3.
购买与准备步骤
- 选择厂商,购买高防CDN(按带宽/请求计费)和高防IP(按线路/清洗流量计费)。
- 准备源站:确保源站有固定内网IP或弹性公网IP,备份数据与证书。
4.
第一步:部署高防CDN(以示例厂商为参考)
- 在控制台添加域名,填写源站地址(可以填写高防IP或真实内网IP)。
- 开启代理(CNAME或A记录),配置证书(Let's Encrypt或自带证书)、缓存规则与WAF策略(SQLi/XSS基线)。
5.
第二步:部署高防IP并作为源站或备用
- 在高防IP控制台获取防护IP或弹性IP,绑定负载均衡或NAT网关,将后端流量回拨到真实服务器。
- 在DNS中可以把域名的源站记录指向高防IP(仅用于CDN回源或备用切换)。
6.
第三步:源站安全加固(最关键)
- 在服务器防火墙(iptables/nftables)及云安全组中只允许来自CDN与高防IP的回源IP段访问:例如iptables -A INPUT -s
-j ACCEPT;其余DROP。
- 在Nginx启用real_ip模块,添加 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for,以记录真实访客IP。
7.
Nginx限流与拒绝策略示例
- 在http块加入:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server块使用limit_req zone=one burst=20;
- iptables限连接示例:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP;结合fail2ban自动封禁异常IP。
8.
DNS与切换策略
- 将主域名指向高防CDN的CNAME;将备用A记录指向高防IP(低TTL便于切换)。
- 制定应急切换流程:CDN失效 -> 通过低TTL快速把A记录改为高防IP;或反向:高防IP被攻击时,将流量导入CDN。
9.
监控、日志与报警配置
- 开启访问日志、WAF日志与防护控制台告警。配置Prometheus/Grafana或厂商监控:流量、包速率、请求异常率。
- 设置阈值告警并绑定短信/邮件/钉钉机器人。
10.
实战演练与流量校验(合法范围内)
- 使用厂商提供的压测服务或内部压测环境,模拟并发与请求模式;避免非法攻击他人资源。
- 检查回源是否被正确白名单过滤,观察清洗行为(高流量下CDN是否返回503或降级)。
11.
运维细节与优化建议
- 优先把静态资源交给CDN缓存,降低回源压力;设置合理Cache-Control与Gzip/ Brotli。
- 定期更新WAF规则、IP段名单;保存清洗样本供厂商优化白名单策略。
12.
搭配使用示例架构(推荐)
- 前端:高防CDN做全球Anycast边缘缓存与WAF;回源时指向高防IP。
- 中端:高防IP做3/4层清洗并负载到LB/NAT,再到真实服务器。这样获得“7层+3/4层双重保护”。
13.
常见问题与排障
- 常见问题:回源被误封、访问延迟增加、证书链错误。排查顺序:DNS解析->CDN控制台->回源白名单->Nginx日志。
- 若回源被封,临时将源站改为内网地址并在CDN控制台手动回源IP覆盖。
14.
问:高防CDN和高防IP哪个先部署?
- 答:建议先评估业务。如果以Web为主先上高防CDN以获得快速覆盖,再结合高防IP作为回源或非HTTP业务保护;混合部署通常效果最佳。
15.
问:如何把源站仅允许CDN访问?
- 答:在服务器防火墙或云安全组中放行厂商提供的边缘IP段或回源IP,其他全部拒绝;同时在应用层校验X-Forwarded-For/自定义回源验证头以防伪造。
16.
问:如何合法测试防护是否生效?
- 答:使用厂商压测服务或自建内网压测工具生成正常/异常流量样本,观察控制台清洗统计;切勿在未授权环境对外发起攻击,遵守法律与服务商条款。