香港服务器的高防护配置:如何通过集成WAF和流量清洗,防止大规模Bot攻击对业务的影响?

香港服务器的高防护配置:如何通过集成WAF和流量清洗,防止大规模Bot攻击对业务的影响?

昨天凌晨,我正准备把香港机房的 FortiGate 控制台关掉去休息,突然看到流量曲线瞬间拔高——入口 PPS 直接突破 35 M pps,HTTP 请求暴增到 400 k rps,全部来自伪造的移动端 UA 与数万条 IPv4 地址。幸好两个月前我刚把 A5数据香港机房的「GTX-Shield」流量清洗服务和自建 WAF 串成了双层防护链,才没让电商结算接口停摆。下面我把这套 “WAF + BGP Anycast 流量清洗” 的实战方案完整复盘出来,方便你在香港服务器上复刻同级别的高防护体系。

1 .业务与威胁模型

维度 典型数据 关键痛点
峰值带宽 15 Gbps 正常 / 120 Gbps 攻击 超带宽放大、成本激增
QPS/RPS 30 k rps 正常 / 400 k rps 攻击 连接耗尽、队列阻塞
协议特征 TLS 1.3 + HTTP/2 需要 L7 解析与指纹识别
攻击类型 伪造 UA Bot、慢速 POST、cache-bypass 传统 L3/4 清洗难以识别

结论:必须把 L3-4 广谱流量清洗与 L7 智能 Bot 识别结合,并保证“清洗—回注—WAF—业务”链路在香港本地闭环,减少跨境时延。

2 . 整体架构速览

┌────────┐       BGP Anycast        ┌──────────────┐
│ 全球用户 ├──→  Scrubbing DCs ──GRE→│ HK Clean Pipe│
└────────┘                           └────┬────────┘
                                          │内部 VLAN
                          ┌────────────────┴────────────┐
                          │  Layer-7 WAF Cluster (HA)   │←→Redis/Lua Bot DB
                          └────────────┬───────────────┘
                                       │
                         ┌─────────────┴─────────────┐
                         │  A5数据 HK Origin LB (LVS) │
                         └─────────────┬─────────────┘
                                       │
                             ┌─────────┴─────────┐
                             │   应用节点池      │
                             └───────────────────┘

流量路径:Anycast 洗→ GRE 回注→ VXLAN 入 WAF→ LVS→ 应用。

控制面:WAF、Scrubber、LVS 皆打通 Prometheus + Alertmanager,5 s 粒度。

3 . 核心组件选型

功能 方案 关键配置
流量清洗 GTX-Shield (A5数据) + ChinaTelecom HK T-Clean Anycast /24 & /48 宣告,阈值 20 Gbps 自动切换
隧道 GRE-IPSec AES-GCM-128,MSS 1350 bytes
WAF FortiWeb 7.4 HA 双活 Inline-TM (Transparent) + Bot Detection ML
边缘速率限制 Nginx Lua + Redis 动态滑窗,Key = UA_hash+IP_CIDR

4 . 部署实战步骤

4.1 BGP Anycast + 清洗中心

申请 /24 Public 段 → 在 HK、SG、LA 三个清洗 POP 广播。

每 POP 使用 Bird2:

protocol bgp cleanpop {
    local as 65010;
    neighbor 203.0.113.1 as 65000;
    multihop;
    password "********";
    import filter bgp_in;
    export filter bgp_out;
}

与 A5数据 HK CORE 路由交换 iBGP,启用 BGP Flowspec,推送 ACL(TCP syn_rate > 5 k pps → drop)。

4.2 GRE-IPSec 回注

ip tunnel add gretun1 mode gre remote 198.51.100.10 local 203.0.113.10 ttl 255
ip link set gretun1 up
ip addr add 10.20.0.2/30 dev gretun1
ip xfrm state add src 203.0.113.10 dst 198.51.100.10 \
  proto esp spi 0x1000 mode tunnel \
  aead 'rfc4106(gcm(aes))' 0xKEY 128

MSS fix:iptables -t mangle -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –set-mss 1350.

4.3 WAF HA 集群

# FortiWeb CLI
config system ha
    set mode a-p
    set session-pickup enable
end
config server-policy policy
    edit "ecom-front"
        set protocol https
        set ssl-offloading enable
        set waf-profile "Bot-ML"
    next
end

实测:7.4 版本在双 25 GbE 直通口上桥接,最大可撑 30 Gbps TLS tprox 带宽 + 300 k rps。

4.4 Nginx Lua 行为速率限制

-- /etc/nginx/lua/bot_rate.lua
local key = ngx.md5(ngx.var.remote_addr:sub(1,7) .. ngx.var.http_user_agent)
local limit = ngx.shared.bot_limit
local req, err = limit:incr(key, 1, 0, 3600)
if req and req > 120 then
    return ngx.exit(429)
end

5 . 动态规则与 Bot 指纹库

Suricata + EmergingThreats BotCC 部署在清洗 POP,触发后写入 Kafka。

Kafka 消费端用 Golang 15 ms 内同步到 Redis→Lua→Nginx,完成“中心识别—边缘执行”闭环。

FortiWeb 调用 REST API,周期 1 min 下发 custom signature:

curl -k -X POST -d @rule.json \
https://10.0.0.5/api/v2.0/waf/signature/custom

6 . 一次 400 k rps 攻击处置复盘

时间线 事件 动作 结果
T+0 s 流量尖峰 120 Gbps Scrubber → Anycast 宣告 /24 → 洗包 Origin 带宽维持 4 Gbps
T+3 s HTTP/2 并发 400 k rps WAF Bot-ML 阈值 0.82 → JS Challenge 96 % Bot 被挡
T+12 s 剩余 15 k rps Lua 限流 >120 rps/IP QPS 恢复 28 k
T+90 s 攻击结束 GRE 渠道降为 1 Gbps Anycast 撤播

7 . 监控、告警与回溯

  • Prometheus Exporter:Bird2、IPSec、FortiWeb syslog → Loki。
  • Grafana Dashboard:自定义 WAF 阻断率、Scrubber PPS、Lua 429 比例。
  • Alertmanager:规则 rate(http_requests_total[30s]) > 5e5 → PagerDuty。
  • ELK 回溯: Kibana Filter tags:bot_attack AND response:429 定位漏网段,导入 Suricata 重新训练 ML。

8 . 性能调优要点

内核参数

net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
  • TLS 会话复用:FortiWeb 启用 Session Ticket,Nginx 打开 ssl_session_cache shared:SSL:50m;.
  • NFQUEUE 分流:把 SYN/ACK 入 NFQUEUE→DPDK-userspace 处理,CPU util 从 82 % 降到 55 %。

我透过 “Anycast 流量清洗 + 本地 WAF + 行为级速率限制” 的三段式闭环,把香港业务的抗 Bot 上限从原先的 20 Gbps 提升到了 >100 Gbps,同步保持 30 ms 内的 TTFB。

如果你也在 A5数据、HKColo 等地运营高价值 Web 服务,强烈建议照此思路—先把 带宽护城河 挖足,再用机器学习 WAF 做 内外有别 的精细化拦截,最后让 动态 Lua 策略 随流量快速收口。这样不论 Bot 攻击如何演化,你都能抢占主动权,把影响控制在 SLA 之内。

未经允许不得转载:A5数据 » 香港服务器的高防护配置:如何通过集成WAF和流量清洗,防止大规模Bot攻击对业务的影响?

相关文章

contact