syn是tcp三次握手的第乙個。
tcp連線的第乙個包,非常小的一種資料報。syn攻擊包括大量此類的包,由於這些包看上去來自實際不存在的站點,因此無法有效進行處理。
當兩台計算機在tcp連線上進行會話時,連線一定會首先被初始化。完成這項任務的包叫作syn。乙個syn包簡單的表明另一台計算機已經做好了會話的準 備。只有發出服務請求的計算機才傳送syn包。所以如果你僅拒絕進來的syn包,它將終止其它計算機開啟你計算機上的服務,但是不會終止你使用其它計算機 上的服務,如果它沒有拒絕你傳送的syn包的話。
syn攻擊
本文介紹了4個概念
一:介紹syn
二:什麼是syn洪水攻擊
三:什麼是syn cookie
四:什麼是syn cookie防火牆
c=client(客戶器)
s=server(伺服器)
fw=firewall(防火牆)
一:介紹syn
syn cookie是乙個防止syn洪水攻擊技術。他由d. j. bernstein和eric schenk發明。現在syn cookie已經是linux核心的一部分了(我插一句,預設的stat是no),但是在linux系統的執行過程中它只保護linux系統。我們這裡只 是說建立乙個linux防火牆,他可以為整個網路和所有的網路作業系統提供syn cookie保護你可以用這個防火牆來阻斷半開放式tcp連線,所以這個受保護的系統不會進入半開放狀態(tcp_syn_recv)。當連線完全建立的 時候,客戶機到伺服器的連線要通過防火牆來中轉完成。
二:什麼是syn洪水攻擊?(來自cert的警告)
當乙個系統(我們叫他客戶端)嘗試和乙個提供了服務的系統(伺服器)建立tcp連線,c和服務端會交換一系列報文。
這種連線技術廣泛的應用在各種tcp連線中,例如telnet,web,email,等等。首先是c傳送乙個syn報文給服務端,然後這個服務端傳送乙個 syn-ack包以回應c,接著,c就返回乙個ack包來實現一次完整的tcp連線。就這樣,c到服務端的連線就建立了,這時c和服務端就可以互相交換數 據了。下面是上文的說明:)
client server
------ ------
syn-------------------->
<--------------------syn-ack
ack-------------------->
client and server can now
send service-specific data
在s返回乙個確認的syn-ack包的時候有個潛在的弊端,他可能不會接到c回應的ack包。這個也就是所謂的半開放連線,s需要耗費一定的數量的系統內 存來等待這個未決的連線,雖然這個數量是受限的,但是惡意者可以通過建立很多的半開放式連線來發動syn洪水攻擊 。通過ip欺騙可以很容易的實現半開放連線。攻擊者傳送syn包給受害者系統,這個看起來是合法的,但事實上所謂的c根本不會回應這個 。
syn-ack報文,這意味著受害者將永遠不會接到ack報文。
而此時,半開放連線將最終耗用受害者所有的系統資源,受害者將不能再接收任何其他的請求。通常等待ack返回包有超時限制,所以半開放 。連線將最終超時,而受害者系統也會自動修復。雖然這樣,但是在受害者系統修復之前,攻擊者可以很容易的一直傳送虛假的syn請求包來持續攻擊。在大多數 情況下,受害者幾乎不能接受任何其他的請求,但是這種攻擊不會影響到已經存在的進站或者是出站連線。雖然這樣,受害者系統還是可能耗盡系統資源,以導致其 他種種問題。
攻擊系統的位置幾乎是不可確認的,因為syn包中的源位址多數都是虛假的。當syn包到達受害者系統的時候,沒有辦法找到他的真實位址,因為在基於源位址的資料報傳輸中,源ip過濾是唯一可以驗證資料報源的方法。
三:什麼是syn cookie?
syn cookie就是用乙個cookie來響應tcp syn請求的tcp實現,根據上面的描述,在正常的tcp實現中,當s接收到乙個syn資料報,他返回乙個syn-ack包來應答,然後進入tcp- syn-recv(半開放連線)狀態來等待最後返回的ack包。s用乙個資料空間來描述所有未決的連線,然而這個資料空間的大小是有限的,所以攻擊者將塞 滿這個空間。
在tcp syn cookie的執行過程中,當s接收到乙個syn包的時候,他返回乙個syn-ack包,這個資料報的ack序列號是經過加密的,也就是說,它由源位址, 埠源次序,目標位址,目標埠和乙個加密種子計算得出。然後s釋放所有的狀態。如果乙個ack包從c返回,s將重新計算它來判斷它是不是上個syn- ack的返回包。如果這樣,s就可以直接進入tcp連線狀態並開啟連線。這樣,s就可以
避免守侯半開放連線了。
以上只是syn cookie的基本思路,它在應用過程中仍然有許多技巧。請在前幾年的kernel郵件列表檢視archive of discussions的相關詳細
內容。4,什麼是syn cookie 防火牆
syn cookie 防火牆是syn cookie的乙個擴充套件,syn cookie是建立在tcp堆疊上的,他為linux作業系統提供保護。syn cookie防火牆是linux的
一大特色,你可以使用乙個防火牆來保護你的網路以避免遭受syn洪水攻擊。
下面是syn cookie防火牆的原理
client firewall server
------ ---------- ------
1. syn----------- - - - - - - - - - ->
2. <------------syn-ack(cookie)
3. ack----------- - - - - - - - - - ->
4. - - - - - - -syn--------------->
5. <- - - - - - - - - ------------syn-ack
6. - - - - - - -ack--------------->
7. -----------> relay the ------->
<----------- connection <-------
1:乙個syn包從c傳送到s
2:防火牆在這裡扮演了s的角色來回應乙個帶syn cookie的syn-ack包給c
3:c傳送ack包,接著防火牆和c的連線就建立了。
4:防火牆這個時候扮演c的角色傳送乙個syn給s
5:s返回乙個syn給c
6:防火牆扮演c傳送乙個ack確認包給s,這個時候防火牆和s的連線也就建立了
7:防火牆**c和s間的資料
如果系統遭受syn flood,那麼第三步就不會有,而且無論在防火牆還是s都不會收到相應在第一步的syn包,所以我們就擊退了這次syn洪水攻 擊。
SYN 洪氾攻擊以及如何解決SYN 洪氾攻擊
在三次握手的過程中,伺服器為了響應乙個受到的syn報文段,會分配並初始化連線變數和快取,然後伺服器傳送乙個synack報文段進行響應,並等待客戶端的ack報文段。如果客戶不傳送ack來完成該三次握手的第三步,最終 通常在一分多鐘之後 伺服器將終止該半開連線並 資源。這種tcp連線管理協議的特性就會有...
CC攻擊 DDOS攻擊和SYN攻擊以及防禦
cc攻擊主要攻擊 頁面的,cc攻擊的原理就是攻擊者控制一些虛擬ip不停地發大量資料報給對方伺服器造成伺服器資源耗盡 ddos攻擊有稱為洪水攻擊,ddos攻擊原理就是攻擊者對網路資源傳送過量資料,導致伺服器無法正常執行 syn攻擊又稱為小包攻擊,syn攻擊的原理就是syn它利用tcp協議缺陷,通過傳送...
Linux系統不響應SYN包的解決辦法
關於syn為什麼沒有回應的問題真是鬱悶了好久。現象就是在客戶端發出syn包的時候,伺服器端對客戶端的syn包不做任何回應。在網上逛了逛,終於找到有人也發生了這樣的情況,發生的原因解釋如下 當客戶端發出的syn包帶有時間戳的情況下,經過nat轉換後,如果使用的埠被之前使用過,而且時間戳大於本次syn包...