一、攻击简略

SYN 攻击是利用 TCP/IP 三次握手时,Server 需要回复 SYN + ACK 等待 Client 回复时会等待一段时间的特性来进行攻击的。攻击者会同时伪造大量的 IP 和 Port 来与 Server 进行连接,Server 会不断的申请资源来等待这些 Client 回复 ACK,但是这些 Client 均是伪造故不可能恢复,所以短时间会造成 Server 端资源紧张甚至瘫痪。

需要强调的是,这些伪造的 Client 会占用未连接队列,造成正常的 Client 无法连接,这也是 SYN 攻击的后果之一。

二、解决办法

现在广泛部署在 OS 上的防御 SYN 攻击的方法被成为 SYN cookie ,其主要思想是当三次握手成功之后 Server 才为该连接申请资源,大致流程如下:

1、当 Server 收到一个 SYN 报文段时,Server 并不清楚该报文是合法用户的申请还是 SYN 攻击的一部分。因此 Server 不会为该报文分配资源。相反, Server 会生成一个初始的 TCP 序列号(Seq),该序列号通过 SYN 报文段的 src ip、dist ip、port 和仅 Server 知道的秘密数经过复杂函数生成的。该序列号被称为“cookie”。Server 将该值作为 Seq 发送至 Client 。

注意:Server 本身不保存该 cookie 。

2、当 Server 收到 Client 返回的 ACK 时,会提取该报文的 Seq,该 Seq 实际上是上面的 cookie + 1 。Server 的操作是提取该报文的 src ip、dist ip、port,和仅 Server 知道的秘密数经过上面相同的函数生成 cookie',如果 cookie' + 1 的结果等于该报文的 Seq,则认为该连接是 Server 之前已经两次握手之后的连接,Server 开始为该连接申请一个具有套接字的全开的连接。

补充:如果 Client 没有返回 ACK 报文,则初始的 SYN 并没有对 Server 产生危害,仅仅增加了微量的计算量,并没有为该连接分配任何资源,从而彻底地解决了 SYN 攻击。

三、三次握手图

照片中 server_isn 就是 Server 计算得到的 cookie 。

(SAW:Game Over!)

TCP/IP / SYN 攻击以及解决办法相关推荐

  1. Linux系统不响应SYN包的解决办法

    Linux系统不响应SYN包的解决办法 关于syn为什么没有回应的问题真是郁闷了好久. 现象就是在客户端发出syn包的时候,服务器端对客户端的syn包不做任何回应. 在网上逛了逛,终于找到有人也发生了 ...

  2. vmware虚拟机ip地址自动改变解决办法

    vmware虚拟机ip地址自动改变解决办法 菜单栏编辑->虚拟网络编辑器 选择正在使用的连接模式 点击DHCP设置 将租用时间及最长租用时间调到63天(最大天数只能为63天) 菜单栏编辑-> ...

  3. 树莓派用网线连接笔记本IP地址无法连通解决办法

    树莓派用网线连接笔记本IP地址无法连通解决办法 参考树莓派+一根网线直连笔记本电脑 参考Windows电脑检测不到树莓派地址的问题怎么办? 在配置网络的时候,树莓派IP地址发生改变,博主无法通过VNC ...

  4. 电脑遭受ARP攻击,解决办法

    这篇文章主要介绍了电脑遭受ARP攻击,解决办法的相关资料,感兴趣的朋友可以一起研究一下! ARP攻击主要是存在于局域网网络中,如果在局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试 ...

  5. SYN洪水攻击的原理,syn洪水攻击的解决办法

    SYN洪水攻击的原理及解决办法分享 SYN洪水攻击的原理 遭到SYN攻击该如何防御呢? 1.修改等待数 2.启用syncookies 3.修改重试次数 4.限制单IP并发数 5.限制C类子网并发数 6 ...

  6. 美国高防服务器:恒讯科技为您解答TCP/IP的攻击原理

    TCP/IP协议是互联网最基本的协议,不依赖于任何指定的计算机设备或操作系统,是一种开放的协议标准.就算不考虑互联网,TCP/IP也是互联网使用的标准协议集,是互联网中恶意攻击者的重点关注对象.针对网 ...

  7. 浏览器打开网页但找不到服务器ip地址 DNS错误 解决办法

    文章目录 一. 问题: 二.解决办法: 一. 问题: 电脑连网了,浏览器打开网页找不到服务器ip地址,DNS错误. 二.解决办法: 打开设置–>点击"网络和Internet" ...

  8. java host头攻击漏洞_Java Web项目漏洞:检测到目标URL存在http host头攻击漏洞解决办法...

    检测到目标URL存在http host头攻击漏洞 详细描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header.例如,在php里用_SERVER["HTTP_HOST ...

  9. 网站被攻击了怎么办?3种网站攻击的解决办法

    随着互联网的发展,越来越多的人们开始认识到网络宣传的优越性.大大小小的网站层出不穷.然而随着网站数量的增加,出现的问题也大大增多.同行之间的竞争.也随之体现在了网络之间.一些不法分子也逐渐转移阵地到网 ...

最新文章

  1. ajax从mysql提取数据在html中_EXCEL混合内容中提取数据,其实很简单
  2. 《Drupal实战》——1.4 常见配置
  3. 2018-2019-1 20165201 《信息安全系统设计基础》第6周学习总结
  4. python文件操作2:在指定目录下查找指定后缀名的文件
  5. 即将举行的网络研讨会:调试生产中Java的5种最佳实践
  6. HTML5 音频视频
  7. SQL Server大量数据秒级插入/新增/删除
  8. 200个c语言程序(由简单到复杂),200个c语言程序(由简单到复杂)
  9. keepalive配置mysql自动故障转移
  10. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...
  11. JavaWeb19-HTML篇笔记
  12. SiamFC论文解读及代码实现
  13. 马尔科夫随机场:定义、性质,最大后验概率问题,能量最小化问题
  14. android自定义数字键盘
  15. ppt加载html5,当PPT遇见H5,这才是真爱!
  16. 2019配电安规电子版_2018年配电安规.docx
  17. 江苏工匠杯_easyphp_wp
  18. 什么是mysql联合主键_什么是联合主键
  19. MySQL实战第二十二讲-MySQL有哪些“饮鸩止渴”提高性能的方法?
  20. layui.table(表格)跨页多选

热门文章

  1. [转载]轻松玩转LCD12864-基于AVR单片机的LCD12864串行显示
  2. 第三章 经典场景设计
  3. 动态编译MySQL plugin
  4. 虚拟化系列-VMware vSphere 5.1 简介与安装
  5. 【转】POJ-2104(K-th Number 划分树)
  6. linux kill命令使用
  7. hadoop2.6.5安装文档及解决root用户无法ssh localhost的问题
  8. 【收藏】部署Kubernetes(k8s)时,为什么要关闭swap、selinux、防火墙?
  9. 【完整代码】使用Semaphore实现限流代码示例
  10. Linux time ls命令:用户态内核态分别占用多长时间