网络(13)-SYN flood及其应对方法
什么是SYN flood
- 攻击者伪装大量的IP地址给服务器发送SYN报文,由于伪造的IP地址几乎不可能存在,也就几乎没有设备会给服务器返回任何应答了。因此,服务器将会维持一个庞大的等待列表,不停地重试发送SYN+ACK报文,同时占用着大量的资源无法释放。更为关键的是,被攻击服务器的SYN_RECV队列被恶意的数据包占满,不再接受新的SYN请求,合法用户无法完成三次握手建立起TCP连接。也就是说,这个服务器被SYN Flood拒绝服务了。
如何预防?
- SYN Flood攻击大量消耗服务器的CPU、内存资源,并占满SYN等待队列。相应的,我们修改内核参数即可有效缓解。
主要参数如下:
- net.ipv4.tcp_syncookies = 1
- net.ipv4.tcp_max_syn_backlog = 8192
- net.ipv4.tcp_synack_retries = 2
- 分别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。
SYN Cookie的作用是缓解服务器资源压力。启用之前,服务器在接到SYN数据包后,立即分配存储空间,并随机化一个数字作为SYN号发送SYN+ACK数据包。然后保存连接的状态信息等待客户端确认。启用SYN Cookie之后,服务器不再分配存储空间,而且通过基于时间种子的随机数算法设置一个SYN号,替代完全随机的SYN号。发送完SYN+ACK确认报文之后,清空资源不保存任何状态信息。直到服务器接到客户端的最终ACK包,通过Cookie检验算法鉴定是否与发出去的SYN+ACK报文序列号匹配,匹配则通过完成握手,失败则丢弃。
SYN Proxy则是管家式的防御,它站在攻击者和目标服务器之间,伪装成目标服务器对所有的SYN报文进行应答,包括攻击者在内。当三次握手正确的建立起来后,就伪装成客户端IP地址与后端的目标服务器建立三次握手,然后转发数据,需要注意的是,TCP三次握手在这里变成了6次握手,而且两个握手内的ACK号肯定不一致,需要做一个修正。
SYN Cookie可以和SYN Proxy无缝集成,协同工作,提供更好的防御服务,基本上100%无误杀。那么使用这种防御手段,付出的代价是什么?我们可以看到,SYN Cookie和SYN Proxy对每一个SYN包都会进行答复,如果攻击者发送1Gbps的报文过来,防御方会发送1Gbps的报文回去。10Gbps就10Gbps,100Gbps就100Gbps。问题是,企业网络禁得起这种折腾么?基本上,攻击流量达到一定程度,网络不攻自溃
tcp_max_syn_backlog则是使用服务器的内存资源,换取更大的等待队列长度,让攻击数据包不至于占满所有连接而导致正常用户无法完成握手。
net.ipv4.tcp_synack_retries是降低服务器SYN+ACK报文重试次数,尽快释放等待资源。
网络(13)-SYN flood及其应对方法相关推荐
- 【网络编程】SYN Flood (SYN洪水攻击)原理及防阻
转载自: https://blog.csdn.net/jiange_zh/article/details/50446172 第一部分 SYN Flood的基本原理 一.原理 1.TCP握手协议 第一次 ...
- TCP/IP:TCP SYN Flood攻击原理与实现
目录 三次握手过程 SYN Flood攻击原理 SYN Flood攻击实验 1. 初始化 IP 头部 2. 初始化 TCP 头部 3. 初始化 TCP 伪首部 4. 构建 SYN 包 5. 创建原始套 ...
- 攻击工具SYN Flood的源代码
文章转自王牌软件 第一部分 SYN Flood的基本原理 SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的T ...
- syn flood 攻击 c 语言源代码,以太网模拟syn flood攻击
以太网模拟syn flood攻击 (2012-06-08 00:55:49) 标签: 以太网 杂谈 以太网模拟syn flood攻击最近在网上找了一些模拟syn flood攻击的c语言源代码,顺便写了 ...
- SYN Flood DNS Query Flood HTTP Flood DDoS CC常见网络功击
本人从事网络安全行业20年.有15年防ddos攻击防护经验.被骗了很多回(都说能防300G,500G,买完就防不住了),本文当然重点给大家说明,ddos攻击是什么,中小企业如何防护,用到成本等. 20 ...
- php攻击方式及防御方法,Syn Flood 攻击 及其一般防御方法
防火墙通知受到Syn Flood攻击,并解释说: A SYN Flood is an attempt to consume memory and resources. A Normal TCP/IP ...
- SYN Flood攻击及防御方法
SYN Flood攻击及防御方法 一. 为什么Syn Flood会造成危害 这要从计算机网络的TCP/IP协议栈的实现说起.当开放了一个TCP端口后,该端口就处于Listening状态,不停 ...
- w ndows10专业版连接不上网,windows10无线网络连不上的原因与应对方法
最近有用户反馈,遇到了windows10无线网络连不上的问题,不知如何解决?其实导致windows10无线网络连不上的原因有很多种,下面小编介绍windows10无线网络连不上的原因与应对方法. 一. ...
- 【网络篇】TCP SYN Flood Attack(洪水攻击)
文章目录 SYN Flood Attack是什么? SYN Flood Attack的阶段 SYN Flood Attack原理 SYN Flood Attack的防御措施 具体防御手段:syn co ...
最新文章
- 方法总比困难多_只是为了生活
- Java中finalize方法用途何在?
- 003_隐藏和显示效果
- 怎么取消苹果手机自动续费_手机 App 自动续费套路多?我们要如何取消?
- qt 设置按钮大小_Qt官方示例双向按钮
- 一口气放出三篇SIGIR论文!详解阿里妈妈搜索广告CTR模型演进
- eclipse maven jetty插件方式启动项目
- preview窗口 unity_Unity3D在Preview中打印日志的方法
- 关于JAVA中的synchronized,一段不错的解释...
- 理解SharePoint中的备用访问映射(Alternate Access Mapping)
- python中的pass是空语句一般用作占位语句_1、python基本语法
- linux mc 命令,linux的mc命令是什么有什么用
- CSS单行文本溢出显示省略号(…)
- Web应用网站CDN加速访问技术原理
- 【学术 | 比赛】比赛?论文?先收藏!29个学术网站,比赛论文不再困难
- Ubuntu18.04下的截图快捷方式
- Switch模拟器调研
- matlab外推法确定搜索区间的程序,《机械优化设计》复习题
- actor 模型原理 (二)
- 关于微信支付,支付宝支付
热门文章
- 3、InterruptedException
- Redis中的管道有什么用?
- GET http://127.0.0.1:8888/senchaApp3/src/NavigstionView.js?_dc=1397541249248 404 (Not Found)
- spark TaskMemoryManager shuffle 内存管理
- 图像处理论坛_【活动】CSIG菁英青云论坛第三期活动预告!!
- python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别
- collection集合 介绍_五分钟了解MongoDB介绍,安装与使用
- pythonexcel最好得库_Python操作Excel,你觉得哪个库更好呢?
- RWMutex的一道面试题
- Git初始化本地已有项目并上传到远端仓库