被DDoS後的及時補救與一些思考

最近3天,個人小站godbmw.com經歷了2次DDoS。第一次由於沒有限制QPS,短短几分鐘內CDN被盜刷了300G流量。第二次完善了相關保護措施後,CDN依然被D了90G的流量。通過2天的遷移和補救,終於使得網站服務恢復正常。用此篇記錄下整個奮戰過程。但願對廣大站長有幫助。css

  1. 圖片沒法正常加載的朋友請移步:被DDos後的及時補救與一些思考:原文地址
  2. 歡迎來小站看更多幹貨 + 免費教程:godbmw.com
  3. 因爲最近常常被DDoS,因此不是很穩定,請見諒🙏

1. 來自歪果仁的惡意

1.1 遭遇DDoS

個人CDN部署在騰訊雲,10月2日接收到短信提醒:CDN流量已用完。登錄控制檯後發現,被盜刷了360G,寬帶峯值也到達了不可思議的680Mbps。這對於一個我的網站來講,幾乎是不可能的流量。git

抱着懷疑的態度,我查看了區域商分佈,果真,海外的請求佔了總請求的98.24%。其中300多G的流量都來自海外,如今能夠肯定是歪果仁盜刷了個人CDN流量。github

沒有辦法,被迫聯繫工單,但由於我本身的一些防護沒作好,因此此次的補償不了了之。無奈,只能出錢補上了被盜刷的流量,以保證服務正常使用。而且在工單的交流中,增設了QPS等安全措施。瀏覽器

毫無疑問,限制QPS會影響用戶的正常使用,形成延遲。但保險起見,我仍是設置了QPS,只但願不要再被攻擊。緩存

1.2 再次遭遇

但好景不長,僅安穩度過了一天,又一波來自海外的DDoS讓我不得不臨時關閉CDN和COS服務。下圖中第一個峯值是上一次DDoS,第二個峯值是此次的DDoS。安全

此次的攻擊更高級,很有一種「道高一尺,魔高一丈」的味道。由於以前應增設了QPS等限制,但這樣徹底限制不了IP代理池等攻擊手段,黑客此次也選擇了體積較大的單文件進行攻擊。服務器

我慣例去找了工單,由於上次騰訊雲的工程師專門call過來:只要增設了相關安全限制,下次確認是盜刷當即給予補償。然而此次工單依然是打太極,各類文檔、規則扔給我,閉口不談補償問題,而且說是個人QPS設置過高了:)。markdown

問題是:QPS設置成5,項目還用不用了?若是用戶處於同一個局域網下(校內網、Wifi等場景),那在同一秒中只有一個用戶能夠正常使用?測試

最後,工程師仍是call過來,通過了1小時的聊天,能夠補償,可是要等一段時間才能批下來這90G的流量包。網站

1.3 無路可走

經歷了2次DDoS,我設置了「寬帶封頂配置「。根據平日的使用量,我估計「3Mbps」,而且在超值的時候,返回404,關停服務。

當日晚,就接收到了CDN到達寬帶封頂的短信,自動關停了CDN服務:項目也沒法正常使用了。

此次,完全是絕望了,只能先關閉CDN服務,尋求別的解決方法。

2. 坎坷的補救措施

在補救的時候,首先排除了工單的意見:回源到原站或者COS(對象存儲服務)。前者會直接形成服務器癱瘓,DDoS是結結實實打在服務器上;後者COS也是流量或者寬帶後收費,本質上和CDN沒區別。

因此,關閉當前的CDN加速域名,而且清空了COS中的文件。而後針對我的網站和項目應用作了不一樣的處理。

2.1 公司項目:更改CDN域名

觀察被盜刷的資源,所有都是我的網站的靜態資源。而公司項目只有合做的商戶在使用,而且在robots.txt中禁止了爬蟲,因此用利用另外一個帳號開啓了一個新的COS而且開啓了對應的CDN加速域名。

至於爲何我的網站和公司項目要放在一塊兒,只是由於方便上傳和管理,如今看來省事一步,後患無窮。

2.2 我的網站:Git平臺

藉助免費的Git平臺,能夠存放圖片、代碼等數據,而且能夠在外部訪問到。考慮到國內用戶居多,因此我將友鏈界面的圖片和文章中的圖片存放到了Coding.net的公有倉庫中。

例以下面這種圖片的地址就是:qcloud.coding.net/u/godbmw/p/…

噹噹我把代碼放在Coding或者github上時,雖然能夠請求到代碼的內容,可是Response Header中的Content-Type字段的值是: text/plain; ...。對於CSS樣式文件,瀏覽器沒法自動解析。所以,打包後的js、css等項目文件不能放在Git平臺。

2.3 免費CDN:CloudFlare

這是全球最大的免費的CDN,而且國內也能夠訪問。ping值穩定在100ms左右,具體能夠去查看相關測試文章。除此以外,cloudflare能夠抗下DDoS、CC等攻擊,據說百度抗不下來海外的DDoS的時候,也是DNS解析到cloudflare進行處理。

cloudflare的操做很簡單,首次註冊按照它的指導到域名註冊上修改DNS解析便可。若是是國外的域名註冊商,幾分鐘就能夠同步。國內的並無嘗試。若是成功了,CONSOLE頁面就會顯示「Active」。

剩下要作的就是把打包好的項目文件上傳到服務器,IP隱藏、緩存、CDN等cloudflare都會幫你作好。不暴露服務器ip地址,天然就是安全的!!!

到此,我的網站就能夠正常訪問了。

3. 一些思考

若是是我的項目,強烈推薦使用國外的「cloudflare」,免費、不限流量、抗攻擊,就像國外的JetBrians(教育版免費),都是有情懷的公司,致敬!!!

相關文章
相關標籤/搜索