香港服务器托管的DDoS实战配置指南,包含从网络、内核、firewall、Web服务、BGP/Anycast到监控与演练的详细步骤与命令示例。">
1.
准备工作:确认托管环境与应急联络
- 检查带宽和接入:确认机房上行带宽、是否支持BGP多线、是否提供null-route/cleaning服务。
- 获取联络信息:记录机房值班电话、上报工单流程、清洗厂商联系人、ASA/防火墙管理员。
- 制定应急手册:建立IP白名单、管理账号、紧急切换流程(DNS、BGP社区、流量重定向)。
2.
网络层防护配置:BGP黑洞与流量清洗预案
- 与机房签署BGP/黑洞流程:确认在遭受攻击时如何下发BGP黑洞(community或route-map),获得示例命令与联系方式。
- 预留cleaning链路:如果使用第三方清洗,预先配置BGP会话或IPsec隧道,测试路由切换。
- 实战命令示例:向上游申请临时黑洞(由机房执行),记录所需ASN/Community参数以便快速触发。
3.
内核与TCP栈调优:sysctl 实操设置
- 编辑/etc/sysctl.conf并应用:
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.ip_local_port_range=1024 65535
net.netfilter.nf_conntrack_max=262144
net.ipv4.tcp_tw_reuse=1
- 应用命令:sysctl -p;若conntrack不足,监控/proc/net/nf_conntrack并增大值。
- 说明:syncookies启用可对SYN洪泛提供第一层保护;增加backlog与调整conntrack防止连接耗尽。
4.
防火墙与iptables/nftables策略
- 基本丢弃策略:丢弃无效包与新建连接速率限制(示例iptables):
iptables -N DDOS
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p tcp --syn -m limit --limit 50/s --limit-burst 200 -j ACCEPT
- 针对UDP/ICMP:限速并白名单管理:
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p udp --dport 53 -m connlimit --connlimit-above 50 -j DROP
- 使用nftables可获得更好性能,若流量极大应在上游清洗而不是仅靠本机iptables。
5.
Web服务与应用层限流(以Nginx为例)
- Nginx配置限流:在http或server段加入:
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server { limit_conn addr 10; limit_req zone=one burst=20 nodelay; }
- 开启缓存、防止慢请求:启用fastcgi_cache、proxy_cache,设置合理的keepalive_timeout与client_body_timeout。
- 对于HTTP基于路径的攻击,配置WAF规则(ModSecurity或付费WAF)进行精确阻断。
6.
CDN与WAF策略:前置分流与清洗
- 强烈建议将公网流量前置到CDN/WAF:将DNS指向CDN,CDN承担大部分HTTP/HTTPS流量。
- CDN设置实操:设置缓存规则、开启速率限制、开启IP黑名单和JS挑战(bot challenge)。
- 对于非HTTP协议(游戏、VoIP),使用支持任意端口/二层清洗的高防节点或将流量BGP切到清洗中心。
7.
BPF/eBPF与流量过滤(进阶)
- 若Linux版本支持,使用iptables+nf_tables配合tc或eBPF进行高性能包过滤,减少用户态处理。
- 简单eBPF示例思路:限制单IP并发连接数、在TC上丢弃超出阈值的流量。可使用bcc工具链快速测试。
- 注意:eBPF适用于高性能数据面过滤,但开发/部署需要测试环境与经验。
8.
监控、告警与日志:建立入侵与流量监测
- 关键指标:上行带宽、每秒连接数、SYN/UDP包速率、conntrack占用。用Prometheus+Grafana或Zabbix采集。
- 告警阈值示例:带宽>70%峰值、SYN/s>10000、conntrack使用>80%触发SMS/钉钉告警。
- 日志保留与取证:开启tcpdump环形保存(例如每5分钟轮转),攻击后导出pcap并交由清洗厂商分析。
9.
演练与恢复:常见操作步骤与脚本化
- 演练步骤:1)模拟流量(小规模)2)触发上游黑洞/清洗3)切换DNS或BGP回切4)验证服务可用性。
- 建立脚本:快速下发iptables规则、触发API通知机房、BGP社区下发脚本(与机房接口对接)。保存脚本并放在受限访问的仓库中。
- 恢复流程:先恢复核心服务,再逐步取消黑洞并观察是否回流攻击,确认清洗干净再正式回切。
10.
问:高防香港服务器面对大流量UDP/ICMP攻击时,首要动作是什么?
- 答:首要动作是立即通知机房/上游并触发流量清洗或BGP黑洞,同时启用本机的速率限制与丢弃无效包规则(如iptables丢弃INVALID,限制ICMP速率),以保护控制面与管理通道。
11.
问:如何在不影响正常用户的前提下设置防护阈值?
- 答:先做基线监控,统计正常峰值并在其上留出一定余量(例如150%),以此设定告警与自动防护阈值;对特定关键IP/业务使用白名单并对普通用户启用渐进式挑战(验证码/JS挑战)。
12.
问:有没有快速可复用的应急脚本示例?
- 答:有。示例思路包括:1)一键启用iptables防护链(丢弃INVALID、启速率限制);2)调用机房/清洗厂API发送清洗请求;3)轮询监控接口并发送告警。将这些脚本置于受控库存并定期演练,确保在攻击时能及时执行。
来源:高防香港服务器托管在应对DDoS攻击时的实战配置建议