1.
前期准备与授权(必须)
- 在任何压力或攻击模拟前,取得租用公司书面授权(邮件或合同),并明确测试时间窗口、测试目标IP/端口与允许的流量类型。
- 确定测试负责人、应急联络人以及回滚/中止条件(如服务不可用超过X分钟需立即停止)。
- 准备一台或多台外部控制机器(最好在不同ISP/地区),用于生成测试流量和收集测量数据,避免在被测目标所在网络直接发起流量以免影响提供方内部网络。
2.
必备工具与环境搭建
- Linux 控制节点:安装 hping3、iperf3、wrk、ab(apachebench)、siege、mtr、tcpdump、tshark。
- 记录与分析:安装 rsyslog/收集脚本,将测试中产生的日志、pcap、latency/throughput指标上传至独立存储。
- 提前与高防厂商约定是否允许抓取他们侧的 pcap 或者是否能提供端口镜像/清洗中心日志,便于对比验证。
3.
基线测试:确认正常性能与指标
- 网络连通性与延迟:ping -c 100 <目标IP>,记录丢包率、最小/平均/最大RTT;mtr --report <目标IP> 评估路径稳定性。
- 带宽与并发基准:iperf3 -c <目标IP> -p <端口> -t 60 测试单连接与多连接带宽上限。
- 应用吞吐基线:使用 wrk -t12 -c200 -d30s http://<目标域名>/ 记录 RPS、延迟分位数与错误率(5xx)。这些基线在攻防测试中用于对比。
4.
层3/层4 防护测试(注意节制与授权)
- SYN/ACK 测试(模拟SYN洪泛):使用 hping3 -S --flood -V -p <端口> <目标IP> 并逐步增加速率(先低到高),每次增加后观察目标端响应(ping、应用日志、ss/netstat)。
- UDP洪泛:hping3 --udp --flood -p <端口> <目标IP>,记录丢包、目标CPU及网络接口drop。
- 测试要点:记录达到一定pps后目标是否能保持可用、是否出现大量RST/ICMP unreachable、是否触发上游黑洞(询问厂商是否实施BGP nullroute)。
5.
层7(应用层)攻击模拟与WAF检测
- 高并发HTTP GET/POST:用 wrk 或 ab:wrk -t8 -c1000 -d60s http://<目标>/;ab -n 100000 -c 500 http://<目标>/。观察错误率、响应码分布、是否出现验证码或阻断页面。
- 慢速攻击(Slowloris/SlowPOST):运行 slowloris 脚本或自写socket保持大量半开连接,检测服务器最大连接数与超时策略。
- 模拟复杂行为:构造异常User-Agent、短时间内大量不同URI访问,观察WAF是否触发规则、是否返回挑战(JS挑战/验证码/302重定向)。
6.
日志与抓包验证(与厂商配合)
- 本地抓包:在控制节点 tcpdump -i eth0 host <目标IP> -w test.pcap,记录发出流量与收到的响应,以便证实流量是否被丢弃在边缘。
- 请求厂商提供清洗中心日志(scrub logs),应包含时间戳、原始流量量值、被拦截源IP列表、触发规则与清洗后流量统计。
- 对比本地pcap与厂商日志,验证是否存在“表面可用但实际丢包”的情况。
7.
指标记录与判定标准
- 必测指标:RCT(响应时间)P50/P95/P99、错误率(4xx/5xx)、可用率(uptime%)、包丢失率、mitigation start time、mitigation duration、清洗后流量量。
- 判定原则示例:若在模拟100Kpps的SYN洪水下,目标仍能保持>99%可用且清洗开始时间<60s,视为防护能力良好。若清洗时间>5分钟或大量合法连接被误杀,需记低分。
8.
评分体系与评估表(可量化)
- 建议分项与权重(总分100):检测速度20、清洗效果30、误杀率(合法流量影响)20、透明度与日志10、支持响应(人工/自动)20。
- 举例:检测速度(自动规则触发时间,0-20分),清洗效果(攻高峰后可用率,0-30分),误杀率(误拦率低得高分),透明度(提供pCAP/日志得分),支持(SLA与人工响应时间)。
9.
常见陷阱与注意事项
- 谨防“纸面方案”:厂家描述的带宽或pps能力必须通过实测验证(尤其是上游清洗中心吞吐)。
- 验证清洗路径:部分厂商会在发生攻击时直接黑洞,这会导致你服务下线,需提前确认是否可接受和是否有备选IP/线路。
- 法律与合规:未经书面授权不得发起任何DDoS模拟,避免触犯法律和影响第三方。
10.
实操示例命令清单(可复制运行)
- 基线ping:ping -c 100 <目标IP>;mtr --report <目标IP>。
- 带宽测试:iperf3 -c <目标IP> -p 5201 -t 60。
- SYN测试(低速逐步上升):hping3 -S -p 80 --flood --rand-source <目标IP>(先不要用 --flood 可使用 -i u1000 控制速率);
- HTTP压测:wrk -t12 -c500 -d60s http://<目标域名>/。
11.
测试后复盘与报告要点
- 汇总:列出每项测试的时间、命令、观测到的指标、对比基线的变化。
- 请求厂商对异常点给出书面解释(例如为何触发黑洞、为何误杀大量IP)。
- 给出建议:如果发现误杀严重,建议配置更细粒度的白名单/黑名单、分流到备用IP、或升级清洗策略。
12.
问:没有厂商授权可以做哪些合法的测试?
答:在无授权情况下,只能做非侵入性的测量(ping、mtr、DNS解析、页面抓取等正常访问行为)、带宽基准(向同意的测试端口发起小流量测试),绝对不能发起会被视为攻击的洪泛或大量并发连接。任何主动攻击类测试都必须书面授权。
13.
问:如何判断厂商是否在“假防护”或只是把流量黑洞了?
答:通过对比本端pcap与厂商清洗日志:若你看到上游或清洗点返回的是TCP RST或直接丢包,并且厂商日志显示BGP黑洞事件且目标不可用,则极可能为黑洞。真正的清洗应表现为合法会话持续成功,错误率和延迟回落,且厂商提供清洗后流量细节与报告。
14.
问:测试数据不足以判断时还有哪些补充手段?
答:可以要求厂商开放临时镜像流(mirror)或提供清洗中心的实时统计接口(API),并在不同时间、不同流量类型反复测试;同时增加地理分布的测试节点以排除单一链路问题,并在必要时邀请第三方安全评估公司做独立复核。
来源:如何通过测试判断香港高防服务器租用公司真实防护能力