對于遭受DDOS攻擊的情況是讓人很尷尬的,如果我們有良好的DDoS防御方法,那么很多問題就將迎刃而解,我們來看看我們有哪些常用的有效地方法來做好DDoS防御呢。

對于DDoS防御的理解:

對付DDOS是一個系統工程,想僅僅依靠某種系統或產品防住DDOS是不現實的,可以肯定的是,完全杜絕DDOS目前是不可能的,但通過適當的措施抵御90%的DDoS攻擊是可以做到的, 基于攻擊和防御都有成本開銷的緣故,若通過適當的辦法增強了抵御DDOS的能力,也就意味著加大了攻擊者的攻擊成本,那么絕大多數攻擊者將無法繼續下去而放棄,也就相當于成功的抵御了DDoS攻擊。

舉個例子:

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

很不幸,我得罪了一個流氓。他派出300個人同時涌進餐廳。這些人看上去跟正常的顧客一樣,每個都說"趕快上餐"。但是,餐廳的容量只有30個人, 根本不可能同時滿足這么多的點餐需求,加上他們把門口都堵死了,里三層外三層,正常用餐的客人根本進不來,實際上就把餐廳癱瘓了。

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

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

DDoS防御的方法:

1. 采用高性能的網絡設備

首先要保證網絡設備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設備的時候要盡量選用知名度高、口碑好的產品。再就是假如和網絡提供商有特殊關系或協議的話就更好了, 當大量攻擊發生的時候請他們在網絡接點處做一下流量限制來對抗某些種類的DDoS攻擊是非常有效的。

這就是傳說中的技術不夠,用錢湊。

2. 盡量避免NAT的使用

無論是路由器還是硬件防護墻設備要盡量避免采用網絡地址轉換NAT的使用,因為采用此技術會較大降低網絡通信能力,其實原因很簡單,因為NAT需要對 地址來回轉換,轉換過程中需要對網絡包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。

3. 充足的網絡帶寬保證

網絡帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現在的SYNFlood攻擊,當前至少要選擇100M的共享帶寬, 最好的當然是掛在1000M的主干上了。但需要注意的是,主機上的網卡是1000M的并不意味著它的網絡帶寬就是千兆的,若把它接在100M的交換機上,它的實際帶寬不會超過100M, 再就是接在100M的帶寬上也不等于就有了百兆的帶寬,因為網絡服務商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。

4. 升級主機服務器硬件

在有網絡帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包,服務器的配置至少應該為:P4 2.4G/DDR512M/SCSI-HD, 起關鍵作用的主要是CPU和內存,若有志強雙CPU的話就用它吧,內存一定要選擇DDR的高速內存,硬盤要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價, 再就是網卡一定要選用3COM或Intel等名牌的,若是Realtek的還是用在自己的PC上吧。

5. 把網站做成靜態頁面或者偽靜態

大量事實證明,把網站盡可能做成靜態頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,至少到現在為止關于HTML的溢出還沒出現,看看吧!新浪、搜狐、 網易等門戶網站主要都是靜態頁面,若你非需要動態腳本調用,那就把它弄到另外一臺單獨主機去,免的遭受攻擊時連累主服務器,當然,適當放一些不做數據庫調用腳本還是可以的,此外, 最好在需要調用數據庫的腳本中拒絕使用代理的訪問,因為經驗表明使用代理訪問你網站的80%屬于惡意行為。

6. 增強操作系統的TCP/IP棧

Win2000和Win2003作為服務器操作系統,本身就具備一定的抵抗DDoS攻擊的能力,只是默認狀態下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包, 若沒有開啟則僅能抵御數百個,具體怎么開啟,自己去看微軟的文章吧!《強化 TCP/IP 堆棧安全》。

7. 安裝專業抗DDOS防火墻

8. HTTP 請求的攔截

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

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

9. 備份網站

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

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

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

10. 部署CDN

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

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

各大云服務商提供的高防 IP,背后也是這樣做的:網站域名指向高防 IP,它提供一個緩沖層,清洗流量,并對源服務器的內容進行緩存。

這里有一個關鍵點,一旦上了 CDN,千萬不要泄露源服務器的 IP 地址,否則攻擊者可以繞過 CDN 直接攻擊源服務器,前面的努力都白費。搜一下"繞過 CDN 獲取真實 IP 地址",你就會知道國內的黑產行業有多猖獗。

11. 其他防御措施

以上幾條對抗DDoS建議,適合絕大多數擁有自己主機的用戶,但假如采取以上措施后仍然不能解決DDoS問題,就有些麻煩了,可能需要更多投資, 增加服務器數量并采用DNS輪巡或負載均衡技術,甚至需要購買七層交換機設備,從而使得抗DDoS攻擊能力成倍提高,只要投資足夠深入。


返回首頁>>