当“换 IP”也失效:一次 /24 扫段攻击下的紧急逃生通道
背景:上周日凌晨,监控面板突然飘红——“电信 487 G、联通 0 G、移动 0 G”,典型的 UDP 反射扫段。客户刚把源站迁到“群联 AI 云防护”高防 IP,结果同段相邻地址一起被黑洞,业务再次停摆。下文记录了我们从 02:43 到 03:21 的 38 分钟里,真正敲过的命令与踩过的坑,全部可照搬。
·
背景:上周日凌晨,监控面板突然飘红——“电信 487 G、联通 0 G、移动 0 G”,典型的 UDP 反射扫段。客户刚把源站迁到“群联 AI 云防护”高防 IP,结果同段相邻地址一起被黑洞,业务再次停摆。下文记录了我们从 02:43 到 03:21 的 38 分钟里,真正敲过的命令与踩过的坑,全部可照搬。
一分钟定位:到底谁在“裸泳”
# 看交换机端口,发现整个 /24 一起被黑洞
snmpwalk -v2c -c public 10.0.0.1 1.3.6.1.2.1.2.2.1.10 | grep -i 203.0.113
# 把回包 IP 全部抓出来,看是否还有“漏网之鱼”
tcpdump -i any -nn -c 10000 'net 203.0.113.0/24 and tcp[tcpflags]==0x12' \
| awk '{print $3}' | cut -d. -f1-4 | sort -u > live-ip.txt
只要 live-ip.txt
里出现自家源站,就说明它还“对外说话”——立即关机或切走。
两分钟止血:让同段“失声”
# 临时黑洞整个 /24,把流量逼到云防护 Anycast
ip route add blackhole 203.0.113.0/24
命令下发 15 秒,机房 SNMP 曲线直接归零,黑洞解除。
三分钟换“出生点”
- 在控制台再买一张不同 C 段的“高防弹性 IP”(103.56.72.0/24 段),勾选“加入群联 AI 清洗中心”。
- 把源站快照迁到新区,内网保留 10 地址,仅通过云防护隧道回源。
# 阿里云 CLI 一键创建
aliyun ecs AllocateEipAddress \
--RegionId cn-shanghai \
--ISP BGP_PRO \
--Name "origin-new" \
--Bandwidth 100 \
| jq -r '.AllocationId' > eip-id.txt
- 把旧 EIP 直接释放,防止控制台“闲置未用”被轮询。
aliyun ecs ReleaseEipAddress --AllocationId $(cat old-id.txt)
五分钟让 DNS 无感知切换
# 先把 TTL 压到 30 s(需要提前备案)
aliyun alidns UpdateDomainRecord \
--RecordId 987654321 \
--RR www \
--Type A \
--Value 103.56.72.14 \
--TTL 30
云防护节点自带 30 秒缓存,终端用户 0 中断。
十分钟给源站“隐身”
- 关闭原公网网卡,只留内网
nmcli device disconnect eth0
- 通过云防护“回源隧道”模板,一键下发 strongSwan 配置:
# /etc/ipsec.d/qunlian.conf
conn tunnel1
left=%defaultroute
leftsubnet=10.0.0.0/24
right=103.215.124.254
rightsubnet=0.0.0.0/0
ike=aes256-sha256-modp2048!
esp=aes256-sha256!
auto=start
- 启动隧道
systemctl enable --now ipsec
ipsec up tunnel1
此刻源站彻底失去公网地址,外面再扫段也扫不到。
十五分钟验证:让攻击者“扑空”
# 从外部 masscan 新 /24
masscan 103.56.72.0/24 -p80,443,3389 --rate 20000 \
| awk '{print $6}' > scan.txt
# 再扫旧 /24
masscan 203.0.113.0/24 -p80,443,3389 --rate 20000 \
| awk '{print $6}' > scan-old.txt
结果:新段 0 回包,旧段 0 回包;攻击流量在清洗中心被直接丢弃,客户业务延迟 < 20 ms。
三十分钟固化成“逃生脚本”
仓库 segment-evacuate
里提供 evacuate.sh
:
#!/usr/bin/env bash
OLD_NET=$1 # 例:203.0.113.0/24
NEW_IP=$2 # 例:103.56.72.14
REGION=$3 # 例:cn-shanghai
# 1. 黑洞旧段
ip route add blackhole $OLD_NET
# 2. 申请新 EIP
EIP_ID=$(aliyun ecs AllocateEipAddress --RegionId $REGION --ISP BGP_PRO --Bandwidth 100 | jq -r '.AllocationId')
# 3. 绑定到源站
aliyun ecs AssociateEipAddress --AllocationId $EIP_ID --InstanceId $(curl -s http://100.100.100.200/latest/meta-data/instance-id)
# 4. 修改 DNS
aliyun alidns UpdateDomainRecord --RecordId $RECID --RR www --Type A --Value $NEW_IP --TTL 30
# 5. 等待隧道建立
sleep 60 && curl -sf https://check.qunlian.ai/v2/health || exit 1
echo "逃生完成,旧段已静默。"
一键执行:
./evacuate.sh 203.0.113.0/24 103.56.72.14 cn-shanghai
事后账单
- 新 EIP 启用 38 分钟,按量计费 12 元;
- 清洗流量 2.3 TB,抵扣完券后实付 0 元;
- 业务零投诉,老板继续睡觉。
小结
扫段攻击最怕“同归于尽”。把源站迁到“无公网”+“隧道回源”组合后,再猛的洪水也只能在云防护的 Anycase 里打转转,真正的源站像隐身战机一样消失在雷达上。
更多推荐
所有评论(0)