1 前言
syn攻击由来已久,威力也十分巨大,一台笔记本就能轻易干翻一台没防护的服务器,而如今web又发展的异常迅速,很多的应用都是基于http协议的,而http协议又是建立在TCP协议之上的应用层协议,所以到了现在syn攻击依然生命力旺盛。其实syn攻击是利用了TCP建立连接需要三次握手的缺陷,只要一个小小的syn包就能占用服务器相对较大的内存空间,这样不平等的关系才使得攻击者能够四两拨千斤,但是syn出现了这么多年不可能没有防御他的方法,今天我要说的syn cookie就是比较好的防御方法之一。
2 syn cookie详解
syn cookie技术是在1996年由Daniel J. Bernstein和Eric Schenk创造的(其实这俩人我也不认识,怎么念都不知道,我百度出来的。。。。),最早是1997年在linux上实现的,至今linux依然支持syn cookie技术。
syn cookie技术是对tcp的三次握手进行了一定的修改,但是修改仅在于服务器端,对任何客户端的使用都没有影响。原本tcp协议是在收到syn包时,服务器返回syn+ack包并分配一个专门的数据区来储存tcp连接需要的数据,这就使攻击者有机可乘,可以利用伪造的syn包来消耗服务器的内存空间和半开连接数,这就可以使服务器的内存或者半开连接数耗尽而拒绝服务。
而syn cookie技术是服务器在收到syn包时并不马上分配储存连接的数据区,而是根据这个syn包计算出