博客被DDOS 上万 IP 攻击记录

0

希望你只是无意中打开了这篇博客,如果你是搜索到的这篇博客,那很有可能你也正在遭受攻击困扰,希望你的钱能撑到攻击结束。

7号发现博客无法打开。

开始以为是域名到期了,检查一圈也没发现异常,发现网页解析也没什么异常。

开始着手查服务器和cdn,看 cdn 后台时发现博客域名被cdn关闭了,原因是触发了我设置的带宽流量阀值,cdn 根据策略直接停止cdn服务,保护站点流量消耗异常。这看来是被人 DDOS 了。

0

0

想来想去可能是昨天在一个群里说过一些网站被黑以后的解决方式,被别人给盯上了。

抓紧去群里说了一下,群里有坏人,大家尽量不要暴露自己的网址。

然后开始着手调查流量来源和如何防御攻击,发现没什么日志分析软件,cdn 的流量日志不好分析。先开开网站cdn看看攻击流量是不是还在,看了一下流量还在而且攻击第二波峰比第一次还要高。

0

7号攻击过去以后,自己也没当回事,以为只是别人练手打中了这个域名,单个博客一般不会被当作攻击目标,毕竟攻击也是需要成本的。后续也没再管,觉得攻击过去,后面也就没什么事了。

但是域名一旦被人放到攻击列表里,那就有了相应风险了。

13号又有群友反应无法访问网站,他完全靠百度的缓存页面找到的我的一个QQ群,我再看cdn记录发现又被进行了一波攻击,cdn又一次主动保护关站了。

结合上次分析攻击的经验,因为上次开启了cdn的实时日志,这次尝试使用腾讯云的实时日志进行分析看看,但是发现腾讯云的cdn实时日志看着功能强大,但是我不会用,复杂无比,还要收费,光日志索引都用了4个G。搜索cdn实时日志也没分析出什么有用的信息。

一边给腾讯云发工单咨询如何使用实时日志检索,又关掉了实时日志,根据攻击时间段,下载了cdn的离线日志,本地分析日志。

其实发工单的也没太指望腾讯云能给什么解决方案,只是想咨询一下如何使用实时日志快速搜索出有什么攻击特征,可以在cdn配置中进行限制。

腾讯云连着用北京、广东、腾讯云官方电话给我电话,前三个电话都被认为是广告营销屏蔽掉了。

工单最后给的解决方案也是可以考虑配置 cdn的单ip并发,流量下行限制,设置预警阀值来操作。

最终的方案是可以考虑开通腾讯云的scdn功能,普通cdn不支持防 ddos 和cc 攻击,只有 scdn 支持防 ddos 和 cc 攻击。就是要单独花钱,起步价是3800,cc 和 ddos 防护流量超出还另行收费。

要是能花钱解决也就不会发工单了。

0

要想不花钱,还是要自己动手分析。

下载了cdn的日志,没有顺手的分析日志的软件,上次尝试360 的星云来分析日志,发现cdn 的日志星云没法分析,这次尝试把日志导入excel分析了一下攻击源,导入excel 好像只能导入几万行,不过也够用了。

攻击日志看大概是有几万个不同 ip,完全靠封禁IP 基本不现实。

把分析出来的前20个高访问量的 ip 在 cdn 中进行了屏蔽,前两个IP比较厉害,一个IP几分钟内访问了7000多次。

0

0

最近再观察一下封禁了高峰 ip 之后的结果。

又买了一个 1T 的流量包预备着,这幸好是之前在双十一买了一个1T的 cdn 流量包顶了一阵,这个流量包已经在几次攻击过程中被消耗完了800G。再买个顶一阵子,防止突然来的流量包用完再消耗费用。

然后把 cdn 的安全策略都降低了,原来带宽峰值阀值设置的是 1G之后关站保护,这次直接改成 100M 没有大文件的情况下应该不会出现流量峰值到 100M 了,看日常峰值到 50M 就已经很高了。为了防止其他域名也被攻击,把其他域名也都限制到了 100M 关站。

接着是开始考虑长久的防护策略了。

分析日志发现大部分攻击Ip来源是国外,开始考虑国内国外不同cdn策略。如果能把国外的流量导入免费的 cloudflare 的 cdn ,国内流量走腾讯cdn 这样分开的话就好多了。cloudflare 免费套餐拥有一定的防ddos 功能。

但是 cloudflare cdn 在国内访问实在是太慢了,并不合适直接用,但使用 cloudflare 操作又需要改域名的 ns 记录,操作起来还需要走阿里云的智能解析,在国外 dns 走 cloudflare ,国内正常走腾讯云。

想想这个架构还需要把域名的服务商换到阿里云,用阿里云的智能dns解析,再用腾讯云cdn、再用cloudflare cdn ,还要处理 ssl 证书,域名解析等一大串修改,需要从长计议才行。

先测试试试用 dnspod 的子域名的负载均衡解析,加上 cloudflare 的 cname 解析方式,试试能否分开国外,国内外流量走不同的cdn。国内访问走腾讯云,国外ip访问走 cloudflare 的cname cdn。 cloudflare的cname 解析方式需要借助第三方平台实现。比如我用的是 挖站否提供的平台添加。
https://cdn.wzfou.com/

这种方式是可以通过设置域名默认解析记录和境外解析两个记录来,实现国内访问走腾讯云cdn ,国外访问走 cloudflare cdn了。但 dnspod 免费的域名套餐,负载均衡只能设置一个子域名,没法为多个子域名设置负载均衡。

只能先做一个子域名做测试了,后续考虑把域名迁入 dnspod 国际版,这样可以获得10条子域名的负载均衡,个人专业版0.88$ 每月也比较便宜,比国内360一年便宜一些。 Dnspod 的国际版还需要用国外手机号才能注册,试试用 Google Voice 看看能不能使用。

如果你看到最后,提醒你还是要注意保护自己的源站IP,这些攻击流量现在只是进行的域名攻击,但如果是针对具体业务的攻击,一般不会对域名发起,都是先获得你的源服务器的ip,针对特定 IP 的攻击才能发挥拒绝服务的优势,这种几分钟内发起几百万次请求的攻击量对源服务器IP 的话基本是一打就瘫痪。

通过 cdn 保护源 IP 只是把攻击流量消耗在 cdn 的流量里,只要愿意花钱还有的解。

但用 cdn 一定注意一下费用的控制和不可控流量攻击的预防措施,要不然没钱的小站点被 ddos 打了,可能就不是只关站这么简单,很有可能会欠 cdn 一大笔钱。

我现在知道为什么很多逐渐放弃个人建博客,而转战自媒体平台了,自己捣鼓网站只能是折腾还事多,不如用大厂提供的服务,只写好内容,不需要操心这些内容之外的风险,可以节约更多精力去创作内容。

云服务高额账单风险警示:
当您的域名因被恶意攻击或流量被恶意盗刷等原因而造成高带宽或超大流量消耗时,可能需要承担产生远高于平时消费金额的账单,为尽量避免此类潜在风险,本文为您介绍这一类情况的应对办法。
https://cloud.tencent.com/document/product/228/51813

以下是cdn 的问答记录,可以参考以下:

工单提问内容:
1、cdn 被恶意攻击,如何通过日志查找攻击者重复ip,已开通日志功能,已经收集到了日志 查询语句如何写。下面写法好像没查出来重复ip

* | SELECT COUNT(DISTINCT(client_ip)) AS client_ip

2、设置的ip qps 阀值为10,下载流量300kb/s 。 依旧没有防御到ddos 攻击。
cdn 这些设置是否在节点上生效?

3、另外之前设置ip访问黑名单不知为何没有了。

腾讯云工程师2021-01-13 18:06:44
您好,

与您电话沟通,未能取得联系。

1、CDN访问日志分析您可参考:
https://cloud.tencent.com/developer/article/1438374

2、您可以再设置小一点。

腾讯云cdn主要是做加速访问,本身不具备防CC,DDOS攻击功能,但是cdn平台提供了访问限制功能,您可以考虑做下访问限制,看是否对您有帮助。 如下:

1).防盗链配置:对业务资源的访问来源进行控制,通过对用户 HTTP Request Header 中 referer 字段的值设置访问控制策略,从而限制访问来源,避免恶意用户盗刷。
https://cloud.tencent.com/document/product/228/6292

2).IP黑白名单配置:您可以根据业务需要对用户请求的源 IP 配置过滤策略,帮助您解决恶意 IP 盗刷、攻击等问题。
https://cloud.tencent.com/document/product/228/6298

3).IP访问限频配置:通过对客户端 IP 在每一个节点每一秒钟访问次数进行限制,进行 CC 攻击的抵御。配置开启后,超出QPS限制的请求会直接返回514,设置较低频次限制可能会影响您的正常高频用户的使用,请根据业务情况、使用场景合理设置阈值。
https://cloud.tencent.com/document/product/228/6420

4).带宽封顶配置:您可以对域名设置带宽封顶阈值,当域名在一个统计周期(5分钟)内产生的带宽超过指定阈值时,会根据您的配置将所有访问返回给源站,或直接关闭 CDN 服务,所有访问均返回 404
https://cloud.tencent.com/document/product/228/7541

5)如您想使用CDN又具有防护DDOS的功能,您可选择SCDN
https://cloud.tencent.com/product/scdn

3、查看您的操作记录:
2021-01-13 17:45:54,2021-01-13 17:18:21,2021-01-13 16:31:35有设置IP黑名单的操作。其余时间再无添加黑名单的操作。

感谢您的理解与支持。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注