使用Nginx、Nginx Plus抵御DDOS攻擊的方法

DDOS 是一種通過大流量的請求對目標進行轟炸式訪問,導致提供服務的服務器資源耗盡進而無法繼續提供服務的攻擊手段。這篇文章主要介紹了使用Nginx、Nginx Plus抵御DDOS攻擊的方法,感興趣的小伙伴們可以參考一下

DDOS 是一種通過大流量的請求對目標進行轟炸式訪問,導致提供服務的服務器資源耗盡進而無法繼續提供服務的攻擊手段。

一般情況下,攻擊者通過大量請求與連接使服務器處于飽和狀態,以至于無法接受新的請求或變得很慢。

一、應用層DDOS攻擊的特征

應用層(七層/HTTP層)DDOS 攻擊通常由木馬程序發起,其可以通過設計更好的利用目標系統的脆弱點。例如,對于無法處理大量并發請求的系統,僅僅通過建立大量的連接,并周期性的發出少量數據包來保持會話就可以耗盡系統的資源,使其無法接受新的連接請求達到 DDOS 的目的。其他還有采用發送大量連接請求發送大數據包的請求進行攻擊的形式。因為攻擊是由木馬程序發起,攻擊者可以在很短時間內快速建立大量的連接,并發出大量的請求。

以下是一些DDOS的特證,我們可以據此特征來抵抗 DDOS(包括但不限于):

攻擊經常來源于一些相對固定的 IP 或 IP 段,每個 IP 都有遠大于真實用戶的連接數和請求數。(備注:這并不表明這種請求都是代表著 DDOS 攻擊。在很多使用NAT的網絡架構中,很多的客戶端使用網關的 IP 地址訪問公網資源。但是,即便如此,這樣的請求數和連接數也會遠少于 DDOS 攻擊。) 因為攻擊是由木馬發出且目的是使服務器超負荷,請求的頻率會遠遠超過正常人的請求。 User-Agent 通常是一個非標準的值 Referer 有時是一個容易聯想到攻擊的值

二、使用Nginx、Nginx Plus抵抗DDOS攻擊

結合上面提到的 DDOS 攻擊的特征,Nginx、Nginx Plus有很多的特性可以用來有效的防御 DDOS 攻擊,可以從調整入口訪問流量和控制反向代理到后端服務器的流量兩個方面來達到抵御 DDOS 攻擊的目的。

限制請求速度

設置 Nginx、Nginx Plus 的連接請求在一個真實用戶請求的合理范圍內。比如,如果你覺得一個正常用戶每兩秒可以請求一次登錄頁面,你就可以設置 Nginx 每兩秒鐘接收一個客戶端 IP 的請求(大約等同于每分鐘30個請求)。

limit_req_zone?binaryremoteaddrzone=one:10mrate=30r/m;server...location/login.htmllimitreqzone=one;...‘limitreqzone‘命令設置了一個叫one的共享內存區來存儲請求狀態的特定鍵值,在上面的例子中是客戶端IP(binary_remote_addr zone=one:10m rate=30r/m; server { ... location /login.html { limit_req zone=one; ... } }`limit_req_zone` 命令設置了一個叫 one 的共享內存區來存儲請求狀態的特定鍵值,在上面的例子中是客戶端 IP(binaryr?emotea?ddrzone=one:10mrate=30r/m;server...location/login.htmllimitr?eqzone=one;...‘limitr?eqz?one‘命令設置了一個叫one的共享內存區來存儲請求狀態的特定鍵值,在上面的例子中是客戶端IP(binary_remote_addr)。location 塊中的?limit_req?通過引用 one 共享內存區來實現限制訪問 /login.html 的目的。

限制連接數量

設置 Nginx、Nginx Plus 的連接數在一個真實用戶請求的合理范圍內。比如,你可以設置每個客戶端 IP 連接 /store 不可以超過10個。

limit_conn_zone $binary_remote_addr zone=addr:10m; server { … location /store/ { limit_conn addr 10; … } }

limit_conn_zone?命令設置了一個叫 addr 的共享內存區來存儲特定鍵值的狀態,在上面的例子中是客戶端 IP( $binary_remote_addr)。location 塊中?limit_conn?通過引用 addr 共享內存區來限制到 /store/ 的最大連接數為10。

關閉慢連接

有一些 DDOS 攻擊,比如 Slowlris,是通過建立大量的連接并周期性的發送一些數據包保持會話來達到攻擊目的,這種周期通常會低于正常的請求。這種情況我們可以通過關閉慢連接來抵御攻擊。

文章來源:http://www.iis7.com/b/ssyqdq/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 《老男孩Linux運維》筆記 隱藏Nginx軟件版本號 一般來說,軟件的漏洞都和版本有關。因此要盡量隱藏對訪問用戶...
    Zhang21閱讀 3,700評論 0 28
  • 分布式拒絕服務攻擊(DDoS)指的是通過多臺機器向一個服務或者網站發送大量看似合法的數據包使其網絡阻塞、資源耗盡從...
    SkTj閱讀 1,913評論 0 3
  • CC攻擊可以歸為DDoS攻擊的一種。他們之間都原理都是一樣的,即發送大量的請求數據 來導致服務器拒絕服務,是一種連...
    大福技術閱讀 2,927評論 0 1
  • 古話:吃不窮,穿不窮,算計不到才受窮 真是精辟; 到了30歲以上,這話覺得是越來越對; 說說身邊的事,幾多感慨: ...
    大九斤閱讀 311評論 0 1
  • 這兩天看到朋友圈007的戰友發布的在敦煌游學的信息和圖片好生羨慕,想當初上個月我也是因為看到朋友發的關于眾籌...
    那年花好月正圓閱讀 256評論 0 0