Linux服务器被DDoS打满带宽?别慌,手把手教你用iftop+tcpdump快速定位攻击源
Linux服务器突发DDoS攻击三步精准定位攻击源的实战指南凌晨3点服务器监控突然告警带宽使用率从平时的30%瞬间飙升至100%。作为运维人员这种场景再熟悉不过——很可能是遭遇了DDoS攻击。不同于常规的性能问题DDoS攻击需要快速响应每延迟一分钟都可能造成业务中断。本文将分享一套经过实战验证的黄金30分钟应急响应流程帮助你在混乱中快速锁定攻击源头。1. 初步症状判断与应急准备当服务器突然出现响应迟缓、服务不可用的情况时首要任务是确认是否真的遭遇DDoS攻击。以下三个典型特征可以帮助快速判断带宽异常通过vnstat -tr查看实时带宽如果入站流量远超出正常水平连接数激增使用ss -s命令观察TCP连接数是否异常增长服务响应即使系统负载不高基础服务如SSH也出现响应延迟注意在确认攻击前不要急于重启服务或封禁IP这可能导致证据丢失。准备必要的诊断工具# 确保基础工具就绪 sudo apt install iftop tcpdump tcptrack -y # Debian/Ubuntu sudo yum install iftop tcpdump tcptrack -y # CentOS/RHEL关键指标对照表指标正常范围DDoS可疑值检查命令入站带宽50%总带宽≥90%持续5分钟vnstat -trTCP连接数10005000ss -s新建连接速率100/s1000/stcptrack -i eth02. 实时流量分析与攻击特征提取确认异常后立即使用iftop进行实时流量分析。这是定位攻击源最直接的途径sudo iftop -nNP -i eth0-n禁用DNS反向解析加速显示-P显示端口信息-N数字形式显示IP典型攻击流量特征单一IP高流量某个IP的入站流量占比超过50%固定端口轰炸大量流量集中在特定服务端口如80/443异常协议分布UDP流量突然激增正常Web服务以TCP为主案例某电商网站遭遇的SYN Flood攻击特征192.168.1.100:12345 10.0.0.1:80 3.5Mb 2.7Mb 1.8Mb 203.0.113.45:random 10.0.0.1:443 2.1Mb 1.9Mb 1.7Mb当发现可疑IP时立即用tcpdump保存证据sudo tcpdump -i eth0 host 203.0.113.45 -w attack_evidence.pcap -C 100-C 100每100MB分割一个文件建议保存到/tmp目录避免影响业务磁盘IO3. 深度取证与攻击源追踪获取初步证据后需要更深入的分析来确定攻击类型和规模。使用Wireshark兼容的分析命令# 统计TOP 10源IP tcpdump -nn -r attack_evidence.pcap | awk {print $3} | cut -d. -f1-4 | sort | uniq -c | sort -nr | head # 分析常见攻击类型特征 # SYN Flood检测 tcpdump -nn -r attack_evidence.pcap tcp[13] 2 ! 0 | wc -l # UDP Flood检测 tcpdump -nn -r attack_evidence.pcap ip proto 17 | wc -l取证时的四个关键原则时间戳记录使用date -u记录取证开始时间元数据保存包括原始pcap文件、统计结果截图链式证据从流量监控到抓包分析的完整记录不影响业务限制抓包时长建议5-10分钟4. 应急缓解与长期防御策略确认攻击源后立即采取分级防御措施短期应急方案# 使用iptables临时封禁 sudo iptables -A INPUT -s 203.0.113.45 -j DROP # 限制新建连接速率 sudo iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT长期防御建议基础设施层启用云服务商的DDoS防护如AWS Shield、阿里云DDoS防护配置BGP Anycast分散流量压力系统层加固# 调整内核参数 echo net.ipv4.tcp_syncookies 1 /etc/sysctl.conf echo net.ipv4.netfilter.ip_conntrack_max 1048576 /etc/sysctl.conf sysctl -p架构优化部署CDN隐藏真实服务器IP实现负载均衡自动扩展在最近处理的一次Memcached反射攻击中通过组合使用iftop快速定位放大流量源配合云平台的清洗服务30分钟内就将业务恢复至正常水平。关键是在应急过程中保持冷静按照既定的SOP逐步排查。