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

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

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

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

一、應用層DDOS攻擊的特征

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

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

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

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

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

限制請求速度

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

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

限制連接數(shù)量

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

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

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

關閉慢連接

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

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

推薦閱讀更多精彩內容

  • DDOS 是一種通過大流量的請求對目標進行轟炸式訪問,導致提供服務的服務器資源耗盡進而無法繼續(xù)提供服務的攻擊手段。...
    03ngnntds閱讀 224評論 0 0
  • 《老男孩Linux運維》筆記 隱藏Nginx軟件版本號 一般來說,軟件的漏洞都和版本有關。因此要盡量隱藏對訪問用戶...
    Zhang21閱讀 3,700評論 0 28
  • 分布式拒絕服務攻擊(DDoS)指的是通過多臺機器向一個服務或者網(wǎng)站發(fā)送大量看似合法的數(shù)據(jù)包使其網(wǎng)絡阻塞、資源耗盡從...
    SkTj閱讀 1,913評論 0 3
  • 伴隨著南云國主一聲‘好’字,殿廳內原本愣愣的一眾人等個個也反應過來,不能怪他們,實在是剛才圓鏡上顯現(xiàn)的場景實在太過...
    im喵小姐閱讀 717評論 0 0
  • 風水學認為,住宅的大小、方位、用材、格局、顏色都顯示出人類認識自然、利用自然、改造自然和順應自然的法則。合和工作室...
    合和工作室閱讀 332評論 0 0