歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux SYN攻擊原理和應對方法

Linux SYN攻擊原理和應對方法

日期:2017/3/1 17:42:28   编辑:Linux技術

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

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

SYN攻擊原理:

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

SYN攻擊模擬

可以用之前介紹的hping工具來模擬SYN攻擊,參見《Linux常用網絡工具:hping高級主機掃描》;

還有一款synkill也可以用來模擬SYN攻擊。

Copyright © Linux教程網 All Rights Reserved