什么是SYN flood

  • 攻击者伪装大量的IP地址给服务器发送SYN报文,由于伪造的IP地址几乎不可能存在,也就几乎没有设备会给服务器返回任何应答了。因此,服务器将会维持一个庞大的等待列表,不停地重试发送SYN+ACK报文,同时占用着大量的资源无法释放。更为关键的是,被攻击服务器的SYN_RECV队列被恶意的数据包占满,不再接受新的SYN请求,合法用户无法完成三次握手建立起TCP连接。也就是说,这个服务器被SYN Flood拒绝服务了。

如何预防?

  • SYN Flood攻击大量消耗服务器的CPU、内存资源,并占满SYN等待队列。相应的,我们修改内核参数即可有效缓解。
  • 主要参数如下:

    1. net.ipv4.tcp_syncookies = 1
    2. net.ipv4.tcp_max_syn_backlog = 8192
    3. net.ipv4.tcp_synack_retries = 2
    4. 分别为启用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及其应对方法相关推荐

  1. 【网络编程】SYN Flood (SYN洪水攻击)原理及防阻

    转载自: https://blog.csdn.net/jiange_zh/article/details/50446172 第一部分 SYN Flood的基本原理 一.原理 1.TCP握手协议 第一次 ...

  2. TCP/IP:TCP SYN Flood攻击原理与实现

    目录 三次握手过程 SYN Flood攻击原理 SYN Flood攻击实验 1. 初始化 IP 头部 2. 初始化 TCP 头部 3. 初始化 TCP 伪首部 4. 构建 SYN 包 5. 创建原始套 ...

  3. 攻击工具SYN Flood的源代码

    文章转自王牌软件 第一部分 SYN Flood的基本原理 SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的T ...

  4. syn flood 攻击 c 语言源代码,以太网模拟syn flood攻击

    以太网模拟syn flood攻击 (2012-06-08 00:55:49) 标签: 以太网 杂谈 以太网模拟syn flood攻击最近在网上找了一些模拟syn flood攻击的c语言源代码,顺便写了 ...

  5. SYN Flood DNS Query Flood HTTP Flood DDoS CC常见网络功击

    本人从事网络安全行业20年.有15年防ddos攻击防护经验.被骗了很多回(都说能防300G,500G,买完就防不住了),本文当然重点给大家说明,ddos攻击是什么,中小企业如何防护,用到成本等. 20 ...

  6. php攻击方式及防御方法,Syn Flood 攻击 及其一般防御方法

    防火墙通知受到Syn Flood攻击,并解释说: A SYN Flood is an attempt to consume memory and resources. A Normal TCP/IP ...

  7. SYN Flood攻击及防御方法

    SYN Flood攻击及防御方法   一.  为什么Syn Flood会造成危害   这要从计算机网络的TCP/IP协议栈的实现说起.当开放了一个TCP端口后,该端口就处于Listening状态,不停 ...

  8. w ndows10专业版连接不上网,windows10无线网络连不上的原因与应对方法

    最近有用户反馈,遇到了windows10无线网络连不上的问题,不知如何解决?其实导致windows10无线网络连不上的原因有很多种,下面小编介绍windows10无线网络连不上的原因与应对方法. 一. ...

  9. 【网络篇】TCP SYN Flood Attack(洪水攻击)

    文章目录 SYN Flood Attack是什么? SYN Flood Attack的阶段 SYN Flood Attack原理 SYN Flood Attack的防御措施 具体防御手段:syn co ...

最新文章

  1. 方法总比困难多_只是为了生活
  2. Java中finalize方法用途何在?
  3. 003_隐藏和显示效果
  4. 怎么取消苹果手机自动续费_手机 App 自动续费套路多?我们要如何取消?
  5. qt 设置按钮大小_Qt官方示例双向按钮
  6. 一口气放出三篇SIGIR论文!详解阿里妈妈搜索广告CTR模型演进
  7. eclipse maven jetty插件方式启动项目
  8. preview窗口 unity_Unity3D在Preview中打印日志的方法
  9. 关于JAVA中的synchronized,一段不错的解释...
  10. 理解SharePoint中的备用访问映射(Alternate Access Mapping)
  11. python中的pass是空语句一般用作占位语句_1、python基本语法
  12. linux mc 命令,linux的mc命令是什么有什么用
  13. CSS单行文本溢出显示省略号(…)
  14. Web应用网站CDN加速访问技术原理
  15. 【学术 | 比赛】比赛?论文?先收藏!29个学术网站,比赛论文不再困难
  16. Ubuntu18.04下的截图快捷方式
  17. Switch模拟器调研
  18. matlab外推法确定搜索区间的程序,《机械优化设计》复习题
  19. actor 模型原理 (二)
  20. 关于微信支付,支付宝支付

热门文章

  1. 3、InterruptedException
  2. Redis中的管道有什么用?
  3. GET http://127.0.0.1:8888/senchaApp3/src/NavigstionView.js?_dc=1397541249248 404 (Not Found)
  4. spark TaskMemoryManager shuffle 内存管理
  5. 图像处理论坛_【活动】CSIG菁英青云论坛第三期活动预告!!
  6. python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别
  7. collection集合 介绍_五分钟了解MongoDB介绍,安装与使用
  8. pythonexcel最好得库_Python操作Excel,你觉得哪个库更好呢?
  9. RWMutex的一道面试题
  10. Git初始化本地已有项目并上传到远端仓库