1.
准备与权限确认
- 确认你能以root或有sudo权限的运维账号SSH登录
日本高防服务器:ssh user@server_ip -p 22。
- 确认服务商是否在前端有清洗(scrubbing)节点,以及是否提供控制面板和API(记录账号、工单联系方式)。
- 本地安装常用分析工具:sudo apt-get install tcpdump tshark jq goaccess fail2ban -y(按系统替换包管理器)。
2.
获取日志与快速定位文件
- 常用路径:/var/log/nginx/access.log、/var/log/nginx/error.log、/var/log/messages、/var/log/syslog、/var/log/auth.log。
- 使用tail查看最新:sudo tail -n 200 /var/log/nginx/access.log;实时监控用:sudo tail -f /var/log/nginx/access.log。
- 若高防在前端有收集,登录服务商控制台下载清洗日志或通过API导出,保存为原始文件以便离线分析。
3.
常用筛选与统计命令(快速找出热点IP/URI)
- 统计来源IP:sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 30。
- 统计访问次数和状态码:sudo awk '{print $9,$7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 30。
- 统计特定时间段:sudo awk '$4>="[02/Mar/2026:10:00:00"'(按日期格式调整)或用sed切片日志后再统计。
4.
识别常见攻击模式与判断是否为高强度流量
- SYN/UDP洪泛:服务器CPU/网络带宽飙升、conntrack条目激增,netstat -anp | grep SYN_RECV。
- HTTP层面攻击(GET/POST洪水、慢速攻击):大量相似URI或短时间内同一IP大量连接,观察access.log中短时间内的高频请求。
- 判断阈值:结合平时流量基线(vnstat或流量图)判断是否超过日常50%-100%峰值即异常。
5.
抓包与深度分析(定位协议层问题)
- 抓取现场包样本:sudo tcpdump -i eth0 -w /tmp/capture.pcap -c 10000 host x.x.x.x 或端口过滤 sudo tcpdump -i eth0 -w /tmp/capture.pcap 'tcp port 80 or udp'.
- 用tshark/wireshark分析:tshark -r /tmp/capture.pcap -q -z io,phs 或打开wireshark看SYN/ACK比率、重复包。
- 快速筛选异常包:tshark -r file.pcap -T fields -e ip.src -Y 'tcp.analysis.flags && tcp.flags.syn==1' | sort | uniq -c | sort -nr。
6.
即时缓解命令(临时挡住攻击流量)
- 屏蔽单个IP:sudo iptables -I INPUT -s 1.2.3.4 -j DROP(注意持久化)。
- 批量屏蔽高频IP(示例脚本):sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '$1>1000{print $2}' | xargs -I{} sudo iptables -I INPUT -s {} -j DROP。
- Nginx层限流:在server或location中启用 limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10; limit_req_zone $binary_remote_addr zone=req:10m rate=10r/s; 并reload nginx。
7.
长期防护与自动化(避免手工频繁干预)
- 部署fail2ban:编写/修改filter和jail,基于access.log规则自动封禁异常IP并持久化到iptables。
- 使用Web应用防火墙(WAF)或云端规则:开启IP黑白名单、GeoIP封禁(阻止来源国)、Bot管理。
- 与日本高防商配置:开启自动清洗、BGP转发到清洗中心、配置告警阈值与流量镜像接口。
8.
排查示例流程(从接到告警到恢复的实际步骤)
- 第1步:确认告警源(监控/业务);远程登录服务器收集top/netstat/conntrack。
- 第2步:抓取最近5分钟access.log,统计高频IP和高频URI;并抓包10k包保全。
- 第3步:临时在iptables或服务商控制台屏蔽最Top的IP;在Nginx开启限速规则并reload;观察流量是否回落。
- 第4步:如果流量仍高,联络高防服务商开启清洗或BGP转发,同时把抓包和高频IP列表发给对方支持。
9.
日志留存与合规建议
- 建议保留原始日志至少30天,敏感信息按合规脱敏;使用logrotate设置周期与压缩。
- 定期导出清洗日志与本地日志用于审计,建立每周流量与异常报告,更新防护白名单与黑名单。
10.
问题:遇到HTTP大量合法访问但影响业务,怎么判断是攻击还是流量激增?
- 回答要点:对比历史流量基线(小时/日/周),检查请求是否来自少数IP或大量不同IP;观察请求模式(相同URI/UA/Referer);若是大量不同IP但行为一致,很可能是被动爬虫或分布式攻击,建议暂时限速并联系高防清洗。
11.
问题:在日本高防环境下,直接在业务机上做iptables会有风险吗?
- 回答要点:有风险:若前端已有清洗,重复封禁可能无效或干扰清洗策略;先通过服务商控制台操作或与支持沟通再在业务机操作。若必须在机上操作,请先保存现有规则并测试小范围封禁。
12.
问题:如何把分析结果快速提供给日本高防服务商以便他们协助?
- 回答要点:准备:抓包(pcap)、high-frequency IP列表、时间窗(UTC)、受影响端口/URI、资源利用截图(top/netstat/ifconfig)。将这些按时间线整理并通过控制台工单或邮件发送,便于服务商快速定位并下发清洗规则。