谈谈个人站如何应付DDoS/CC攻击

发布于 / 信息应用 / 9 条评论

最近一段时间因为学业比较忙,加上没什么想写的,一直没有更新,刚才主备切换的通知又来了,感觉有点可以写的了。

如果是细心的朋友可能会发现,这段时间本站的一些数据在某一时段会发生变化(比如最新的评论、文章离奇失踪啦之类的……),访问速度也会一定程度下降。这不是灵异事件啊o(* ̄▽ ̄*)o,截至发稿这是本站这段时间第三次被d了,因为备用镜像的数据每日更新一次,如果是攻击前几个小时的就没有同步过来。

下面进入正题(开始胡诌),作为已经选择备案回国的各位,想必都是正人君子,愿意接受一些制度的监管。但是速度换来的代价就是你无法去抵御任何层级的DDoS攻击。比如本站的阿里云轻量应用服务器,峰值流量保持在20m/s只需要一分钟左右就会进入黑洞。

这样的流量,很多freeboot的免费LDAP攻击就能做到,攻击持续时间很短,流量也很小,峰值也就200Mbps。

由于黑洞制度,打死国内的个人站非常容易,比较大的DDoS平台一般是不允许向国内发包的。freeboot提供的这种攻击成本过于低廉,加上攻击者一般比较闲,在你几个小时黑洞清洗之后他再来一次,你又是几个小时的黑洞。

很多国内站长被连续攻击的时显得手足无措,我的一个朋友被针对之后甚至注销了备案最后直接搬到了国外。其实完全不必这样,有攻击是说明有人开始在意你的网站,他想用背后捅刀的方法来破坏你。

攻击者他的目的想让你的网站无法访问,那你一定要在第一时间应当恢复你的网站予以正面回应。任何攻击都是有成本的,攻击者一般不会持续频繁地对你发起攻击,在保持服务正常的前提下,慢慢玩就可以了。


一、监测在线情况

当你被攻击之后像轻量这种不具有云盾的服务器,是没有攻击提醒的。如何第一时间获取到攻击信息,就需要依赖第三方服务。博主的推荐是知道创宇的云监控,每月免费提供1000条手机短信提醒。

https://jk.yunaq.com/

另外一个推荐是DNSPo,其实以前的360云监控也挺好的,可惜人家不做免费用户了……


二、主备DNS切换

受到攻击进入黑洞,那么接下来我们需要切换DNS解析到备用的源站。像CloudXNS(已经收费了)和DNSPod都能够提供宕机检测和自动切换功能,源站挂掉能自动切换DNS解析到设置的备用源站。

另外有能力你可以自己用各家DNS的API写个宕机切换的脚本,也很容易。其实切DNS的话,就算手动,也就是手机上点两下就能做到的。


三、建立备用站

主站和备用站之间可以使用Rsync保持同步,但是一般没必要。运行一个计划任务每天备份一次源站到对象存储就够了,有时间手动部署上去,镜像站的内容没必要完全与源站时刻同步。

①选择合适的服务器

其实这种20m/s的流量,对于动辄G口的美/日/新等互联网中心区域都是非常正常的流量。香港的普通直连CN2一般不行,但大厂像Azure之类的都能轻松应付这样的流量。

选择日本/新加坡AWS、美西CN2、香港Azure之类作为服务器,国内访问尚可而且具备一定的防Freeboot这种攻击的能力。

当然这样的备份站也是不能抵御CC攻击的,后面再详细讲它

②合理使用CloudFlare

CloudFlare这个巨良心的企业应该站长们都是知道的,套上CF基本可以无视80%以上的攻击,缺点是到国内的线路不算太好。

如果选择CF,那你的源站一定要放在北美(美西最佳),因为CF对联通电信的回源节点大多在北美,若选源在亚太会绕很大一圈。

另外针对这种断断续续的攻击,请用CF Partner去CNAME接入,这样更加灵活。如果你的站启用了https,记得去CF的控制面板将SSL的模式调成Full模式。


四、防止源站IP泄露

如果你选择了CDN,国内的如果被C有时候还会加重攻击……而且北上广的BGP私以为动态资源没啥套CDN的意义,走一层中转反而速度还会降。

如果你想日常用国内的CDN,那你就得保护好源站咯

源站泄露一般两种方式,一种是SMTP的邮件头(没错,你SMTP发信邮件头里会包含源站头信息),解决方法我看是有拿iptables直接转发到高防服务器的;另一种是扫IP的默认证书(专门有网站干这种事),如果直接https请求一个IP,它会把默认部署的证书返回给请求一方,这个证书就包含了域名。这种解决也很容易,设置一个无效的证书,在nginx vhost的listen参数设置default_server,就是listen 443 default_server这样。

另外就是防CC,这个CF的话可以开五秒盾并且配置好PageRules(能用的到开五秒盾的不多)。直接源站的话你可以配置WAF(最近宝塔不是有了个第三方的免费WAF),自己改改规则别用默认的ε=ε=ε=(~ ̄▽ ̄)~

网上关于WAF的lua也很多,自己善于使用Google去找找,你会有收获的。


五、极限模式

当你被屮到极致的时候,ddcc混合双打,甚至连CF都打穿到源站了,这说明对面下血本跟你来真的了(当然我估计我是等不到这一天了o(* ̄▽ ̄*)o)

一般情况下而言这种攻击成本比较高,针对破站这种没价值的网站应该不会持续太久的。

①选择有硬件防火墙的服务器

OVH、Voxility抗国外的量都很足,价格比较亲民(OVH Cloud最小的实例才3.5刀吧),缺点到国内比较差。想好一些就选CeraNetworks的,他家只卖独立服务器,想要低价的你就买分销的吧。

当然这些都还是得有经济实力支撑的,能被打成这样说明你站应该挺值钱的……

②静态化+CloudFlare全站缓存

CloudFlare提供Always Online服务,WP有很多插件能够让所有页面直接生成html,全部缓存到CF之后源站关机,基本上就处于死猪不怕开水烫的模式了……

当然缓存成静态就算源站暴露也完全不怕C了……


六、结语

其实不管出于什么都好,ddos都是一种浪费带宽的行为。11.24接近全天电信无法访问GitHub就是因为电信到NTT的互联被打爆了,连TCP都无法握手,那个国内方向过去的流量估计能到30Gbps以上。

还有朋友担心备案核查,其实赶上核查会通知你,说明情况就没问题了。我也咨询过客服,客服的回应是虽然解析切出去一段时间,你也必须保证至少有一个二级域名网站在接入商,并且有一定量的访问。

想说的就这些,都是些雕虫小技,希望诸位大佬多多指教。

转载原创文章请注明,转载自: Luminous' Home » 谈谈个人站如何应付DDoS/CC攻击
  1. 天心度

    好像hexo在GitHub上搭个人博客稍微安全一点。一直觉得DDoS攻击很无聊,用一种浪费资源的方式进行没有价值的攻击。

    1. Luminous
      @天心度 Hexo就是有局限性( ̄▽ ̄)"
  2. 七夏浅笑

    好像我换了 hexo 之后就再也没考虑过这些东西了…不过感觉折腾这些都好厉害,想起自己以前网站还被挂过两次木马真的是心累

    1. Luminous
      @七夏浅笑 DDoS的话国内的服务器很容易就黑洞了…… 挂马这种你只能尽量保证软件都是最新的吧,然后别装乱七八糟的东西…… 反正CloudFlare超级好用!!!!!
      1. 七夏浅笑
        @Luminous 我也不知道怎么被挂马的,当时都是更新了的,我太菜啦
  3. SPtuan

    很好奇这种个人站被D,是不是动了谁的蛋糕……之前的求生和mc服务器日常被D,个人站倒是免受遇难

    1. Luminous
      @SPtuan 我也搞不懂为啥有人锤我这站…… 估计是惹到谁了吧,好在量不大,随便防一下就过去了……
  4. sooele

    对于我这种。当笔记用的博客,只有我一个人看。404就404吧。慢慢DD

    1. Luminous
      @sooele 是,不管他让他打一段时间没趣也就自己放弃了2333333