SYN_RECV處理方案

簡介

SYN_RECV是指,服務端被動打開後,接收到了客戶端的SYN並且發送了ACK時的狀態。再進一步接收到客戶端的ACK就進入ESTABLISHED狀態。
TCP SYN Flood是一種常見,而且有效的遠端(遠程)拒絕服務(Denial of Service)***方式,它透過一定的操作破壞TCP三次握手建立正常連接,佔用並耗費系統資源,使得提供TCP服務的主機系統無法正常工作。由於TCP SYN Flood是透過網路底層對服務器Server進行***的,它可以在任意改變自己的網路IP地址的同時,不被網路上的其他設備所識別,這樣就給防範網路犯罪部門追查犯罪來源造成很大的困難。在國內外的網站中,這種***屢見不鮮。在一個拍賣網站上,曾經有犯罪分子利用這種手段,在低價位時阻止其他用戶繼續對商品拍賣,干擾拍賣過程的正常運作。

簡單判斷是否SYN_RECV

一般情況下,可以一些簡單步驟進行檢查,來判斷系統是否正在遭受TCP SYN Flood***。
1、 服務端無法提供正常的TCP服務。連接請求被拒絕或超時。
2、透過 netstat -an 命令檢查系統,發現有大量的SYN_RECV連接狀態。
檢查服務器鏈接,SYN_RECV狀態最高時有200多個,訪問服務器網頁特別慢,甚至超時,所以基本判定是SYN_RECV***。

緩解處理方案(只是延緩了 治標不治本)

 增加隊列長度
 啓動syn_cookies
     net.ipv4.tcp_syncookies = 1
     net.ipv4.tcp_synack_retries = 2  
     net.ipv4.tcp_max_syn_backlog = 65536

iptables花式拒絕

-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT
-A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章