出海业务怎么选 IPS?我在新加坡机房蹲了三天,攒了这份不太正经的选型笔记

🔑 关键词:出海IPS选型,入侵防御系统,跨境网络延迟,Suricata规则调优,SSL解密性能

📖 摘要:从真实踩坑出发,聊透出海场景下 IPS(入侵防御系统)选型的几个关键维度:跨境延迟、盒子吞吐打折、云上按量计费成本、SSL 解密代价、硬件 bypass、日志合规,附一张不严谨对比表和一套我自己在用的上线流程。

先交代一下我为什么写这个

图片

上个月帮一个做跨境支付的客户收尾,他们新加坡 ap-southeast-1 的 VPC 里塞了一台自建 Suricata,跑了 11 个月,没人看过告警面板。我把 ET Open 规则集拉下来一看,四万多条签名,开了 3.9 万条,白名单一条没加,日志一天涨 40G,磁盘告警邮件堆了 300 多封没人理。这不叫入侵防御,这叫拿自己的磁盘做 DDoS。那天我在地铁上一边删规则一边想,“出海 IPS”这事儿圈里聊得太少了——大家都在聊 CDN、聊专线、聊 GDPR,轮到入侵防御就一句“买个盒子挂上”,然后就没有然后了。

我干这行八年,做过甲方也做过乙方,手里过过大概二十来个出海项目,从东南亚电商到欧洲 SaaS 都有。这篇不打算写成白皮书,就是把我踩过的坑、算过的账、以及每次上线前我自己会过一遍的 checklist 摊开讲。你要是正卡在选型阶段,希望能省你几天。

出海场景的 IPS,跟国内机房那套根本不是一回事

第一个差别是数量。国内你可能一个机房一台盒子,双机热备两台搞定。出海呢?AWS 新加坡 + 法兰克福 + 弗吉尼亚,阿里云雅加达,腾讯云硅谷——五个点,每个点双机,十台。1Gbps 档的盒子,比如 FortiGate 100F,datasheet 上 IPS 吞吐写 1.5 Gbps、防火墙吞吐 20 Gbps、并发会话 150 万、新建连接 5.6 万 CPS,看着挺唬人。但那是 1518 字节理想大包测出来的,你真实业务是 200 字节的 API 小包混着图片和视频,能跑到标称的 40% 就算良心。十台盒子加五年订阅,账单够吓人。

第二个差别是延迟,这个是出海特有的痛。广州到新加坡走专线,往返 60ms 上下;走公网绕一圈,120ms 也正常,跨境链路就是这么不讲道理。你在链路中间串一个 IPS,哪怕只增加 0.5ms 处理时延,对于高频调 API 的客户也是钱。我见过一家跨境物流公司,把 IPS 串在去欧洲的主链路上,法兰克福到深圳的调用 P99 从 180ms 涨到 260ms,商务那边当天就找上门了。后来改成旁路 IDS + 云端 WAF 挡前置,才把这事平下去。

第三个差别是规则和法务绑在一起。你在国内挂个 IPS,日志随便往哪存都没人管你;出了海,IPS 日志里天然带 payload、URL、User-Agent,里面很可能有欧盟用户的邮箱、印尼用户的手机号。GDPR、印尼 PDP Law 27/2022、越南 Decree 13/2023/ND-CP,这些对数据出境和本地化的要求都不一样。你新加坡节点的日志随手往深圳同步,法务看了会心跳加速。

我实际踩过的三个坑,每个都带数字

坑一:SSL 解密,开不开都是问题。 不开解密,你在 IPS 里只能看到 SNI 和证书,剩下的全是加密流量,规则基本白买;开了解密,性能直接腰斩。一般中端盒子的 SSL Inspection 吞吐只有威胁防护吞吐的一半左右,你看到 datasheet 写 threat protection 1 Gbps,开完解密能稳定吃 300-500 Mbps 就谢天谢地。所以一定要先算清楚:你到底有多少流量真的需要解密?我的做法是只对出海的支付回调和登录接口做解密,其他放行,解密范围控制在总流量的 15% 以内,盒子立刻就不喘了。

图片

坑二:fail-to-wire,凌晨三点没人去机房按电源。 串在链路上的盒子一旦掉电或者 panic,如果网卡不支持硬件 bypass,整条链路就断了。海外托管机房你不可能随时派人过去,所以买之前务必确认有没有 bypass 口对。FortiGate 60F/100F 的部分端口对支持硬件 bypass,Palo Alto 有些型号要另配 bypass 网卡。实在没有,就老老实实做旁路 IDS 部署,用 SPAN/TAP 或者云上的流量镜像,只告警不阻断,把阻断交给 WAF 和 ACL。这个妥协不丢人,丢人的是业务断了你还在酒店睡觉。

坑三:云上按流量计费真的会咬人。 AWS Network Firewall 大概是每个可用区端点按小时收一笔,加每 GB 流量处理费,流量那部分我记得是 0.4 美元/GB 这个量级(精确数字你自己去官网核,别信我)。听起来不多,算给你看:100 Mbps 持续跑满一个月,大概是 32.4 TB,也就是 32400 GB,光处理费就 1.28 万美元。同一时间段你在 EC2 上开一台 c6i.4xlarge(16 vCPU)自建 Suricata,按需价不到 500 美元一个月,不算流量钱。差了 25 倍。所以我的建议很直接:流量小、波动大的业务用云托管,流量大且持续的,自建 + 自己运维,省下的钱够你养一个安全工程师。

一张不太严谨的对比表(别当采购依据)

方案 上手速度 1Gbps 量级月成本(粗估) 规则可调性 出海场景最大的坑
商用盒子(FortiGate / PA) 快,一周能上线 硬件摊销 + 订阅,3 年 TCO 不低 中,厂商签名为主 多区域部署数量爆炸,订阅按设备算
云托管(AWS NFW / 阿里云云防火墙) 最快,半天 按量,100Mbps 满跑约 1.3 万美元 低,规则模板化 按 GB 计费,流量型业务肉痛
自建 Suricata / Snort 3 慢,两周起步 c6i.4xlarge 约 500 美元 + 人力 极高,想怎么改怎么改 没人运维就是摆设,误报能淹死你
旁路 IDS + WAF 兜底 最省 只能告警不能阻断,应急响应要跟上

这张表我强调一句:数字是粗估,跟你的流量结构、包大小、解密比例关系巨大。别人云亦云地抄。

我自己每次上线前会过一遍的流程

第一步,先 IDS 后 IPS。新环境至少跑 14 天纯检测模式,别急着开阻断。14 天能覆盖你的业务周期,包括月末结算、大促、定时任务。

第二步,导出 TOP 20 触发规则,逐条看。Suricata 里用 eve.json 配合 jq 统计就能出,我记得当时那台机器上排第一的是一条针对旧版 WordPress 的规则,可他们根本没有 WordPress,纯粹是被扫的噪声。

第三步,白名单按“业务 + 源 IP 段 + 方向”三要素写,禁止 any any any。跨境支付那个客户,最早就是因为一条 ET 规则拦了 Stripe 的回调 IP,导致订单状态同步延迟了 6 小时,财务对账对到半夜。

图片

第四步,灰度切换。把 10% 的流量先切到阻断模式,观察 48 小时,没问题再全量。

第五步,留回滚开关。真的,一定要有一个能一键切回检测模式的按钮,最好是脚本,双击就能跑。事故现场没人有空敲十行命令。

第六步,告警分级。只把 critical 级别的打到 PagerDuty 或者电话,其余进日报。我见过最离谱的一家公司,所有 IPS 告警都发钉钉,一天 4000 条,三个月后整个群没人点开了。

合规这块,别等法务来找你

IPS 日志是敏感数据的重灾区。你抓到的 payload 里可能有信用卡号(PCI DSS 覆盖)、邮箱和身份证号(GDPR、印尼 PDP 覆盖)、甚至健康信息。我的做法是:日志本地留存不超过 90 天,异地同步前先做脱敏,URL 里的 query 参数能削就削,User-Agent 只留前 200 字符。这套做法不一定满足所有国家的监管要求,但至少能让你在被问的时候有话说,而不是支支吾吾说“我们没想过这个”。

最后说两句我自己的判断

出海做 IPS,最贵的从来不是设备,是人的注意力。你买十台盒子,没人看告警,等于零;你搭一套开源栈,规则调对了,日志分级清楚,一个人也能扛住三个区域。我现在的偏好是:核心链路用商用盒子求稳,边缘和非关键路径用 Suricata 省钱,中间靠统一日志平台串起来。听起来不够优雅,但管用。

至于那些一上来就让你全链路解密、全量阻断、全部告警上报的方案,我建议你先问一句:出事了谁半夜起来处理?如果答案是你自己,那还是先把 IDS 跑满一个月再说。

🏷️ 标签: