教程:簡單四步防範DDoS攻擊

教程:簡單四步防範DDoS攻擊

智安網絡--讓攻擊到此為止

經常看到很多網友在網上留言自己的網站受到了攻擊,網站訪問不了,造成了很多客戶的流失,對於網絡攻擊都深惡痛絕。

事實上,很多受到攻擊的網友都並不精通網絡攻擊相關知識,特別是一些個人網站的網友,都沒想到自己也會被攻擊。在此,智安網絡為網友們提供一些簡單的防範教程,希望對受到攻擊的網友們提供幫助。

首先,要知道DDoS是什麼?

舉例來說,一家餐廳的正常容量,最多可以容納30個人同時進餐。在正常情況下,你直接走進餐廳,找一張桌子坐下點餐,馬上就可以吃到東西。

但,很不幸的是,有天一群人數在100人的流氓群體同時湧進餐廳。這些人看上去跟正常的顧客一樣,每個都說"趕快上餐"。但是,餐廳的容量只有30個人,根本不可能同時滿足這麼多的點餐需求,加上他們把門口都堵死了,裡三層外三層,正常用餐的客人根本進不來,實際上就把餐廳癱瘓了。

這就是 DDOS 攻擊,它在短時間內發起大量請求,耗盡服務器的資源,無法響應正常的訪問,造成網站實質下線。

DDOS 裡面的 DOS 是 denial of service(停止服務)的縮寫,表示這種攻擊的目的,就是使得服務中斷。最前面的那個 D 是 distributed (分佈式),表示攻擊不是來自一個地方,而是來自四面八方,因此更難防。你關了前門,他從後門進來;你關了後門,他從窗口跳起來。

其次,你需要知道DDoS的種類

DDOS 不是一種攻擊,而是一大類攻擊的總稱。它有幾十種類型,新的攻擊方法還在不斷髮明出來。網站運行的各個環節,都可以是攻擊目標。只要把一個環節攻破,使得整個流程跑不起來,就達到了癱瘓服務的目的。

其中,比較常見的一種攻擊是 cc 攻擊。它就是簡單粗暴地送來大量正常的請求,超出服務器的最大承受量,導致宕機。我遭遇的就是 cc 攻擊,最多的時候全世界大概20多個 IP 地址輪流發出請求,每個地址的請求量在每秒200次~300次。我看訪問日誌的時候,就覺得那些請求像洪水一樣湧來,一眨眼就是一大堆,幾分鐘的時間,日誌文件的體積就大了100MB。說實話,這隻能算小攻擊,但是我的個人網站沒有任何防護,服務器還是跟其他人共享的,這種流量一來立刻就下線了。

本文以下的內容都是針對 cc 攻擊。

第一步:備份網站

防範 DDOS 的第一步,就是你要有一個備份網站,或者最低限度有一個臨時主頁。生產服務器萬一下線了,可以立刻切換到備份網站,不至於毫無辦法。

備份網站不一定是全功能的,如果能做到全靜態瀏覽,就能滿足需求。最低限度應該可以顯示公告,告訴用戶,網站出了問題,正在全力搶修。

這種臨時主頁建議放到 Github Pages 或者 Netlify,它們的帶寬大,可以應對攻擊,而且都支持綁定域名,還能從源碼自動構建。

第二步:HTTP請求的攔截

如果惡意請求有特徵,對付起來很簡單:直接攔截它就行了。

HTTP 請求的特徵一般有兩種:IP 地址和 User Agent 字段。比如,惡意請求都是從某個 IP 段發出的,那麼把這個 IP 段封掉就行了。或者,它們的 User Agent 字段有特徵(包含某個特定的詞語),那就把帶有這個詞語的請求攔截。

攔截可以在三個層次做。

(1)專用硬件

Web 服務器的前面可以架設硬件防火牆,專門過濾請求。這種效果最好,但是價格也最貴。

(2)本機防火牆

操作系統都帶有軟件防火牆,Linux 服務器一般使用 iptables。比如,攔截 IP 地址1.2.3.4的請求,可以執行下面的命令。

$ iptables -A INPUT -s 1.2.3.4 -j DROP

iptables 比較複雜,它對服務器性能有一定影響,也防不住大型攻擊。

(3)Web 服務器

Web 服務器也可以過濾請求。攔截 IP 地址1.2.3.4,nginx 的寫法如下。

location / {

deny 1.2.3.4;

}

Apache 的寫法是在.htaccess文件裡面,加上下面一段。

Require all granted

Require not ip 1.2.3.4

如果想要更精確的控制,比如自動識別並攔截那些頻繁請求的 IP 地址,就要用到 WAF。

Web 服務器的攔截非常消耗性能,尤其是 Apache。稍微大一點的攻擊,這種方法就沒用了。

第三步:帶寬擴容

上一節的 HTTP 攔截有一個前提,就是請求必須有特徵。但是,真正的 DDoS 攻擊是沒有特徵的,它的請求看上去跟正常請求一樣,而且來自不同的 IP 地址,所以沒法攔截。這就是為什麼 DDoS 特別難防的原因。

當然,這樣的 DDoS 攻擊的成本不低,普通的網站不會有這種待遇。不過,真要遇到了該怎麼辦呢,有沒有根本性的防範方法呢?

答案很簡單,就是設法把這些請求都消化掉。30個人的餐廳來了100人,那就想辦法把餐廳擴大(比如臨時再租一個門面,並請一些廚師),讓100個人都能坐下,那麼就不影響正常的用戶了。對於網站來說,就是在短時間內急劇擴容,提供幾倍或幾十倍的帶寬,頂住大流量的請求。這就是為什麼智安網絡作為雲服務商可以提供防護產品,因為他們有大量冗餘帶寬,可以用來消化 DDOS 攻擊。

第四步:CDN

CDN 指的是網站的靜態內容分發到多個服務器,用戶就近訪問,提高速度。因此,CDN 也是帶寬擴容的一種方法,可以用來防禦 DDOS 攻擊。

網站內容存放在源服務器,CDN 上面是內容的緩存。用戶只允許訪問 CDN,如果內容不在 CDN 上,CDN 再向源服務器發出請求。這樣的話,只要 CDN 夠大,就可以抵禦很大的攻擊。不過,這種方法有一個前提,網站的大部分內容必須可以靜態緩存。對於動態內容為主的網站(比如論壇),就要想別的辦法,儘量減少用戶對動態數據的請求。

其實鏡像服務器的本質就是自己搭建一個微型 CDN。各大雲服務商提供的高防 IP,背後也是這樣做的:網站域名指向高防 IP,它提供一個緩衝層,清洗流量,並對源服務器的內容進行緩存。

現在,智安的雲聯防設置高防IP就是提供不同節點的切換,如果發生攻擊,智安高防節點會自動切換。同時,還支持彈性防護購買。

智安網絡--智慧創造安全價值

雲安全產品全覆蓋

讓攻擊到此為止!

官網:https://www.unddos.com/


分享到:


相關文章: