被攻击的余温还未褪去,未来还要迎接多少突如其来的攻击尚不得知。作为一个小小站长,永远要做的就是时刻做好准备,也要做好最坏的打算,哪怕是最后一丝希望。
星星之火,可以燎原
周日晚上9点左右,自己刚从嗜睡中醒来,肚子已经迫不及待地的开始迫索要口粮,洗了把脸就急匆匆出去觅食,在饭馆里坐下打开手机与一个博客群的伙伴儿们聊的不亦乐乎,大家开始互换链接分享自己的博文,我随手也发了一条比较新的文章链接出去,刚发出去没等到一分钟就有伙伴向我反馈链接已经打不开了……我心想,糟了一定是被CC了……
我以迅雷不及掩耳之势一顿狼吞虎咽之后就往回赶,到家的时候博客已经陷入502 bad gateway
状态(Web服务器网关请求失败,已经宕机),并且在502状态下请求还仍在继续,502的请求次数已经达到了1.7万次,为了尽快恢复服务,我选择了重启主机。
我非常清楚这次攻击是出在博客群的某一个人,但没有足够的证据只好作罢,便对这位不露面的攻击者进行了好一番嘲讽。待服务器重启之后,流量已经开始越变越大……
持续发酵
重新启动服务器后,网站经过短暂的正常之后又开始濒临502,流量开始进一步提升,为了保持网站的正常访问我开启了防火墙的强验证模式,并且屏蔽了海外IP,因为攻击者的代理IP来均来自海外。经过一番紧急的屏蔽措施之后网站的负载率基本平稳在了20-30%之间,此时的CC攻击量已经达到17万。
正在向胜利准备挥手时,画风突变!攻击IP由海外变为大陆IP,攻击流量又开始回升。我压低了防火墙的容忍值,封堵了最少一半以上的CC流量,网站速度又恢复了正常。由于捕捉到该攻击者的国内IP资源不够多,采用的是某免费IP代理网站批量获取的免费,用了部分IP段,所以我把几个固定的IP段手动屏蔽掉之后网站几乎不影响访问。
机智的攻击者见攻势越来越弱,开始转变思路瞄准了防火墙规则 —— User-Agent
(用户代理),攻击者把UA模拟成百度爬虫(Baiduspider
),钻了防火墙屏蔽规则的漏洞,因为防火墙无视各大搜索引擎的爬虫,所以通过模拟搜索引擎爬虫访问网站的请求不会被拉黑(当然国外IP即使模拟UA也是无法通过的)。我本想着屏蔽掉爬虫规则,但是考虑到百度收录的问题只能另想办法。好在攻击者的国内IP资源并不多,继续手动屏蔽一些IP段还是可以有效的控制。
经过一晚上的敌我的较量,我的博客勉强略胜一筹,还是挺到了最后。攻击者最后IP消失殆尽,在晚上11点50分停止了攻击(历时2个半小时)。攻击结束后我的博客已经被CC攻击打了70万+万次!终于可以抽颗烟睡觉了……
无利不起早
早晨到公司简单地吃过早餐之后准备新一周的工作,在10点的时候接到微信推送来的服务器预警消息……
昨晚的防御措施我并没有急着关闭,目的就是为了防御接下来的攻击,没想到攻击者一大早已经开始又一波攻击,真是无利不起早!看这种情形,我昨晚的防御措施已经被瞬间沦陷!
硝烟再起,群魔乱舞
心里想着被攻击就被攻击吧,即便服务器瘫痪了我也不会造成什么损失,想把重心转移到工作上,但微信上一遍又一遍的警报时时刻刻提醒着我去看看!最后终于忍不住,那就开干吧!
等我登陆到服务器上的时候,还没到半小时攻击量已经接近30万了,而且攻击思路沿用了昨天最后的套路,搞来了大量国内的垃圾IP,而且模拟UA不止单纯有百度,还有有道、谷歌。此时的CC防火墙已经形同虚设,只能拦截少数攻击。
攻击者不仅伪装了多种搜索引擎的UA,还由HTTPS CC转为了HTTP CC,这样无论是国内IP还是国外IP都可以命中目标,因为我网站默认强制开启了HTTPS,所以请求HTTP链接时默认会301重定向到HTTPS,这个也是钻了防火墙的漏洞。一时间手慌脚乱,CPU负载已经趋近100%满负荷,网站已经开始出现访问延时。
不管三七二十一,把CC容忍度一降再降,祭出最终大招,不管任何爬虫访问,真实的也好,模拟的也好,只要超出预设的CC容忍值一律送进小黑屋。(当时脑门一团乱,应该关闭HTTPS访问,转单向HTTP访问,这样防火墙规则就能正常了)。
经过这样一番调整之后,网站恢复正常访问状态,但负载依然超过40%,我选择死扛……
最终BOSS之战
对于整个CC攻击事件,我前思后想很多,有很多巧合能与一个人关联上。甚至已经严重怀疑是我在群内认识的某一个人。因为我没有确切的证据,但是最后脑门一热,我把整站所有请求都301重定向到我怀疑的那一个人站点上,瞬间我网站的负载降至正常水平,所有的流量转达到对方站点,对方被我转过去的流量被CC到打不开页面,没过几分钟攻击便停止了,这不得不让我和其他群内伙伴深思……
我不知道我的怀疑是不是一场误会,但事实告诉我,当我把整站重定向后攻击确实停止了,这该如何解释呢?如果我真的误会了,我真诚的在这里说声:“对不起!”
停止切磋,各自安好
这次攻击的起始点和结束点都非常的突然,截止攻击结束,我站点CC攻击累计超过170万次(第一次累计70+万,第二次累计100万)我不知道什么样的人对我这样憎恨。我的服务器也相当脆弱,仅仅1核心2G内存,外加10Mbps带宽。小项目做惯了,自己第一次经历过这么大流量的攻击,竟然还是出自我自己服务器上,我也不知道自己的服务器防御极限究竟在哪里。无论如何权当这是一次攻击试验,希望攻击者和我都各自安好。搞成这样真没什么必要!
结语
博主自认为是一个热心且好心肠的人,喜欢在一些技术群、博客群内和小伙伴们聚在一起无话不谈。喜欢分享自己知道的,也常常帮助小伙伴们解决一些力所能及的问题,不会去招惹跟自己合不来的人,根本不会节外生枝。博客也是同样,本身不是盈利的一个站点,攻击的意图又是什么呢?
“子曰:我未见好仁者,恶不仁者。好仁者,无以尚之;其为仁矣,不使不仁者加乎其身。”
不明觉厉 OωO
看完这篇文章,整个人都是震惊的。我遇见的攻击同时连接数最多才达到1100,还真没有遇见过这么量大的。OωO
被攻击的都有点压抑了
୧(๑•̀⌄•́๑)૭刚开启CDN,,,确实怕闲人
太猛了。。。才反应过来强制https也是个坑。。
我要是你我就把站关了,过两天再打开,不够折腾的
的确够呛,如果防火墙规则开最大。牺牲一定量的搜索爬虫,收录也成问题。如果全站cdn如果量不大,分分钟欠费,亲有替换
其实防火墙之前是对爬虫无视的,所以会钻这个BUG实现无拦截CC攻击。后来可能修复了( ๑´•ω•) "(ㆆᴗㆆ)
挺厉害的,之前我有一个业务站也是被人一直CC,我后来直接选择关掉那个站点了。毫无办法啊,服务器启动就被搞,远程都连接不上
为何被攻击呢
好吧,看来群里的那个人挺猛的,幸好我一般是屏蔽那个群的。否则攻击我的话我都不知道该怎么办
百万cc竟然扛住了,服务器硬核~
我之前也遇到过CC,感觉现在的小学生还是作业太少闲来无事。
从去年到现在一直不间断的扫描我的后台,山东滨州、广东深圳和景安网络的IP都快被我全部拉黑了,还是不停歇。总之发现1个IP直接封掉一个网段。最后,博主的301做的漂亮。也希望发现这样的人可以直接曝出来,有证据的话我们也可以直接选择报警。
那位不仁兄能量挺大呀。
唉。
全站cdn被c很容易破产,cc这种东西,成本太低,不承认,永远没办法查到,目前也没有特别完善的防御方法。不过貌似并不会掉收录。
就算不全站也够破产啊,所以趁着现在博客还没火,先白嫖得了,安心,不操心那些有的没的
我也被cc过,难受,弄了CDN也防不了吗?这些人太坏了,唉。
能防,但是费用会吓死人,保住了站,丢了钱包
我始终不想上全站CDN,我只有图片使用七牛云。感觉cdn用起来不舒服,挺烦的,不过cdn确实能大幅度抵挡CC攻击,是小型站长首选。