Tcp連接的處理方法、裝置及系統的制作方法
【技術領域】
[0001]本發明涉及互聯網領域,具體而言,涉及一種TCP連接的處理方法、裝置及系統。
【背景技術】
[0002]SYN FLOOD攻擊是DDoS分布式拒絕服務攻擊中非常重要的一種手段。其擁有發動方法簡單且效果明顯等特點,能夠快速消耗服務器的性能,導致服務器的服務不可用。
[0003]SYN FLOOD攻擊利用了在建立TCP連接時的三次握手處理過程的協議脆弱的缺陷,發送大量偽造的TCP連接請求,使服務器維持大量的半開連接,從而使被攻擊服務器的資源耗盡,影響正常連接的建立。
[0004]在正常的通過TCP建立連接的處理過程當中,服務器在每收到一個SYN同步包之后,會在內核協議棧中創建一個連接表項,等待該連接后續的報文并做進一步處理。攻擊者往往通過偽造源IP,向服務器發起大量SYN同步包,每個SYN同步包都會使服務器創建一個處于SYN_RECV半連接狀態的連接表項,由于沒有后續的ACK報文,服務器無法完成TCP的三次握手,因此這些連接就會在一段時間內一直保持在SYN_RECV半連接狀態。當處于半連接狀態的連接數量達到一定程度之后,由于服務器為了維護一個非常龐大的半連接列表而消耗非常多的資源,因此,服務器對于正常連接的處理速度就變得很慢,甚至無法建立。
[0005]目前,在現有技術中常規的用于應對SYNFLOOD攻擊的防護方法,包括基于SYNC00KIE驗證的方式,在防護設備或者防護模塊收到SYN同步包后,并不將SYN同步包交給服務器,而是先確認發送SYN同步包的源IP客戶端是否能夠通過三次握手建立正常的連接,然后再把該IP的報文轉發給服務器。其具體的處理方式,一種是先回應SYN C00KIE,等后續的ACK驗證通過之后,把該源IP加白名單并把當前連接斷掉,由客戶端重新發起連接,由于已經加了白名單,該IP后續的報文會被轉發到服務器;另一種是做TCP代理,等SYN C00KIE驗證通過之后,由防護設備向服務器作為客戶端向服務器發起一個新的連接,并把客戶端的請求通過該連接轉到服務器。
[0006]上述現有的防護方法存在如下兩個弊端:
[0007]1、在通過ACK驗證之后利用白名單的方式,將使通過驗證的正常的客戶端連接中斷并且需要客戶端重新向服務器發起連接和請求,增大了響應時間,影響客戶體驗。
[0008]2、通過TCP代理的方式,防護設備需要同時維護大量處于連接狀態中的連接信息,并且還需要對TCP連接進行轉發,在對防護性能造成影響,也會增加響應延遲。
[0009]針對上述由于在對客戶端發送的TCP連接進行驗證后需要重新建立連接,導致的防護性能低、連接響應延遲的問題,目前尚未提出有效的解決方案。
【發明內容】
[0010]本發明實施例提供了一種TCP連接的處理方法、裝置及系統,以至少解決由于在對客戶端發送的TCP連接進行驗證后需要重新建立連接,導致的防護性能低、連接響應延遲的技術問題。
[0011]根據本發明實施例的一個方面,提供了一種TCP連接的處理系統,包括:防護設備,通過互聯網與客戶端建立通訊連接,用于接收客戶端發送的用于與服務器端建立TCP連接的連接報文,并判斷接收到的連接報文的報文類型,其中,當連接報文的報文類型為應答報文時,利用連接校驗信息對應答報文進行校驗,當應答報文校驗通過時,將應答報文轉發至服務器端設置的連接設備;連接設備,設置于服務器端,分別與客戶端和防護設備建立通訊連接,用于接收防護設備轉發的用于與服務器端建立TCP連接的連接報文,并判斷接收到的連接報文的報文類型,其中,當連接報文的報文類型為應答報文時,按照預先設置的校驗規則對應答報文進行校驗,當應答報文校驗通過時,利用應答報文與發送應答報文的客戶端建立TCP連接。
[0012]根據本發明實施例的另一方面,還提供了一種TCP連接的處理方法,應用于防護設備,包括:接收客戶端發送的用于與服務器端建立TCP連接的連接報文;判斷接收到的連接報文的報文類型,其中,連接報文的報文類型至少包括:同步報文和應答報文;當連接報文的報文類型為應答報文時,利用連接校驗信息對應答報文進行校驗,其中,連接校驗信息根據同步報文生成;當應答報文校驗通過時,將應答報文轉發至服務器端。
[0013]進一步地,當連接報文的報文類型為同步報文時,在判斷接收到的連接報文的報文類型之后,方法還包括:統計在預先設置的預定時間內,接收到同步報文的報文數量;判斷報文數量是否大于等于預先設置的閾值;當報文數量大于或等于閾值時,根據同步報文生成連接校驗信息;當報文數量小于閾值時,將同步報文轉發至服務器端。
[0014]進一步地,在當應答報文校驗通過之后,方法還包括:獲取發送應答報文的客戶端的第一客戶端地址;將第一客戶端地址保存至預先創建的客戶端地址表。
[0015]進一步地,在利用連接校驗信息對應答報文進行校驗之后,方法還包括:當應答報文校驗未通過時,獲取發送應答報文的客戶端的第二客戶端地址;將第二客戶端地址與客戶端地址表進行匹配;當第二客戶端地址與客戶端地址表中的地址匹配時,將應答報文轉發至服務器端;當第二客戶端地址與客戶端地址表中的地址不匹配時,丟棄應答報文。
[0016]根據本發明實施例的另一方面,還提供了一種TCP連接的處理裝置,包括:應用于防護設備,包括:第一接收模塊,用于接收客戶端發送的用于與服務器端建立TCP連接的連接報文;第一判斷模塊,用于判斷接收到的連接報文的報文類型,其中,連接報文的報文類型至少包括:同步報文和應答報文;第一校驗模塊,用于當連接報文的報文類型為應答報文時,利用連接校驗信息對應答報文進行校驗,其中,連接校驗信息根據同步報文生成;第一轉發模塊,用于當應答報文校驗通過時,將應答報文轉發至服務器端。
[0017]進一步地,裝置還包括:統計模塊,用于統計在預先設置的預定時間內,接收到同步報文的報文數量;第二判斷模塊,用于判斷報文數量是否大于等于預先設置的閾值;生成模塊,用于當報文數量大于或等于閾值時,根據同步報文生成連接校驗信息;第二轉發模塊,用于當報文數量小于閾值時,將同步報文轉發至服務器端。
[0018]進一步地,裝置還包括:第一獲取模塊,用于獲取發送應答報文的客戶端的第一客戶端地址;存儲模塊,用于將第一客戶端地址保存至預先創建的客戶端地址表。
[0019]進一步地,裝置還包括:第二獲取模塊,用于當應答報文校驗未通過時,獲取發送應答報文的客戶端的第二客戶端地址;匹配模塊,用于將第二客戶端地址與客戶端地址表進行匹配;第三轉發模塊,用于當第二客戶端地址與客戶端地址表中的地址匹配時,將應答報文轉發至服務器端;丟棄模塊,用于當第二客戶端地址與客戶端地址表中的地址不匹配時,丟棄應答報文。
[0020]根據本發明實施例的另一方面,還提供了一種TCP連接的處理方法,應用于服務器端,包括:接收防護設備轉發的用于與服務器端建立TCP連接的連接報文;判斷接收到的連接報文的報文類型,其中,連接報文的報文類型至少包括:同步報文和應答報文;當連接報文的報文類型為應答報文時,按照預先設置的校驗規則對應答報文進行校驗;當應答報文校驗通過時,利用應答報文與發送應答報文的客戶端建立TCP連接。
[0021]根據本發明實施例的另一方面,還提供了一種TCP連接的處理裝置,包括:應用于服務器端,包括:第二接收模塊,用于接收防護設備轉發的用于與服務器端建立TCP連接的連接報文;第三判斷模塊,用于判斷接收到的連接報文的報文類型,其中,連接報文的報文類型至少包括:同步報文和應答報文;第二校驗模塊,用于當連接報文的報文類型為應答報文時,按照預先設置的校驗規則對應答報文進行校驗;第一連接模塊,用于當應答報文校驗通過時,利用應答報文與發送應答報文的客戶端建立TCP連接。
[0022]在本發明實施例中,采用接收客戶端發送的用于與服務器端建立TCP連接的連接報文;判斷接收到的連接報文的報文類型,其中,連接報文的報文類型至少包括:同步報文和應答報文;當連接報文的報文類型為應答報文時,利用連接校驗信息對應答報文進行校驗,其中,連接校驗信息根據同步報文生成;當應答報文校驗通過時,將應答報文轉發至服務器端的方式,達到了對SYN FLOOD攻擊進行防護的目的,從而實現了提升對SYN FLOOD攻擊進行防護的防護性能的技術效果,進而解決了由于在對客戶端發送的TCP連接進行驗證后需要重新建立連接,導致的防護性能低、連接響應延遲的技術問題。
【附圖說明】
[0023]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0024]圖1是根據本申請實施例的