欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux SYN攻击原理和应对方法

程序员文章站 2022-06-11 16:05:37
这篇文章主要介绍了Linux SYN攻击原理和应对方法,SYN攻击主要是利用TCP协议的缺陷,来导致系统服务停止正常的响应,本文就讲解了其原理和应对方法,需要的朋友可以参考下... 15-06-15...

tcp自从1974年被发明出来之后,历经30多年发展,目前成为最重要的互联网基础协议,但tcp协议中也存在一些缺陷。

syn攻击就是利用tcp协议的缺陷,来导致系统服务停止正常的响应。

syn攻击原理:

Linux 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攻击。