1. 选购与接入前准备
首先确认高防产品类型(清洗/转发/云端WAF),要求提供公网清洗能力和BGP多线出口。拿到EIP或转发IP后,测试链路延迟与丢包:使用mtr -c 100 IP,记录RTT与丢包率;准备备份带宽与告警联系人,保留控制面(SSH)白名单IP。
2. 基础系统与防护软件安装
在服务器上做基础加固:apt update && apt upgrade -y;安装必要工具:apt install -y fail2ban ipset iptables-persistent tcpdump vnstat htop。配置fail2ban的ssh规则:在/etc/fail2ban/jail.local加入[sshd]并设置maxretry=5。使用ipset维护黑名单:ipset create blacklist hash:ip maxelem 200000。
3. 内核与网络参数调优(sysctl)
编辑/etc/sysctl.d/99-custom.conf,示例关键项:net.ipv4.tcp_syncookies=1;net.ipv4.tcp_fin_timeout=30;net.ipv4.tcp_tw_reuse=1;net.netfilter.nf_conntrack_max=2000000;net.core.somaxconn=65535;执行sysctl -p。重启必要服务,确保conntrack表足够大以应对大并发。
4. iptables/ipset 实战规则
使用ipset与iptables组合写高效规则:先用ipset add blacklist 1.2.3.4,然后iptables -I INPUT -m set --match-set blacklist src -j DROP。对SYN洪流做限制:iptables -N SYN-FLOOD; iptables -A INPUT -p tcp --syn -m limit --limit 30/s --limit-burst 60 -j RETURN;其余DROP。保存规则:netfilter-persistent save。
5. 应用层限流与代理配置
对HTTP应用,使用Nginx limit_req/limit_conn防滥用:在server段加入limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_req zone=one burst=20 nodelay; 对长连接使用keepalive_timeout合适值。对于TCP服务,可在HAProxy设置timeout和conn limits,示例:tune.maxaccept 1000, tune.bufsize 65536。
6. 流量监控部署(Prometheus + Node Exporter)
安装node_exporter:下载二进制并systemd启动。安装Prometheus或使用托管,配置scrape_targets指向node_exporter。关键监控项:interface bytes/s、pps、established connections、tcp_syn/s、conntrack使用率。示例查询:rate(node_network_receive_bytes_total[1m])。
7. 可视化与告警(Grafana + Alertmanager)
用Grafana绘制带宽、PPS、SYN比、连接数等仪表盘。Alertmanager规则建议:带宽使用率>80%持续3m触发、高比例SYN (>30% of TCP)或conntrack>=80%时发告警。报警通道配置电话/短信/企业微信并带上采样截图与tcpdump文件位置。
8. 流量取证与排查步骤
出现异常流量时:1) 用iftop/vnstat确认出口;2) 使用tcpdump -i eth0 -c 10000 -w /var/log/attack.pcap 'tcp'抓包;3) 使用ngrep或tshark分析,导出top src ip用ipset封堵;4) 如果是应用层攻击,抓取HTTP头并分析User-Agent/URI。
9. 与高防厂商配合流程
与供应商沟通时提供:攻击开始时间、目标IP、流量峰值(bps/pps)、抓包样本、受影响端口/服务、应用日志片段。请求打开清洗白名单或下沉策略,并要求返回清洗流向与过滤规则快照以便本地调整。
10. 日常运维与演练清单
每周:检查sysctl、conntrack占用、更新黑名单、review fail2ban log;每月:升级内核与关键应用、演练切换到清洗IP并验证业务回路;每次更新后执行回滚计划并记录变更在变更管理系统。
11. 常见指标与阈值建议
建议阈值示例(仅参考):带宽告警80%/90%;pps>100k短时警戒;SYN占比>25%触发调查;conntrack使用>70%预警;平均连接时长异常上升亦需告警。
12. 恢复与事后分析步骤
恢复顺序:切换到高防IP或流量清洗->封堵恶意IP/ipset->应用限流->回放抓包到沙箱分析->生成攻击报告并更新防护规则。事后做Root Cause并更新自动化脚本。
13. 问:在香港服务器上遭遇DDoS时第一时间应该做什么?
首先切换到预设的高防IP或通知厂商启用清洗,立即打开抓包并保存样本(tcpdump),将攻击时间、目标端口、流量峰值和抓包发给厂商;同时用ipset临时封掉最明显源IP,开启本地限流和SYN保护,减少业务损失。
14. 问:如何通过监控快速分辨是网络层攻击还是应用层攻击?
如果带宽与pps同时暴涨且SYN比高,多为网络层/协议层攻击;若带宽正常但大量特定URI或Cookie请求、响应慢且CPU/DB负载上升,则倾向应用层攻击。结合tcpdump与应用日志可快速确认。
15. 问:有哪些简单可落地的日常自动化建议?
建议:1) 用cron定期更新ipset黑名单并持久化;2) 使用Prometheus告警自动触发脚本(调用API封IP或切换流量到备份);3) 自动化抓包并将样本上传至集中存储供分析。这样能把人工响应时间从分钟降到秒级。
来源:部署香港服务器 高防后的运维要点与流量监控建议