DDOS之TCP SYN Flood解決方式收集

       TCP SYN Flood是一種常見,並且有效的遠端(遠程)拒絕服務(Denial of Service)***方式,它透過必定的操做破壞TCP三次握手創建正常鏈接,佔用並耗費系統資源,使得提供TCP服務的主機系統沒法正常工做。html

1、如何判斷apache

1、服務端沒法提供正常的TCP服務。鏈接請求被拒絕或超時。服務器

2、透過 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'命令檢查系統,發現有大量的SYN_RECV鏈接狀態。cookie

檢查服務器連接,SYN_RECV數量異常,訪問服務器網頁特別慢,甚至超時,因此基本斷定是SYN_RECV***。併發

2、解決方法tcp

1,增長未完成鏈接隊列(q0)的最大長度。ide

echo1280>/proc/sys/net/ipv4/tcp_max_syn_backlogspa

2, 啓動SYN_cookie。htm

echo 1>/proc/sys/net/ipv4/tcp_syncookies隊列

這些是被動的方法,治標不治本。並且加大了服務器的負擔,可是能夠避免被拒絕***(只是減緩)

治本的方法是在防火牆上作手腳。可是如今能在必定程度上防住syn flood***的防火牆都不便宜。而且把這個命令加入"/etc/rc.d/rc.local"文件中

若是對 /proc/sys/net/ipv4 下的配置文件進行解釋,能夠參閱 LinuxAid技術站的文章。查看本文全文也能夠參閱。

關於 syn cookies, 請參閱 <>http://cr.yp.to/syncookies.html

也許使用mod_limitipconn.c來限制apache的併發數也會有必定的幫助。

2. iptables的設置,引用自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併發數每秒1次,能夠根據本身的須要修改

防止各類端口掃描

# iptables -A FORWARD -p tcp --tcp-flagsSYN,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

來源於百度百科

相關文章
相關標籤/搜索