mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
2234 字
11 分钟
关于服务器流量消耗的被攻击复盘

故事背景:#

xinren有一天突然想自己搭一个中转站供自己使用,于是使用newapi的模版来做了自己的网站,之后使用docker容器打包放到了云服务器上。

除了这个网站部署以外,xinren为了能让claudecode使用gpt模型于是也部署了Openai2Anthropic做一下openai与anthropic接口的转换.

而xinren还想用claude系列的模型,于是将自己的cursor会员通过opencode-cursor反代出来使用,而claude系列模型又只能通过科学上网来使用,所以他配置了sing-box作为代理,而问题就出现在这

在有一天xinren突然发现中转站打不开了,ssh也连不上了,只能去服务器提供商那里去查看,结果发现整整1500G流量都被耗尽了

攻击路径#

攻击者 → 你的服务器:7890 (sing-box 开放代理) → 互联网目标IP
↑ ↑
无认证,无防火墙 大量出站连接

关键配置缺陷(AI干的好事)#

/etc/sing-box/config.json 实际配置:

"inbounds": [{
"type": "mixed",
"listen": "0.0.0.0", // ← 对外暴露
"listen_port": 7890 // ← 无认证
}],
"route": {
"rules": [{
"domain_suffix": ["openai.com", "chatgpt.com", "anthropic.com", ...],
"outbound": "proxy"
}],
"final": "direct" // ← 所有其他流量直接出站 = 开放代理
}

问题:

  • listen: "0.0.0.0" — 监听所有网卡,对外暴露
  • 无认证机制 — 任何人可连接
  • final: "direct" — 不匹配域名规则的流量直接出站,等于开放代理
  • 防火墙未限制7890端口(iptables INPUT 策略为 ACCEPT,无规则)

攻击类型分析#

类型1:互联网大规模扫描(主要流量消耗,~80%)#

攻击者通过开放代理向大量随机IP和端口发起连接,利用你的服务器作为跳板进行反射扫描——隐藏攻击者自身IP,用你的IP去探测其他网络。

实际日志样本(扫描型)#

2026-05-03T00:01:06.784 sing-box[780]: connection: open outbound connection: dial tcp 31.148.248.140:7547: i/o timeout
2026-05-03T00:01:06.786 sing-box[780]: connection: open outbound connection: dial tcp 31.148.249.1:8728: i/o timeout

特征:同一秒内发起大量连接,目标IP随机,端口随机,均以5秒超时结束。

峰值攻击速率#

指标数值
峰值连接速率2,711 次/秒(4月17日 02:24)
次高峰2,564 次/秒(4月16日 16:06)
稳态扫描~25 次/秒(4月下旬-5月)

被扫描最多的目标端口#

pie title 端口扫描连接次数分布 "7547 TR-069" : 4281323 "80 HTTP" : 1035520 "2000 SCADA" : 652373 "8291 MikroTik" : 447396 "22 SSH" : 437927 "8728" : 203005 "443 HTTPS" : 184128 "179 BGP" : 176432 "8080 HTTP代理" : 168759 "其他 (8888/1723/21/6000/37777)" : 725973

重点发现:端口7547(TR-069)占扫描总量的40%(428万次),这是Mirai僵尸网络变种的典型行为——专门扫描ISP路由器的远程管理端口。其次是80端口(103万次)和2000端口(65万次)。你的服务器正在被用来参与物联网僵尸网络扫描活动

目标IP网段分布(May 3-10 数据)#

pie title 目标IP网段连接次数分布 "95.47.x.x 荷兰" : 3240865 "93.170.x.x 哈萨克斯坦" : 1958092 "95.46.x.x 荷兰" : 1287526 "31.148.x.x 俄罗斯" : 887658 "91.238.x.x 俄罗斯" : 772237 "91.103.x.x 俄罗斯" : 725778 "其他 (瑞士/荷兰/塞尔维亚)" : 1236222

扫描目标以荷兰(95.47/95.46,共453万次)和俄罗斯(31.148/91.238/91.103/213.108,共261万次)为主,哈萨克斯坦93.170段也有196万次。

类型2:代理中转滥用(长时间连接,~15%)#

部分攻击者将代理用于流量中转(下载/种子/P2P),产生长时间大流量连接。

实际日志样本(中转型)#

2026-05-03T00:43:24 sing-box[780]: connection: connection download closed:
close tcp4 43.255.156.168:7890->51.75.128.85:25252 [持续 23m49s]

特征:从你的服务器7890端口出发,连接到特定IP,持续数分钟到半小时不等。

中转连接时长分布#

pie title 中转连接时长分布 (共2,474次) "5-10分钟 (39.7%)" : 983 "20-25分钟 (30.9%)" : 766 "15-20分钟 (13.5%)" : 335 "10-15分钟 (9.4%)" : 232 "0-5分钟 (1.3%)" : 33 "25-30分钟 (1.2%)" : 29 "30+分钟 (0.3%)" : 8

绝大多数中转连接持续 5-10分钟(39.7%)和 20-25分钟(30.9%),两者合计占70.6%,典型的BT下载/代理翻墙行为模式。

主要中转目标#

xychart-beta title "主要中转目标连接次数" x-axis ["91.148 (俄罗斯)", "51.75 (法国OVH)", "152.53 (美国DO)", "81.171 (荷兰)", "107.173.18.11 (美国)", "107.173.18.39 (美国)", "172.245 (美国)"] y-axis "连接次数" 0 --> 1600 bar [1545, 208, 182, 129, 104, 54, 40]

91.148.240.213(俄罗斯)独占 1,545次 中转连接,远超其他目标。这些IP多为VPS/托管服务商,中转流量很可能为BT下载或代理翻墙使用。

类型3:协议探测(少量,~5%)#

自动化扫描器直接向7890端口发送各种协议握手,试图发现可利用的服务。

实际日志样本#

TLS探测 — 尝试HTTPS连接:

2026-05-03T17:38:57 sing-box[780]: inbound/mixed[mixed-in]:
process connection from 172.104.11.46:31762:
read http request: malformed HTTP request "\x16\x03\x01..."
(TLS ClientHello)

Oracle TNS探测 — 数据库攻击:

2026-05-08T08:58:43 sing-box[780]: inbound/mixed[mixed-in]:
process connection from 173.255.221.189:50927 [持续 22m0s]:
read http request: malformed HTTP request "...(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=lzrORA))))"

SOCKS5状态查询 — 代理探测:

2026-05-08T08:37:26 sing-box[780]: inbound/mixed[mixed-in]:
process connection from 173.255.221.189:50928:
read http request: malformed HTTP request "stats"

RDP暴力破解 — 远程桌面:

2026-05-06T05:29:52 sing-box[780]: inbound/mixed[mixed-in]:
process connection from 118.194.251.17:12608:
read http request: malformed HTTP request "t3 12.1.2"

二进制协议探测

2026-05-08T08:38:57 sing-box[780]: inbound/mixed[mixed-in]:
process connection from 173.255.221.189:50935:
read http request: malformed HTTP request "\x03\x00\x00\x16\x11\xe0..."
(可能是RDP/远程过程调用协议)

四、攻击时间线与流量测算#

4月攻击量统计#

xychart-beta title "4月每日出站连接数(百万)" x-axis ["15日", "16日", "17日", "18日", "19日", "20日", "21日", "22日", "23日", "24日", "25日", "26-30日/天"] y-axis "出站连接数 (M)" 0 --> 22 bar [6.5, 20.5, 10.7, 2.1, 2.2, 2.2, 2.3, 2.2, 2.2, 2.2, 2.0, 2.1]

4月16-17日为攻击高峰,16日单日连接数达 2,050万(估算129GB流量),17日 1,073万(~67GB)。之后回落至约200万/天的持续扫描状态。

4月16-17日峰值时间线#

xychart-beta title "攻击峰值:每秒连接数" x-axis ["16日 16:04", "16:05", "16:06", "16:07", "19:37", "17日 02:22", "02:23", "02:24"] y-axis "每秒连接数" 2000 --> 2800 bar [2137, 2505, 2564, 2546, 2159, 2524, 2686, 2711]

4月16日16:06达到 2,564次/秒 峰值,4月17日凌晨02:24再创新高 2,711次/秒(每分钟16.3万次连接)。

5月sar实测数据(验证估算)#

xychart-beta title "5月日均流量速率 (kB/s)" x-axis ["5月3日", "5月4日", "5月5日", "5月6日", "5月7日", "5月8日", "5月9日"] y-axis "速率 (kB/s)" 0 --> 110 bar "入站" [100.86, 100.68, 58.14, 49.90, 101.13, 101.09, 29.83] bar "出站" [44.46, 45.07, 26.18, 26.01, 46.17, 48.69, 11.52]

稳态扫描日(3-4日、7-8日)入站约 100 kB/s,日流量约 12-13 GB。5月5-6日和9日流量明显下降,可能与攻击者轮换有关。

流量估算汇总#

基于sar实测数据反推:稳态扫描日流量约12-13 GB,峰值日可达60+ GB。

pie title 4月流量构成估算 (总计 ~766-916 GB) "扫描攻击 ~616 GB" : 616 "中转滥用 ~150 GB" : 150 "正常业务 ~75 GB" : 75

扫描攻击占总流量的 ~70%(约616GB),中转滥用约150GB,正常业务仅约75GB。总计约766-916GB,与1500GB额度(含其他月份)基本吻合。

注意:此估算偏保守。4月1-14日无日志数据,攻击可能更早开始。syslog.4.gz(4月13-19日)体积达742MB压缩,表明4月中旬攻击量极大。

业务侧流量分析#

服务器运行了以下合法服务,但流量消耗远小于攻击:

pie title 业务服务月流量占比 "new-api API网关 ~50 GB" : 50 "nginx 反向代理 ~20 GB" : 20 "cursor-proxy ~10 GB" : 10 "openai2anthropic ~5 GB" : 5

正常业务总流量约 85 GB/月,仅为攻击流量的 ~10%。其中 new-api(AI API 网关,3个活跃用户)占比最大。

syslog被攻击日志淹没#

攻击产生的日志量极大,导致syslog自身占用大量磁盘:

xychart-beta title "各时段syslog大小与sing-box日志行数" x-axis ["4月13-19日", "4月20-26日", "4月27-5月3日", "5月3-10日"] y-axis "文件大小 (MB)" 0 --> 2200 bar [742, 329, 309, 2100]

syslog.1 中 超过99%的日志行来自sing-box攻击,攻击日志不仅消耗流量,还严重侵占磁盘空间。

根因分析#

#根因严重程度说明
1sing-box 监听 0.0.0.0严重将代理暴露在公网
2无认证机制严重任何人可连接使用
3final: “direct”严重所有未匹配流量直接出站 = 开放代理
4防火墙无规则严重iptables INPUT策略ACCEPT,无端口限制
5无流量监控中等无法及时发现异常
6日志级别过详细轻微warn级别仍记录大量错误,导致磁盘和IO压力

以上就是相关分析,之后我们来做止损和修复

  1. 给sing-box删了使用clash作为代理工具使用clash-for-linux-install进行部署
  2. iptables 封锁 7890 外部访问
  3. iptables 限制 cursor-proxy (32124) 仅本地 + Docker
  4. iptables SSH 暴力破解防护
  5. vnstat 流量监控已安装
  6. iptables 规则已持久化
  7. 部署了雷池防火墙
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

关于服务器流量消耗的被攻击复盘
https://chaojixin.ren/posts/关于服务器流量消耗的被攻击复盘/
作者
超級の新人
发布于
2026-05-11
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00