1.
总体方案与前期准备
- 明确目标:保护对美服务(源站在美/海外云)通过CN2到美国的访问,防止应用层和网络层攻击。
- 清点资源:列出公网IP、BGP ASN、CN2链路(GIA/CMI等)、是否可配置BGP社区、现有CDN或云WAF供应商。
- 选择模式:边缘清洗(Cloud WAF/CDN + scrubbing)、本地WAF + 上游流量引导、或者混合(边缘过滤+源站WAF)。
2.
网络拓扑设计(建议图与组件)
- 建议架构:Internet → CN2链路 → Scrubbing/PoP(美国或就近)→ 负载均衡(NLB)→ WAF(边缘或源站)→ 源站。
- 多链路冗余:准备至少两条不同ISP的CN2或备份普通链路,配置BGP本地优先级、健康检查与自动回切。
3.
与承载/链路提供商沟通要点
- 确认是否支持BGP Flowspec或定制社区下发(用于快速黑洞或细粒度过滤)。
- 索取CN2出口点(POP)信息、清洗中心能力、DDoS SLA、联系方式与应急流程;在合同里写明响应时间与流量阈值。
4.
选择WAF类型与部署位置
- 云WAF(Cloudflare、Akamai、阿里云/腾讯云国际)优点:快速拦截、全球PoP、自动清洗;缺点:策略细化受限。
- 本地WAF(Nginx+ModSecurity、F5、NGINX App Protect):优点策略可控、日志掌握;需结合上游清洗应对大流量。
- 推荐:边缘云WAF做第一道防线,源站部署轻量WAF做二次防护与深度检测。
5.
ModSecurity + Nginx 实战配置(源站WAF)
- 安装并启用OWASP CRS:下载modsecurity-crs,复制 crs-setup.conf,编辑拦截模式。
- 基本配置片段:SecRuleEngine On;Include /usr/local/modsecurity-crs/*.conf;关闭误报高的规则ID并逐步白名单。
- Nginx集成:在http块中配置ModSecurity on;配置limit_req_zone与limit_req限制请求速率。
6.
NGINX 限速与连接控制示例
- 配置请求速率:limit_req_zone $binary_remote_addr zone=req_zone:10m rate=10r/s;在server/location中使用limit_req zone=req_zone burst=20 nodelay。
- 并发控制:limit_conn_zone $binary_remote_addr zone=addr:10m;limit_conn addr 10。此配置可以缓解慢速连接和短连接攻击。
7.
内核与防护优化(针对SYN/UDP flood)
- 建议sysctl设置(立即生效):sysctl -w net.ipv4.tcp_syncookies=1;sysctl -w net.ipv4.tcp_max_syn_backlog=4096;sysctl -w net.core.somaxconn=10240。
- UDP洪泛处理:使用iptables限制每秒UDP包:iptables -A INPUT -p udp --dport 53 -m limit --limit 200/s --limit-burst 300 -j ACCEPT;默认DROP其他超限包。
8.
iptables / nftables 常用速率规则
- 示例iptables限速(HTTP):iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 500 -j DROP。
- 针对单IP包速率:iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 25/s --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-name http_rate -j ACCEPT。
9.
上游清洗与BGP策略(大流量DDoS)
- 若遭遇大流量攻击,立即启动与承载商的清洗流程:提交攻击时间窗口、目的IP、攻击类型(SYN/UDP/HTTP)及流量峰值。
- 使用BGP Flowspec或黑洞(RTBH)时,按照提供商流程发起请求;准备好验证信息与预授权联系人,确保能在数分钟内下发规则。
10.
流量引导到清洗中心的实践步骤
- 步骤:1) 与承载商确认清洗服务可用;2) 在BGP路由器上准备社区或tag规则;3) 在控制台发起“引流到清洗中心”工单;4) 验证流量是否成功到达清洗端并返回正常流量。
- 验证方法:在清洗前后用tcpdump抓包比对并用流量图表(Grafana/Prometheus)观察峰值变化。
11.
日志、监控与告警(关键指标)
- 日志:WAF日志(阻断/告警)、Nginx访问/错误日志、网络设备流量采样(sFlow/netflow)。
- 指标与告警:突发流量、异常请求率(/s)、高错误率(5xx)、来源IP异常分布、连接数激增。配置PagerDuty/邮件/短信告警。
12.
演练与攻击模拟(合规与安全)
- 始终在授权环境测试:使用hping3模拟SYN flood(规模可控)、使用wrk/ab进行HTTP并发压测、用slowloris测试慢速请求。
- 测试步骤:1) 在低峰时段进行;2) 记录基线;3) 逐步增加流量并观察WAF与清洗触发点;4) 复盘并调整阈值与规则。
13.
误报与规则调优流程
- 开始以宽松策略上线:用检测模式(ModSecurity的DetectionOnly)收集事件一周,识别正常流量特征。
- 调优:将误报高的规则暂时关闭或添加例外;对重要API做白名单或按路径细化规则;记录每次变更并回滚机制。
14.
运维清单与日常维护要点
- 日常:检查链路状态、更新WAF规则库与OWASP CRS、同步黑名单、核查日志异常。
- 事件响应:明确SOP、应急联系人、备用路由与灾备演练频次(建议每季度一次)。
15.
问:CN2线路访问美国时,先部署云WAF还是先做网络层清洗?
- 答:优先部署云WAF作为第一道防线以拦截应用层攻击,同时并行准备网络层清洗(与承载商签约、配置BGP/Flowspec)。应用层攻击会直接被WAF拦截,流量洪峰仍需上游清洗处理,两者并行最稳妥。
16.
问:怎样安全地进行DDoS压测而不影响真实用户?
- 答:在独立测试环境或非生产时段、并得到运营商与上游同意后进行。使用限流、分阶段增量流量、监控抛出阈值并立即停止。可使用第三方压力测试服务做有控制的演练。
17.
问:如果承载商不支持Flowspec,该怎么快速缓解大流量?
- 答:可采取临时措施:1) 将目标IP切换到已签约的清洗IP/清洗CNAME(若使用CDN可切换至Cloud WAF);2) 与承载商协商RTBH(黑洞);3) 调整BGP localpref将流量引导到备用链路并结合WAF限流。
来源:安全策略cn2线路访问美国时如何部署WAF与DDoS防护