SYN_RECV的奇怪連線
SYN攻擊是最常見又最容易被利用的一種攻擊手法。還記得2000年YAHOO網站遭受的攻擊事例,當時黑客利用的就是簡單而有效的SYN攻擊,有些網絡蠕蟲病毒配合SYN攻擊DDOS的破壞。
TCP握手協議在TCP/IP協議中,TCP協議提供可靠的連接服務,採用三次握手建立一個連接。 第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認; 第二次握手:服務器收到syn包,必須確認客戶的SYN(ack= j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態; 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
SYN_RECV 表示正在等待處理的請求數;ESTABLISHED 表示正常數據傳輸狀態;TIME_WAIT 表示處理完畢,等待超時結束的請求數。
SYN_RECV是指,服務端被動開啟後,接收到了客戶端的SYN並且傳送了ACK時的狀態。再進一步接收到客戶端的ACK就進入ESTABLISHED狀態。
TCP SYN Flood是一種常見,而且有效的遠端(遠程)拒絕服務(Denial of Service)攻擊方式,它透過一定的操作破壞TCP三次握手建立正常連線,佔用並耗費系統資源,使得提供TCP服務的主機系統無法正常工作。
tcp_synack_retries默認為5,表示重發5次,每次等待30~40秒,即“半連接”默認hold住大約180秒。
tcp6 0 0 120.115.2.158:80 45.56.69.15:35842 SYN_RECV -
tcp6 0 0 120.115.2.158:80 45.56.69.15:49813 SYN_RECV -
tcp6 0 0 120.115.2.158:80 149.255.109.168:44657 SYN_RECV -
tcp6 0 0 120.115.2.158:80 149.248.55.130:14794 SYN_RECV -
tcp6 0 0 120.115.2.158:80 149.248.55.130:18994 SYN_RECV - 被攻擊了半連接=>hold住180秒,服務器遭受到大量的大量SYN_RECV,80port佔死,網站打不開
最簡易處理方式
echo 1 > /proc/sys/net/ipv4/tcp_synack_retries
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
256
firewall處理並log:
根據log可以找到有問題的ip

經由log紀錄,此段C class的網段(美國ip)須封鎖
TCP洪水攻擊還沒完美解決方案
Last updated
Was this helpful?