服务器异常流量排查方法
流量监控与分析工具部署
部署实时流量监控工具(如NetFlow、sFlow或Prometheus),关注流量突增、异常IP访问频率、非标准端口请求等指标。结合ELK或Graylog日志分析系统,识别高频请求模式。
流量特征识别
异常流量通常表现为:同一IP短时间内发起大量请求(DDoS)、固定URI高频访问(CC攻击)、异常User-Agent或Referer字段。通过WAF日志或Nginx访问日志分析HTTP头部特征。
基线比对法
建立流量基线(如工作日/节假日流量模型),当实时流量超过基线值150%时触发告警。使用Z-score算法检测偏离均值的异常流量: $$ Z = \frac{X - \mu}{\sigma} $$ 其中X为当前流量值,\\mu为均值,\\sigma为标准差。
攻击类型快速识别
SYN Flood攻击特征
TCP半连接数激增,SYN_RECV状态连接占比超过80%,且源IP分布杂乱。可通过netstat -ant | grep SYN_RECV | wc -l实时监测。
HTTP Flood识别
同一URL在1分钟内被同一IP访问超过200次,或存在大量畸形HTTP请求(如超长URI、特殊字符注入)。WAF日志中常见403/499状态码暴增。
慢速攻击特征
保持连接但低速发送数据,表现为平均请求时长超过30秒,服务器连接数持续饱和。检测方法:
bash
ss -ntp | awk '{print $1}' | sort | uniq -c | sort -nr
应急限流处置方案
网络层限流
通过iptables实施速率限制,示例规则:
bash
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
应用层限流
Nginx配置示例:
nginx
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location / {
limit_req zone=one burst=20 nodelay;
}
云平台自动化防护
AWS环境下启用Shield Advanced自动缓解,阿里云使用DDoS高防IP。配置自动扩容策略,在CPU利用率超过85%时触发横向扩展。
事后溯源与加固
攻击源分析
通过TCPDUMP抓包分析真实源IP(注意过滤伪造IP):
bash
tcpdump -nn -i eth0 'dst port 80' -w attack.pcap
安全组策略优化
限制管理端口访问IP白名单,关闭非必要端口。实施最小权限原则,示例AWS安全组规则:
json
{
"IpPermissions": [
{
"FromPort": 22,
"ToPort": 22,
"IpProtocol": "tcp",
"IpRanges": [{"CidrIp": "203.0.113.42/32"}]
}
]
}
长期监控改进
部署HIDS(如OSSEC)监控系统关键文件变更,启用SIEM系统(如Splunk)实现多维度日志关联分析。定期进行红蓝对抗演练验证防护有效性。