1、動態(tài)刪除連接表項
在BIG IP遭受DDOS攻擊時,一個最常見的資源消耗就是內存。在默認配置下,當BIG IP的內存使用達到97%的時候,BIG IP就會自動進行重啟,以恢復自身的正常運行。
在一個HA的組里,則此時由備機接管繼續(xù)提供服務。當然,這是最糟糕的情況,在達到這個狀態(tài)前,在BIG IP的全局配置中,有兩個重要的和安全相關參數設置來避免內存耗盡。
這兩個參數就是Low Water Mark和High Water Mark。當系統(tǒng)的內存占用超過Low Water Mark的設定值的時候,BIGIP將開始刪除在連接表中最“老”的連接表項,也就是最接近達到idel time out定義時間的表項,但此時BIGIP仍然接收新的連接建立。當系統(tǒng)內存占用超過HighWater Mark的時候,BIG IP將不再接收新的連接,并且刪除老的連接,直到系統(tǒng)的內存占用達到Low Water Mark的設定值為止。
2、 SYN Cookie啟動閥值
在四層工作模式下,可以直接啟動SYN Cookie對SYN 攻擊進行防護,但在全代理工作模式下,如果對每一個SYN包都建立一個連接表項,在SYN攻擊足夠強烈的時候,BIGIP自身的內存也將會被迅速充滿進入連接刪除或者重啟狀態(tài)。
但如果系統(tǒng)在正常工作下,啟用SYN Cookie會帶來額外的CPU計算損耗。因此,在全代理模式下,可以通過設置SYN Thrash Hold的值來動態(tài)的啟用SYN Cookie進行SYN攻擊防護。
當系統(tǒng)中沒有進入正常三次握手連接的表項的數量,也就是在SYN-RECEIVED狀態(tài)的連接達到設定值,則對后續(xù)的新建連接進行SYN Cookie處理。這樣,對新建的連接,就不再直接添加新的連接表項而只有通過SYN Cookie驗證后,再建立連接表項進行處理。保證正常的客戶訪問可以持續(xù)。
3、最大拒絕包發(fā)送速率
在默認狀態(tài)下,BIGIP將對發(fā)送到非VS端口的數據包、超時的連接、命中VS但沒有對應連接表項的請求回應RST包進行拒絕。但如果在DDOS發(fā)生的時候,這種RST包的響應也會耗費很多的CPU資源。因此,在BIGIP中,可以通過DB 參數TM.MaxRejectRate來設置每秒鐘回應的RST包的數量,以節(jié)省系統(tǒng)資源,保證系統(tǒng)可用性。
4、最大ICMP請求回應速率
在遭遇ICMP Flood的時候,BIGIP也是通過全局設定的DB參數TM.MaxICMPRate來限制整臺設備可以響應的ICMP回應速率,以減小本身的性能損 耗。需要注意的是,這個設定的默認值為250/秒,在一些網絡設備執(zhí)行高速ping檢查的時候,由于該功能啟用,會在對端發(fā)現有丟包現象。如果一定要進行 驗證,需要調高這個參數。
除了上述全局的參數設置外,TCP/UDP超時時間設定和TCP-Profile-延遲接收連接也非常重要。
TCP/UDP超時時間設定:TCP/UDP超時時間主要用于設定在一個連接中,有多長時間沒有數據進行傳輸,則將該連接從連接表項中刪除,并向客 戶端和服務器端分別發(fā)送RST包。減小超時時間設定,將有助于減小BIGIP的內存消耗。例如默認值為300秒,而針對大部分的HTTP應用,該值可以調 整到90秒或者60秒以下,以使BIGIP可以更快的回收內存空間占用而不影響業(yè)務運行。但對一些長連接應用,則需要根據應用的實際需求進行設定。
TCP-Profile-延遲接收連接:在TCP Profile中,還有一個重要安全相關參數就是Defered Accept,默認為關閉狀態(tài),當該參數開啟時,BIGIP對所有的請求在三次握手建立完成后,并不開啟完整的連接表項,只是簡單的記錄該連接狀態(tài)。只有在客戶端或者Pool Member之間開始有數據傳輸的時候,才開始建立正式的連接表項。