SYN Flood攻击及防止攻击方法SYN COOKIE防火墙
来源:互联网 发布:指弹中国淘宝店 编辑:程序博客网 时间:2024/05/20 02:52
SYN Flood攻击
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。
(1) 攻击者向被攻击服务器发送一个包含SYN标志的TCP报文,SYN(Synchronize)即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号。这时同被攻击服务器建立了第一次握手。
(2) 受害服务器在收到攻击者的SYN报文后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时TCP序号被加一,ACK(Acknowledgment)即确认,这样就同被攻击服务器建立了第二次握手。
(3) 攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。
具体原理是:
TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送YN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
SYN cookie防火墙
SYN COOKIE防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux操作系统提供保护。SYN cookie防火墙是linux的 一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。
下面是SYN cookie防火墙的原理
client firewall server
------ ---------- ------
1. SYN----------- - - - - - - - - - ->
2. <------------SYN-ACK(cookie)
3. ACK----------- - - - - - - - - - ->
4. - - - - - - -SYN--------------->
5. <- - - - - - - - - ------------SYN-ACK
6. - - - - - - -ACK--------------->
7. -----------> relay the ------->
<----------- connection <-------
1:一个SYN包从C发送到S
2:防火墙在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C
3:C发送ACK包,接着防火墙和C的连接就建立了。
4:防火墙这个时候扮演C的角色发送一个SYN给S
5:S返回一个SYN给C
6:防火墙扮演C发送一个ACK确认包给S,这个时候防火墙和S的连接也就建立了
7:防火墙转发C和S间的数据
如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的SYN包,所以我们就击退了这次SYN洪水攻击。
- SYN Flood攻击及防止攻击方法SYN COOKIE防火墙
- SYN Flood攻击及防御方法
- SYN Flood攻击及防御方法
- SYN Flood 攻击及防御方法
- SYN Flood攻击及防御方法
- 利用防火墙来防止SYN Flood攻击(转)
- SYN Flood 攻击
- SYN Flood攻击尝试
- 剖析SYN Flood攻击
- SYN Flood攻击
- Syn Flood 攻击
- syn flood攻击防范
- 什么是SYN Flood攻击?
- SYN及SYN攻击
- SYN Flood攻击的基本原理及防御
- SYN Flood攻击的基本原理及防御
- SYN Flood攻击的基本原理及防御
- SYN Flood攻击的基本原理及防御
- Java之美[从菜鸟到高手演变]系列之博文阅读导航
- SQL时间戳使用之任务循环
- zoj1094-Matrix Chain Multiplication
- 对共享网络与交换网络进行监听
- 乱胡扯计算器
- SYN Flood攻击及防止攻击方法SYN COOKIE防火墙
- sun-java6-jdk
- map窗口随着div及浏览器大小自动缩放
- arcgis10 licenseManager许可服务:未启动
- Perl DBI 基础
- UILongPressGestureRecognizer ,,, actionLongGesture:withEvent
- arcgis server 发布的mdb格式空间数据无法显示地图
- VM
- BIND 从服务器及缓存服务器配置