1.
目标与总览
- 目标:在香港节点以本土高防服务器为主,同时与公有云/清洗中心做混合防护,实现在DDoS攻击时快速切换、最小化业务中断。
- 要点:BGP/Anycast、低延迟清洗路径、边缘WAF与限流、本地服务器硬化、自动化监测与故障演练。
2.
第一步:评估与准备(采购与资质)
- (a) 资产盘点:列出IP/域名、应用端口、峰值带宽、正常并发连接数。
- (b) 采购:在香港备案或租用机房、申请或带入IPv4/IPv6前缀及ASN(如需Anycast),与ISP/上游确认支持BGP和社区标签。
- (c) 合同:确认清洗服务SLA、黑洞策略、响应时间与流量峰值限制。
3.
第二步:网络设计与BGP/Anycast部署
- (a) Anycast方案:向多个香港机房或CDN节点同时公告同一前缀,利用BGP在网络层分散流量。
- (b) BGP实施:与ISP协商 ASN、前缀转发,若没有自有ASN,可使用上游ASN或租用。测试步骤:在路由器/服务器上用bird/exabgp模拟公告并验证到达性。
- (c) 灰度策略:低TTL DNS并配置健康检查用于突发切换。
4.
第三步:本地服务器与内核调优(实操命令)
- (a) 编辑 /etc/sysctl.conf,添加并加载:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=4096
net.core.somaxconn=65535
net.netfilter.nf_conntrack_max=262144
- (b) 应用:sudo sysctl -p;检查:sysctl net.ipv4.tcp_syncookies。
- (c) 文件描述符与系统限制:在 /etc/security/limits.conf 增加:* soft nofile 200000;重启服务。
5.
第四步:边界防护(iptables/nftables 与黑白名单)
- (a) 启用基础策略:DROP所有入站默认,允许必须端口(80/443/22仅限管理IP)。示例:iptables -P INPUT DROP;iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT。
- (b) SYN防护与限速:iptables -A INPUT -p tcp --syn -m limit --limit 50/s --limit-burst 200 -j ACCEPT。
- (c) 黑名单自动化:使用fail2ban或自写脚本定期拉取异常IP并更新iptables/ipset(ipset更高效)。
6.
第五步:应用层防护(Nginx/WAF/限流)
- (a) Nginx限流示例(http段):limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;server中limit_req zone=req burst=20 nodelay。
- (b) WAF:部署ModSecurity+规则集(OWASP CRS),对接日志并定制规则;Cloudflare或厂商WAF可作为前端。
- (c) 文件上传/验证码/CSRF策略:对敏感接口加二次验证或按IP频率限制,减少应用层滥用。
7.
第六步:高可用与故障切换(keepalived/HAProxy)
- (a) 会话保持与负载均衡:在前端用HAProxy分发到本地后端与云端后备组,配置health-check。
- (b) keepalived做VRRP:在两台高防机间做VIP漂移,示例配置中设置优先级、检查脚本。
- (c) 自动化DNS/路线切换:配置监测脚本(Prometheus alertmanager触发)执行API调用切换DNS到云清洗或触发BGP撤销/公告。
8.
第七步:云端清洗与混合流量编排
- (a) 评估云厂商能力:AWS Shield/WAF、Azure DDoS、Cloudflare Spectrum、第三方清洗服务。选择支持GRE/IPIP隧道或BGP引流的清洗中心。
- (b) 建立隧道:与清洗方协商建立GRE隧道并测试路由;流量被转发到清洗中心后返回到本地或云后端。
- (c) DNS与Anycast协同:低TTL DNS在检测攻击时将域名指向清洗/云端IP;同时在BGP层用路由策略引流。
9.
第八步:监控、演练与运行手册
- (a) 监控项:流量(pps/bps)、连接数、错误码率、后端延时,使用Prometheus+Grafana或云监控。
- (b) 告警与自动化:设置阈值后触发自动脚本(例如Lambda/Ansible),实现切换到云清洗并发出通知。
- (c) 演练:定期做红蓝演练(合法压测如hping3/siege),验证BGP/DNS切换、清洗流程和回滚步骤,并更新运行手册。
10.
常见问题一:在香港如何实现BGP Anycast最小化延迟?
- 答:选择靠近目标用户的香港多个机房同时公告前缀,向上游申请适当的BGP社区优化路由,使用本地ISP和内容分发合作伙伴做本地回源,测试并调整MED/AS-path prepending以控制流量。
11.
常见问题二:遭遇超过清洗带宽的超大DDoS,优先策略是什么?
- 答:优先保证控制平面:1) 触发云清洗并将域名/前缀引流到清洗中心;2) 若清洗仍不足,临时启用黑洞/流量丢弃规则针对非关键前端或协议;3) 同时通知上游ISP寻求协助并启动事后回溯与补救。
12.
常见问题三:日常维护与成本控制有哪些建议?
- 答:1) 把高频攻击自动化(黑名单、限流)以减轻人工成本;2) 按流量峰值购买清洗能力并结合按需云资源;3) 定期审计规则和SLA,基于监控数据优化前端策略以降低长期费用。
来源:部署建议 香港本土高防服务器与云端混合防护最佳实践指南