如何使用Nginx對抗DDoS攻擊?

時不時的就有客戶會被DDoS一下。不少時候攻擊很簡單也容易封堵,可是攻擊的目標是應用的時候就更難防護。在這裏雲端衛士介紹一下使用Nginx做爲代理過濾器來封堵一些這種攻擊。前端

Apache DDoS攻擊web

攻擊Apache或者任何其餘的HTTP服務器並不須要大量流量。有些服務器可能1 Mbit流量就宕機了。正確頁面上的正確請求會生成巨大的負載,致使服務器過載。應用設計、阿帕奇配置和其餘的因素都會對這種相對較低水平的流量宕機做出貢獻。固然也有辦法可以對抗DDoS攻擊。好比使用Nginx,做爲HTTP服務器的替代品用來處理流量。數據庫

用Nginx對抗DDoS安全

在這裏再也不介紹怎麼設置Nginx做爲反向代理系統,從而起到對抗DDoS攻擊的做用。若是想本身作作看的,有不少在線的教程能夠參考。這裏要分享的是使用Nginx的結果,以及一些高級的技巧。服務器

Nginx做爲反向代理併發

因爲一些技術內部組件,Nginx一般比Apache更擅長處理高併發。在不少案例中,咱們在Apache系統的前端部署Nginx做爲反向代理服務器。經過在Nginx中調整變量,一般能夠抵抗住更小的攻擊。若是攻擊更大的話,可能就須要在Nginx中採用IP之地、用戶代理、國籍或者其餘的數據過濾流量。也能夠將這些流量完全丟掉,就永遠不會到達web服務器了。curl

服務器靜態頁面高併發

若是攻擊的目標是腳本或者數據庫驅動頁面,服務器或者數據庫可能很快就過載。首先能夠作的就是建立這個頁面的靜態版本:1.在安全的地方作一個鏡像2.將真正的腳本轉移到一個替代命名3.設置一個副本用來使用wgetcurl,從而在須要間隔建立該頁面的靜態版本。網站

就算你的副本每分鐘都在運行,這樣也比運行腳本致使的數據庫受到的攻擊少得多。這也是一種快速且更易於實現的方式來顯著提高頁面可擴展性的方法。ui

來自Nginx的服務器目標頁面

還有一些案例中,幾個頁面的Apache每秒收到了2000多個請求。即使採用靜態頁面的技巧以及用Nginx做爲反向代理,系統仍舊處於困境。

這種案例中,攻擊者攻擊具體的頁面,能夠將這些頁面的靜態副本轉移到Nginx代理。使用位置定向,能夠設置Nginx來處理這些文件,好處就是如今的Nginx代理正在處理大多數的負載,而Apache服務器則在作該作的。

採用RAM磁盤

還可使用/dev/shm (RAM) 做爲靜態文件的位置。經過將目標文件從主服務器轉移到Nginx反向代理,從RAM服務他們,就可以在最低限度的硬件上處理每秒1000個請求,這樣作減小了磁盤的IO問題,能夠快速服務正常業務。

用戶代理封堵

咱們發現超過60%的攻擊都有具體的用戶代理。這個用戶代理大部分都獨一無二。這個用戶代理能夠識別極少的合法流量。

Nginx的過濾技術發送500 error到任何使用用戶代理的客戶端。就能夠選擇性的減小流量或者重定向流量。這樣作的確會有一些攻擊變化。

IP封堵

別忘了IP信息報過濾系統或者防火牆。在一些案例中,須要更爲嚴厲的舉措。好比,咱們能夠鎖定具體的國家,將其流量過濾掉。這樣作就可以減小75%的攻擊,剩下的就更易於處理,而且保證網站的正常運行。

這些僅僅是一些雕蟲小技,想必每一位抗戰在DDoS一線的戰士都有本身的一些心得體會。在一些出租設備上,對於HTTP的DDoS攻擊很難封堵,也難以部署本身的過濾設備。如今也有不少新的DDoS防禦服務出現,能夠供選擇。

相關文章
相關標籤/搜索