TCP SYN Flood是一種常見,而且有效的遠(yuǎn)端(遠(yuǎn)程)拒絕服務(wù)(Denial of Service)攻擊方式,它透過一定的操作破壞TCP三次握手建立正常連接,占用并耗費(fèi)系統(tǒng)資源,使得提供TCP服務(wù)的主機(jī)系統(tǒng)無法正常工作。
一、如何判斷
1、服務(wù)端無法提供正常的TCP服務(wù)。連接請(qǐng)求被拒絕或超時(shí)。
2、透過 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'命令檢查系統(tǒng),發(fā)現(xiàn)有大量的SYN_RECV連接狀態(tài)。
檢查服務(wù)器鏈接,SYN_RECV數(shù)量異常,訪問服務(wù)器網(wǎng)頁特別慢,甚至超時(shí),所以基本判定是SYN_RECV攻擊。
二、解決方法
1,增加未完成連接隊(duì)列(q0)的最大長(zhǎng)度。
echo1280>;/proc/sys/net/ipv4/tcp_max_syn_backlog
2, 啟動(dòng)SYN_cookie。
echo 1>;/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.yp.to/syncookies.html
也許使用mod_limitipconn.c來限制apache的并發(fā)數(shù)也會(huì)有一定的幫助。
2. iptables的設(shè)置,引用自CU
防止同步包洪水(Sync Flood)
# iptables -A FORWARD -p tcp –syn -m limit –limit1/s -j ACCEPT
也有人寫作
#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-flagsSYN,ACK,F(xiàn)IN,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
下一篇:常見病毒ACL