不是,大哥,咱这小门小户的,别搞我CDN流量啊
分享是最有效的学习方式。
最近遇上事儿了,老猫的小小博客网站【程序员老猫的博客】被人盗刷CDN流量了。开始的时候收到了欠费的短信也没有怎么去重视。虽然说费用没有多少,但是也是一个教训。
博客从最初地搭建到现在确实也经过好几年了,天真地以为确实很长时间了,差不多快四年都没有充钱了,缺个两块钱应该也是正常的,补上就行,然而让人没有想到的是补偿充值之后的一个小时,有显示欠费了。于是就立马引起了我的重视。于是深夜开始进行排查问题。
(期间其实又陆陆续续充值了一些,发现充值之后瞬间就又没有了,前后算了算,虽然痛失30块。)
写博客的初衷
写博客其实也没有想着去盈利,或者说等网站的流量大了想着去接广告,因为也没有指望博客会有很大的流量。事实也没有让我失望,通过百度统计,发现每天也就几个IP。多的时候会有几十个。
那有小伙伴肯定要问了,不赚钱,又没有流量,那写个鸡屎球啊。那么多第三方平台不用,偏偏要用自己搭建的服务器去搞,那不是费时费力费钱。
哎,之所以想要自己用服务器去搭建博客平台主要原因还是一名技术人员最简单而又淳朴地追求,因为感觉自己搞服务器,自己写文章,就会让人觉得这是在经营自己的东西。另外的话,自己搭建博客的话自由度更加高一点,想要搞成什么样子都可以,使用第三方平台的话,总是觉得限制还是比较多的。指不定哪天平台凉了,自己的东西也就没有了(虽然实际情况往往是平台的寿命比自己个人搭建博客的寿命可能更长一些。)
关于老猫个人博客的技术栈其实也换了好几拨,以前用过wordpress,后来又换成了hexo,到后来差不多是20年左右的时候接触到了vue技术,后来又换成比较熟悉的vuepress,一直到现在用的都是vdonig的模版。
起因-草率地部署
最原始的部署方式,就是在阿里云上,通过nginx服务进行搭建,比较简单,端口用的也是默认端口。部署是完成了,但是外围访问的速度是相当慢的,后来排查原因主要是由于有些图片比较大,另外的话,有的还使用到了第三方的一些js,加载的时候也比较慢,当时也没有想到图床啊什么的,后来就想着优化一下,于是用到了腾讯云的CDN进行全站缓存,包括一些图片。
这次CDN流量被刷排查下来也是一张图片所致,当然图片我也没有经过压缩,本身大小差不多是500k了。排查下来两天这个图片一共刷了我89个G的CDN流量。
这个图片访问次数也达到了62.77w次
然后又看了一下主要的请求归属地,所属地主要是来自于山西,山西的那位大哥,真心求放过啊,咱这小门小户的。
其实我一直挺好奇的,为什么要刷我的CDN流量呢?这玩意儿应该算是流量攻击?那为啥要攻击我呢?咱这才多少流量,大胆一点,不会是内部人员为了业绩?(⊙o⊙)…(细思极恐,感觉自己是不是想太多了,老马应该也不差我这30块钱吧。。。)
当然也是出于好奇,于是在网上逛了一下,发现还真有朋友遇到和老猫一样的情况,当然那个比较惨可能,是一家创业型的公司,老猫估计也是个菜鸡运维配置的CDN。他们居然还报警了,至于有没有下文,好像文章里面也没有提及。文章的内容大概是下面这样的。
从上面的文章中,看起来,这是个最近需要关注的事情,另外的话好像和运营商打击PCDN有点关系。具体的细节老猫后续也没有再深入去研究。看完文章,想想可能是误会老马了(有点以小人之心度君子之腹)
反正如果大家和老猫一样,也是个小站长,那么其实也是时候检查一波自己的网站配置了。
采取一些措施,解决流量盗刷
事情呢,已经发生了,30块巨额也回不来了,但是事情么总归也还是需要解决的,如何解决?
查找盗刷流量的IP地址,并且设置黑名单
老猫查看了之前对CDN请求的top100,发现消耗流量比较多的是下面的IP
没错,我要曝光我大哥。从地址上来看一个是江苏、一个是山西大哥。
相关的图片资源进行迁移,并且设置相关防盗链
于是半夜三更开始进行图片迁移,由于老猫其实还用了某云的第三方的图床CDN,于是老猫就把原来的图片迁移到了某云的图床上,并且给这些图片设置了防盗链。
另外的,当前cdn的相关的图片也进行了清除,清除的方式也比较简单,因为是全站缓存的,所以老猫直接登录到了部署的服务中,将相关的图片进行删除,然后重新刷新cdn的缓存,这样再次去访问该图片的时候就是404了,原始图片地址:https://blog.ktdaddy.com/img/ui.png
设置单位时间全站的封顶流量
当然为了防止全局其他资源的cdn流量被刷,于是重新设置用量封顶规则,这个规则相当于是为了不让自己受到损失熔断整个网站具体如下:
老猫也知道自己的小站几斤几两,所以感觉设置这么高的瞬时封顶也就够了。这层也算是最后的防线了。
现在回过头来在想想,小小网站由于目前有CDN图床,现在再做相关的CDN的全站缓存好像意义并不是很大。所以后面还是考虑将全站缓存到CDN这层给干掉,直接服务器+图片图床即可。
一些想法
算是个人的小小损失吧,但是细思极恐,如果当时cdn上面充钱比较多,另外的话,盗刷的也不仅仅这一个资源的话,那么其最终损失就大了。上图中提及的“快科技”就是一个比较好的例子,作为一个资深码农,这件事情上真的是疏忽了,做事情不够严谨,应该自我批评一番。哪怕说是几年前部署的。
当然上面文章中有些疑问也欢迎其他小伙伴能够聊聊,当然还有哪些注意点,老猫这里没有想到的,也欢迎大家可以提出建议。
写到这里也差不多了,相信有很多小伙伴应该会来问老猫当前的博客是如何搭建起来的,用到了哪些东西,在这里,老猫把相关的技术以及资源分享给大家。
技术采用:vuepress,官网地址:https://vuepress.vuejs.org/zh/
博客模版用的是vuepress-theme-vdoing,相关的gitlab地址是:https://github.com/xugaoyi/vuepress-theme-vdoing,
上述博客模版对应的官方教学主站:https://doc.xugaoyi.com/pages/a2f161/
创作不易,当然如果你看到了也欢迎给这位作者github上点个star。
上述有提及某云的图床,其实这里也不卖关子,主要用到的是七牛云。感兴趣的小伙伴可以研究一下。
总结一下
当我们遇到CDN流量盗刷的情况下,我们应该从哪些方面入手去做呢?我们可以按照下面的流程来应对:
-
立即监测和分析:尽快确定流量被盗刷的模式、时间、来源和去向等信息。通过 CDN 服务提供商提供的监控工具和数据分析,了解异常流量的特征。
-
暂停服务:在情况未明之前,为避免进一步损失,可以暂时停止相关的 CDN 服务。
-
通知 CDN 服务提供商:及时向 CDN 服务提供商报告被盗刷的情况,他们通常具有一定的应对机制和经验,能够协助调查和采取措施。
-
加强安全防护:检查和强化自身的网络安全措施,例如更新密码、加强认证机制、修补可能存在的安全漏洞等。
-
审查授权和访问控制:检查所有的授权和访问权限设置,确保只有合法的用户和应用能够访问和使用 CDN 服务。
-
保留证据:保存与流量被盗刷相关的所有数据和记录,以备后续可能的调查和法律行动。
-
法律手段:如果损失较大,可以考虑通过法律途径来追究盗刷者的责任,维护自身的合法权益。
总之,CDN 流量被盗刷是一个严重的问题,需要及时、果断地采取措施来应对,以减少损失并防止再次发生。