分享是最有效的學習方式。
部落格:https://blog.ktdaddy.com/
最近遇上事兒了,老貓的小小部落格網站【程式設計師老貓的部落格】被人盜刷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 流量被盜刷是一個嚴重的問題,需要及時、果斷地採取措施來應對,以減少損失並防止再次發生。