1.1 明确保护目标:列出需要保护的IP、端口、应用(如网站、登录接口、API),并标注优先级(高/中/低)。
1.2 环境核对:确认台湾节点带宽、ASN、BGP可控性、是否支持Anycast、是否有云端清洗(scrubbing)服务、运维联系人与电话。建议输出一份“应急清单”。
2.1 排名参考维度:带宽上限、清洗容量、平均延迟、支持BGP Anycast、清洗延迟(秒级)、DDoS历史响应案例、价格与SLA。
2.2 实操建议:优先选择有全球或区域Anycast、可在BGP层面转发到清洗中心、并提供99.99% SLA与快速响应电话的供应商。对比时要求对方提供最近6个月攻击清洗报告样本(含pps/mbps峰值)。
3.1 部署监控:Prometheus + node_exporter / Zabbix 监测带宽、连接数、HTTP 5xx/4xx、CPU、conntrack 使用率。设置阈值,如流量突增 2x、连接数突增 3x 触发告警。
3.2 快速抓包定位:使用 tcpdump 快速确认流量特征,示例命令:tcpdump -nn -s0 -c 1000 -i eth0 'tcp' -w /tmp/ddos.pcap,然后用 tshark 或 Wireshark 过滤源IP分布与目的端口分布。
4.1 临时内核调整,立即生效:执行 sysctl 调整(在root下):
sysctl -w net.ipv4.tcp_syncookies=1 sysctl -w net.core.netdev_max_backlog=30000 sysctl -w net.core.somaxconn=4096 sysctl -w net.ipv4.tcp_max_syn_backlog=65536 sysctl -w net.netfilter.nf_conntrack_max=2000000
4.2 持久化写入 /etc/sysctl.conf,避免重启丢失。关注 conntrack 表,实时查看:watch -n1 "cat /proc/net/nf_conntrack | wc -l"。
5.1 快速封堵高频恶意源(黑名单):使用 ipset 管理大量 IP,再用 iptables 引用,示例:
ipset create ddos-blacklist hash:ip iptables -I INPUT -m set --match-set ddos-blacklist src -j DROP
5.2 SYN/连接数限流(示例 iptables):
iptables -N SYN_FLOOD iptables -A INPUT -p tcp --syn -m limit --limit 50/s --limit-burst 200 -j RETURN iptables -A INPUT -p tcp --syn -j SYN_FLOOD iptables -A SYN_FLOOD -m recent --name synflood --set iptables -A SYN_FLOOD -m recent --name synflood --rcheck --seconds 1 --hitcount 200 -j DROP
5.3 nftables 例子(更高性能):
nft add table inet filter nft add chain inet filter input { type filter hook input priority 0 \; } nft add rule inet filter input tcp dport 80 ct state new limit rate 50/second drop
6.1 简单流量整形:在出口对可疑来源做 policing,示例:
tc qdisc add dev eth0 root handle 1: htb default 10 tc class add dev eth0 parent 1: classid 1:10 htb rate 1000mbit ceil 1000mbit tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip src 1.2.3.4/32 police rate 10mbit burst 10k drop
6.2 注意:tc 配置要慎用于生产环境,应先在测试节点验证避免误伤合法流量。
7.1 如果攻击超过单点承载,立即启用清洗:将受保护前缀(或IP)通过 BGP 宣告给供应商或对接 Anycast 清洗节点,要求对方在15分钟内切换。
7.2 DNS 与 TTL 策略:提前将重要域名 TTL 设低(60s),在切换时可快速改为清洗后IP或CNAME。操作步骤:降低TTL → 广播BGP至清洗 → 验证清洗后流量通过 → 逐步恢复正常路由。
8.1 启用WAF(ModSecurity、云WAF):立刻打开严格模式,拦截大量相同 User-Agent、异常 URI 长度、重复请求。导出日志并基于IP/UA建立临时规则。
8.2 Nginx 层面限制:示例配置:
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 50; limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; limit_req zone=req burst=20 nodelay;
9.1 逐步恢复:先在清洗环境减轻规则强度,监控流量稳定至少 30 分钟后恢复原路由与正常TTL,同时保留临时黑名单 24-72 小时。
9.2 事后取证与总结:收集 pcap、Netflow、清洗报告、服务器日志,分析攻击类型(SYN/UDP/HTTP Flood/Amplification),写成应急复盘,更新应急手册并演练。
问:台湾高防服务器在选择时最关键的三项指标是什么?
答:答:带宽与清洗容量(能承受的峰值 Gbps/pps)、BGP/Anycast 能力(能否在网络层快速切换到清洗中心)、以及清洗延迟与响应时间(供应商从告警到清洗的平均时延),这三项决定了实战能否快速抵御大流量攻击。
问:在没有云清洗能力时如何在本地快速缓解大流量?
答:答:优先做内核调优(开启 syncookies、提升 backlog)、使用 ipset + iptables 批量拦截恶意IP、启用应用层限流(nginx limit_req/limit_conn)、并用 tc 对可疑源做 policing。若带宽被耗尽,联系上游 ISP 请求黑洞/流量过滤或临时公告 BGP 给上游清洗。
问:如何把平时的防护准备做成可执行的“应急清单”?
答:答:创建一页纸清单包含:保护的IP/端口、BGP 联系人与切换步骤、DNS TTL 值与改动流程、本地临时 sysctl/iptables/nft/nftables 命令、清洗供应商电话与启动命令、日志采集路径与抓包命令、回滚条件与责任人。并按季度演练一次,保证在紧急时每一步都能由值班人员照做。