首页 > 都市重生 > 人生何处是归途:花城网事三十年 > 第66章 短信江湖:服务器攻防战

第66章 短信江湖:服务器攻防战(2/2)

目录

副总陈建仁黑着脸冲进技术部:“移动那边刚发函,说我们的短信送达率跌到60%,再这样就暂停合作!”

我盯着监控屏上还在涨的连接数,突然想起沈剑锋昨天的电话:“刘军,你们服务器扛得住大流量吗?我开公司可能也要做短信业务。”

当时我还以为他只是问问,现在才明白是示威。

技术总监Ja把我们拉进会议室:“先定位攻击方式。”

老谭调出网络抓包记录:“都是合法的HTTP请求,没有恶意代码,就是量太大,每秒200个请求,把连接池占满了,数据库查询又拖慢了处理速度,形成恶性循环。”

Ja敲着桌子:“是伪造请求的DDoS,肯定沈剑锋收买了信浪的核心技术人员,知道我们接口的参数格式。”

那天我们试了临时方案:重启Apache释放连接,把MySQL的查询超时设为5秒,没用——刚清完连接,新的请求又涌进来,数据库还是卡。

陈建仁每隔半小时就来催一次,技术部的气氛像闷在罐子里的火药。

接下来的一个星期,我们几乎住在技术部。

Ja提出“堵源头、优处理、分负载”的三层方案,每一步都得抠2001年的技术极限。

那时候还没有云防护,只在少数门户网站试用,一切都得靠自己动手。

第一层是“堵源头”。

老谭发现攻击请求的IP虽然分散,但有30%来自北京海淀区的固定网段,正好是信浪总部所在的区域。

我们找运维借了台华为的Quidway路由器,在ACL规则里加了“拒绝123点125点0点0/16网段访问80端口”的配置。

又写了个简单的Shell脚本,每10秒扫描一次Apache的访问日志,把每分钟请求超过50次的IP自动加入黑名单。

第一天下来,攻击请求量降了40%。

第二层是“优处理”。

针对数据库卡顿,我把ss_queue表拆成两个:ss_pendg(待发送)和ss_history(历史记录),只在ss_pendg上加er_id索引。

还把“SELECT*”改成“SELECTid,phoent”,减少数据传输量。

老谭更绝。

他在应用层加了个“请求过滤”模块:用户发送短信前必须验证手机号格式,伪造的随机手机号直接在应用层拦截,不传入数据库。

改完之后,MySQL的慢查询从每分钟200条降到10条以内,CPU占用率从98%掉到50%。

第三层是“分负载”。

我们把服务器分成两组:A组处理游戏短信(移动QQ、游戏通知),B组处理资讯订阅。每组4台服务器,用硬件负载均衡器分流。

Ja还亲自去移动梦网总部,说服他们调整接口协议:增加“请求方IP+时间戳”的验证,同一IP每分钟最多发送30次请求,超过就返回“429TooManyRequests”。

移动的工程师帮我们在短信网关加了特征识别——伪造请求的“User-Agent”字段都是“Mozil/4.0”,真实用户的则是“Nokia6100”“MotoroV3”等手机型号,网关直接过滤掉异常User-Agent的请求。

12月5日凌晨,我们上线了全套方案。

监控屏上的连接数稳定在300左右,短信发送队列积压量以每分钟100条的速度减少。

早上八点,投诉电话第一次出现了空闲。

陈建仁走进技术部时,手里拎着两袋豆浆油条:“你们几个,总算把这窟窿填上了。”

我咬着油条看向窗外,冬阳照在服务器的指示灯上,红光灯变成了柔和的橙黄色。

老谭戳了戳我的胳膊:“我问了下王蒙,沈剑锋那公司好像还没开张。”

我打开手机,看到沈剑锋发了条短信过来:“江湖路远,总有新机会。”

确实有新机会。

短信业务这块蓝海,除了我们和信浪,还有不少公司在摩拳擦掌。

我摸了摸服务器的外壳,温度已经降到32℃。

但我知道,这只是第一轮攻防战的结束——只要蛋糕还在,就永远有人想拿着刀冲进来。

目录
返回顶部