天天看點

個人網站或APP遭遇到DDOS攻擊怎麼辦?

之是以寫這篇文章,是因為筆者網站遭到DDOS攻擊,從遭遇到的那一刻直到最後恢複,心情複雜,感覺涼涼,真的有坐以待斃的感覺。

背景

首先說一下背景,筆者做了一個影視站,愛美劇tv,這個網站已經存在四年多了,為什麼說存在而不是營運呢,因為筆者以前工作很忙,基本就上了一個爬蟲,寫一個簡單的展示頁,為愛好美劇的朋友提供看美劇的便利。今年筆者因為疫情丢了工作,左思右想還沒有想到好的出路,就想既然有這個網站,那麼就深入做一下吧,看看能不能養活自己。在筆者幾周的努力下,流量逐漸上升,形勢看來一片大好,也許能收點廣告費賺點飯錢,然後DDoS就來了...

上兩張圖:

個人網站或APP遭遇到DDOS攻擊怎麼辦?
個人網站或APP遭遇到DDOS攻擊怎麼辦?

筆者收到報警,就感覺不妙,雖然當時對DDoS是什麼的概念還是很模糊,但是對這個的厲害還是有所耳聞,沒想到我發生在自己身上,筆者就是一個小站啊。趕緊去登入阿裡雲伺服器,結果...上不去了,因為被限流了,收到報警一分鐘就不到,我這麼迅速的反應,也上不去了,上不去就沒辦法處理了。第二張圖是之後截的...

困惑

因為進不了伺服器,就馬上去阿裡雲上提工單,希望阿裡雲能幫助解決。也希望能登入伺服器。因為之前也遭遇過一次攻擊,我進到nginx看access.log,把從菲律賓過來的ip全部deny,然後就相安無事了。但是這次,阿裡雲解釋,我進入了黑洞,直接被限流了,根據登入不上去,也沒辦法解決,讓我購買一台同區域的伺服器,然後從内網連接配接到主機看看是什麼問題。

我對這個建議其實是不太滿意的,我了解雲商了解幫助我解決問題,而不是僅僅提個建議,然後解決的費用還讓我來付,而且這個方法也解決不了問題,我登入上去看了也沒用啊。但是當時想解決問題,還是購買了一台流量伺服器進入主機,想通過nginx配置deny的方法,但是已經進入黑洞了,我從主機上面啥都看不到。我從整個事情事後來看,天量流量進入到機房到我的目标主機時,已經被阿裡雲或電信商限流了,我當然啥也看不到了。應該是保護了機房,但是限制了我的主機。

DDOS是什麼

分布式拒絕服務攻擊可以使很多的計算機在同一時間遭受到攻擊,使攻擊的目标無法正常使用,分布式拒絕服務攻擊已經出現了很多次,導緻很多的大型網站都出現了無法進行操作的情況,這樣不僅僅會影響使用者的正常使用,同時造成的經濟損失也是非常巨大的。----來自于百度百科

對于我來說,簡單來說瞬間巨量流量直接通路本機,然後被阿裡雲或電信營運商放到黑洞去了,從外面通路不了。

經過

遇到這種攻擊怎麼解決呢,本次被攻擊,我實際上相當于等死,沒有任何辦法,一開始阿裡雲給出的辦法就是買DDoS的高防,但是價格太貴了,三個月五萬多,相當于一年二十多萬,這對于個人來說,從各方面來說是挺難承受的。

而且一旦受到攻擊,就被放到黑洞裡去,筆者毫無辦法登入。一旦進入黑洞,理論上就要300分鐘後解封,意味着隻要有競争對手看你不爽,對你發動DDoS攻擊,對于個人站或app來說,基本就完蛋了。因為那有使用者一天兩天或連續幾天登入不了還會選擇繼續使用呢,沒用使用者,那麼網站自然就沒有意義了。

攻擊了五個小時之後,攻擊者終于停手了,網站恢複正常。

但是下次呢,怎麼辦?筆者不能坐以待斃啊,開始學習分析了解怎麼防範DDoS.

如何防範DDoS

從理論上說,DDoS基本防不了,因為瞬間巨大的流量進入,如果不在網絡層防護,主機肯定就崩潰了;現在我們都用雲,機房我們也控制不了,雲商為了保護自己,檢測到危機馬上就把你的主機斷開了,你也無能為力了。

本次,我受到了每秒35G流量的沖擊,可以想像如何來防呢,基本在當時是防不了。但是可以做一些預案。

我隻針對流量攻擊性的DDoS講講防範的方法。

DDoS是多種攻擊的總稱,如果你受到七層協定的攻擊,如果你還可以登入主機,不防用我之前的方法,用nginx把流量deny.

如果四層協定攻擊,那麼在應用層做什麼也沒太大作用。即使你操作iptables,但是你的主機在雲商,雲商為了保護自己,也會把你的主機斷開,是以通過iptables,防火牆,web服務來應對,對于放在雲商那邊的機器是很難操作的,這條路也不通。

那麼有沒有辦法呢,當然有,本質就是大量帶寬來消耗這些流量攻擊。

1.簡單粗暴的方法,買雲商的DDoS高防,或其它廠商的高防,但是這個價格還是挺貴的,對于剛起步的業務,如果盈利模式不是特别清晰,還是慎用,雖然花了錢買到了保護,但是本身就沒賺到錢,意義是什麼呢?

2.自己擴充流量帶寬,其實就是DDoS高防的本質,雲商因為有帶寬是富餘的,可以使用帶寬來分擔流量,那麼可以借用這個思路。對于個人來說,可以購買幾台雲主機,這幾台雲主機隻是網關層或接入層用來分發的,某雲商承諾對于單台主機可以保護5G流量的攻擊,那麼可以用一台雲主機向其它主機分發流量。因為攻擊者也是有成本的,受到了攻擊,可以先備用着,可能這樣一年成本在幾千元就可以了,這比買高防要劃算很多。這個對于直接攻擊主機ip的DDoS攻擊還是有效果的

3.購買CDN,實際上也是利用CDN的帶寬來分擔流量,這個成本由各位自己來決定。但是也要保護自己的ip,如果ip被暴露,直接攻擊ip,CDN的作用也不大了。

4.換主機,如果是競争對手已經用各種方法直接查到你的ip,那隻能換主機了,然後采用上述的1/2/3的方法來保護。

我的解決方法

對于筆者來說,能用最低的成本,如果是免費的方法能保護主站是最好的辦法。

經過我連夜奮戰,找到一個解決方法,推出 Cloudflare.

Cloudflare的大名我就不多說了,在這一點上,我隻能說,可能國外的雲商比國内的雲商還是厚道很多的,吃相上不會上來就要吸血,還是能幫就幫,如果要更專業的服務,價格也讓你感覺能接受,注意是個人開發者能接受。

當然,我一分錢都沒賺到,我還是采用Cloudflare的免費方案。

Cloudflare這個方案的本質就是利用Cloudflare富餘的CDN來分擔DDoS流量攻擊,對于個人來說,他們是盡力來幫助,如果實在超出他們的成本,可能會向你推薦付費方案, pro版大概一個月20美金。

我的做法是把DNS解析托管給Cloudflare,這個不用在Cloudflare再做一次,隻要輸入域名,Cloudflare幫你自動解析,然後告訴你到域名廠商,簡單的操作一下就可以了,對于我來說,就是換dns的解析伺服器,我從dnspod換到了cloudflare.

一般二十四小時生效,然後你也不用擔心你的暴露,DDoS攻擊者直接通過ip攻擊你的主機,Cloudflare已經把ip換成它的ip了,相當于對ip做了屏蔽,如下圖:

個人網站或APP遭遇到DDOS攻擊怎麼辦?

最初我很擔心如果用了Cloudflare,網站的通路速度會不會受影響,目前還好,Cloudflare也給了具體的名額,見下圖:

個人網站或APP遭遇到DDOS攻擊怎麼辦?

這是目前我的解決辦法,可能我經濟壓力不大時會考慮買高防之類的,但是對于現在業務不清晰,還處于探索期的我來說,目前還是先用Cloudflare.

繼續閱讀