1. 程式人生 > >Linux安全之SYN攻擊原理及其應對措施

Linux安全之SYN攻擊原理及其應對措施

TCP自從1974年被髮明出來之後,歷經30多年發展,目前成為最重要的網際網路基礎協議,但TCP協議中也存在一些缺陷。

SYN攻擊就是利用TCP協議的缺陷,來導致系統服務停止正常的響應。

SYN攻擊原理:

sync_gongji

TCP在傳遞資料前需要經過三次握手,SYN攻擊的原理就是向伺服器傳送SYN資料包,並偽造源IP地址。

伺服器在收到SYN資料包時,會將連線加入backlog佇列,並向源IP傳送SYN-ACK資料包,並等待ACK資料包,以完成三次握手建立連線。

由於源IP地址是偽造的不存在主機IP,所以伺服器無法收到ACK資料包,並會不斷重發,同時backlog佇列被不斷被攻擊的SYN連線佔滿,導致無法處理正常的連線。

SYN攻擊的應對措施

針對SYN攻擊的幾個環節,提出相應的處理方法:

方式1:減少SYN-ACK資料包的重發次數(預設是5次):
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3

方式2:使用SYN Cookie技術:
sysctl -w net.ipv4.tcp_syncookies=1

方式3:增加backlog佇列(預設是1024):
sysctl -w net.ipv4.tcp_max_syn_backlog=2048

方式4:限制SYN併發數:
iptables -A INPUT -p tcp –syn -m limit –limit 1/s -j ACCEPT –limit 1/s

==============================================

原文出處:http://www.cnblogs.com/ym123/p/4564311.html