TCP三次握手SYN_RECV

2016年6月22日14:36:40 發(fā)表評(píng)論 4,700 ℃

SYN_RECV是指,服務(wù)端被動(dòng)打開(kāi)后,接收到了客戶端的SYN并且發(fā)送了ACK時(shí)的狀態(tài)。再進(jìn)一步接收到客戶端的ACK就進(jìn)入ESTABLISHED狀態(tài)。

TCP SYN Flood是一種常見(jiàn),而且有效的遠(yuǎn)端(遠(yuǎn)程)拒絕服務(wù)(Denial of Service)攻擊方式,它透過(guò)一定的操作破壞TCP三次握手建立正常連接,占用并耗費(fèi)系統(tǒng)資源,使得提供TCP服務(wù)的主機(jī)系統(tǒng)無(wú)法正常工作。由于TCP SYN Flood是透過(guò)網(wǎng)路底層對(duì)服務(wù)器Server進(jìn)行攻擊的,它可以在任意改變自己的網(wǎng)路IP地址的同時(shí),不被網(wǎng)路上的其他設(shè)備所識(shí)別,這樣就給防范網(wǎng)路犯罪部門追查犯罪來(lái)源造成很大的困難。在國(guó)內(nèi)內(nèi)外的網(wǎng)站中,這種攻擊屢見(jiàn)不鮮。在一個(gè)拍賣網(wǎng)站上,曾經(jīng)有犯罪分子利用這種手段,在低價(jià)位時(shí)阻止其他用戶繼續(xù)對(duì)商品拍賣,干擾拍賣過(guò)程的正常運(yùn)作。

如何判斷

一般情況下,可以一些簡(jiǎn)單步驟進(jìn)行檢查,來(lái)判斷系統(tǒng)是否正在遭受TCP SYN Flood攻擊。

1.服務(wù)端無(wú)法提供正常的TCP服務(wù)。連接請(qǐng)求被拒絕或超時(shí)。

2.透過(guò) netstat -an 命令檢查系統(tǒng),發(fā)現(xiàn)有大量的SYN_RECV連接狀態(tài)。

檢查服務(wù)器鏈接,SYN_RECV狀態(tài)最高時(shí)有200多個(gè),訪問(wèn)服務(wù)器網(wǎng)頁(yè)特別慢,甚至超時(shí),所以基本判定是SYN_RECV攻擊。

解決方法

這個(gè)攻擊的解決方法如下:

1.增加未完成連接隊(duì)列(q0)的最大長(zhǎng)度。

echo 1280 /proc/sys/net/ipv4/tcp_max_syn_backlog

2.啟動(dòng)SYN_cookie。

echo /proc/sys/net/ipv4/tcp_syncookies

這些是被動(dòng)的方法,治標(biāo)不治本。而且加大了服務(wù)器的負(fù)擔(dān),但是可以避免被拒絕攻擊(只是減緩)。

治本的方法是在防火墻上做手腳,但是現(xiàn)在能在一定程度上防住syn flood攻擊的防火墻都不便宜。并且把這個(gè)命令加入"/etc/rc.d/rc.local"文件中

如果對(duì) /proc/sys/net/ipv4 下的配置文件進(jìn)行解釋,可以參閱 LinuxAid技術(shù)站的文章。查看本文全文也可以參閱。

關(guān)于 syn cookies, 請(qǐng)參閱 http://cr點(diǎn)yp點(diǎn)to/syncookies.html

也許 使用mod_limitipconn.c來(lái)限制apache的并發(fā)數(shù) 也會(huì)有一定的幫助。

iptables的設(shè)置,引用自CU

防止同步包洪水(Sync Flood)

#iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

也有人寫(xiě)作

#iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT

--limit 1/s 限制syn并發(fā)數(shù)每秒1次,可以根據(jù)自己的需要修改

防止各種端口掃描

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Ping洪水攻擊(Ping of Death)

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫(kù)、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評(píng)論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: