1.1 购买前确认:选择标注“高防/Anti-DDoS”或提供清洗中心的供应商,确认带宽峰值、防护策略(托管清洗/黑洞/流量转发)、BGP Anycast是否支持。
1.2 获取信息:记录VPS公网IP、控制面板登录、BGP/路由联系方式、清洗服务工单入口、以及SSH密钥或密码。
2.1 更新与用户:更新系统 apt/yum,创建非root用户并禁用密码登录。示例:apt update && apt upgrade -y;adduser deploy && usermod -aG sudo deploy。
2.2 内核网络参数(/etc/sysctl.conf):写入并生效 sysctl -p:net.ipv4.tcp_syncookies=1;net.ipv4.ip_forward=0;net.netfilter.nf_conntrack_max=262144;net.core.somaxconn=1024。
3.1 防SYN泛洪与并发连接限制(iptables示例):iptables -N DDOS_PROTECT;iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 200 -j ACCEPT;iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 500 -j DROP。
3.2 ICMP与无效包过滤:iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT;iptables -A INPUT -m conntrack --ctstate INVALID -j DROP。
4.1 缓存与速率限制:在http块添加 limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;在server/location中使用 limit_req zone=req_limit burst=20 nodelay。
4.2 连接限制示例:limit_conn_zone $binary_remote_addr zone=addr:10m;在location中 limit_conn addr 10;并开启access_log与error_log用于回溯。
5.1 安装并启用:apt install fail2ban,创建 /etc/fail2ban/jail.d/nginx.local 示例: [nginx-limit-req] enabled = true; filter = nginx-limit-req; maxretry = 5; bantime = 3600。
5.2 自定义过滤器:/etc/fail2ban/filter.d/nginx-limit-req.conf 根据访问频率与返回码封禁恶意IP。
6.1 常用工具:tcpdump -i eth0 -w /tmp/attack.pcap;iftop -i eth0;vnstat 可记录日/月流量。
6.2 自动告警脚本(示例):使用ss统计连接数并与阈值比较,超限则执行报警或临时iptables规则。示例脚本骨架:cnt=$(ss -Htan | wc -l); if [ $cnt -gt 10000 ]; then /sbin/iptables ...; notify_admin; fi。
7.1 触发清洗:当本地无法处理时,按供应商流程提交清洗工单,提供时间、流量特征(pcap)、受影响IP/端口以及业务优先级。
7.2 临时转发:若支持BGP或流量转发,准备好ACL/白名单清单,并在控制面板或通过API提交转发请求,确认切换回原线路的回流时间窗口。
8.1 测试工具:使用 hping3 (TCP/UDP/ICMP) 进行压力测试:hping3 -c 100000 -d 120 -S -w 64 -p 80 --flood <目标IP>(只在你有授权的测试环境进行)。
8.2 演练流程:先在维护窗口内限流并观察,记录系统行为,验证告警、清洗切换、回退流程,逐步提高流量直至达到SLA防护门限。
9.1 连接阈值:根据应用并发设计connlimit,例如API服务可设并发200-500,Web静态可更高。调整 net.netfilter.nf_conntrack_max 与 somaxconn 配合。
9.2 速率阈值:limit_req 初始设10r/s,burst 20,根据真实流量日志调整,避免误杀正常突发。
10.1 发现→识别:通过监控确认是否为DDoS(流量/连接异常),抓包保存证据。
10.2 应急→清洗→恢复:触发本地临时规则(黑名单/丢弃可疑UDP/TCP),同时提交清洗,清洗生效后逐步回退本地粗暴规则,恢复正常。
问:如何选择合适的高防等级与带宽?
答:评估峰值业务并发与正常流量,预估被攻击时流量倍增(常见为10x以上),选择能承受该峰值的带宽并包含清洗能力。优先选有24/7工程支持与快速切换能力的供应商。
问:被攻击导致SSH/控制面板无法访问怎么办?
答:准备好紧急访问通道(例如备用管理IP或VPN跳板),向供应商提交工单请求临时白名单管理IP,或通过控制面板执行清洗/路由切换操作。
问:付费流量转发到清洗中心后如何验证并回切?
答:核对清洗组的流量统计(PS:清洗前后流量、包率变化),确认业务响应恢复并无误杀后按SOP逐步降低清洗策略,最终回切并观察至少30分钟无异常再关闭工单。