发现异常流量时,紧急阻断的核心是快速定位源头、分层拦截、保留证据、防止扩散;5分钟内完成初步隔离与限流,通过sar/iftop/ss交叉验证确认攻击,再网络层断网、协议层精准限流,并全程留痕取证。

发现异常流量时,紧急阻断的核心不是“一刀切地关服务”,而是快速定位源头、分层拦截、保留证据、防止扩散。关键在于快准稳——5分钟内完成初步隔离与限流,避免业务中断的同时遏制攻击蔓延。
第一步:确认是否真异常,别误杀正常业务
先用三类命令交叉验证,避免把备份同步、CDN回源或突发促销流量当成攻击:
- sar -n DEV 1 5:看哪个网卡 RX/TX 流量突增,确认是入向(如DDoS)还是出向(如肉鸡外连)
- iftop -i eth0 -P -n:实时列出带宽占用TOP IP和端口,重点关注非80/443的大量短连接、固定目标IP或陌生境外地址
- ss -s | grep -E "(synrecv|time_wait|mem)":检查 SYN_RECV 是否堆积(疑似SYN Flood)、TIME_WAIT 是否超10万、内存是否告警
第二步:网络层立即隔离,切断横向传播
确认为恶意流量后,优先物理或逻辑断网,但不关机:
- 拔网线或执行 ip link set eth0 down(替换为实际网卡名),阻止攻击者进一步控制或外泄数据
- 若需保留连接做分析,改用 iptables -I INPUT -j DROP 临时封禁全部入向,再逐步放行管理IP
- 切勿直接重启或关机——内存中可能存有无文件恶意代码(如BPF后门、rootkit),需先做内存转储(LiME)再处置
第三步:按协议层级精准限流,保主干不断
根据流量类型选择拦截位置,HTTP走应用层,其他走内核层:
-
HTTP/HTTPS 流量:在 Nginx 配置中启用限流(无需重启,reload生效)
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
limit_req zone=perip burst=20 nodelay; -
SSH、数据库等非HTTP端口:用 iptables 控并发连接数
iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP -
UDP泛洪或ICMP洪水:直接丢包
iptables -A INPUT -p udp -m length --length 64 -j DROP(针对典型DNS放大包)
第四步:保留证据并记录操作链
每一步操作都要留痕,为后续溯源和报告提供依据:
- 执行前截图或保存命令输出:date; whoami; ifconfig; netstat -tulnp > /tmp/net-$(date +%s).log
- 对磁盘做只读镜像:dd if=/dev/sda of=/mnt/forensic/sda-$(date +%s).img conv=noerror,sync
- 记录操作人、时间、命令、预期效果(例:“14:22 张三 执行 iptables 封禁 192.168.100.222,因 iftop 显示其向 443 端口发起 2300+ 连接”)











