博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
syn flood攻击和syn cookie预防简介------cat /proc/sys/net/ipv4/tcp_syncookies
阅读量:4141 次
发布时间:2019-05-25

本文共 753 字,大约阅读时间需要 2 分钟。

         1979年,那是一个春天,有一位老人在中国的南海边画了一个圈,神话般地崛起座座城,奇迹般地聚起座座金山。

      1996年, 又是一个春天, 有一位hacker写了一个程序, 可以高速发出tcp syn包, 并且这个syn包的源ip地址被强制随机造假, 于是乎, 服务端接收到syn后, 迅速为每个syn包分配一个incomplete队列, 其中的socket都是暂时没有完成连接的syn_rcvd状态socket,  这个队列迅速满了, 消耗了服务器的资源, 但又无法正确建立tcp三次握手连接(服务端的syn/ack根据之前的syn包找到的是错误的客户端IP地址, 所以也就无法收到客户端的第三次握手ack包), 资源耗尽, 从而导致服务器无法响应正常的syn包。 典型的DOS攻击啊。

      从syn flood攻击可以看出我们之前的讨论------tcp两次握手是万万不行的。 轻易相信syn包就建立连接的两次握手, 很容易让服务端因资源耗尽而无法提供服务。

      那怎么预防syn flood攻击呢? 在RFC4987中给出了答案。 在syn到来的时候, 服务端并不会为这个syn包分配资源, 免得受骗上当。只有当服务端自己的syn/ack收到客户端的ack后, 才会真正分配资源, 此时才完成正常的连接。 由此可见, 此时syn flood失效。

      如上是syn cookie的思路, 具体的方案和实现则要复杂很多, 有兴趣的朋友, 可以看RFC4987.

      最后, 我们来看看linux想的syn cookie开关:  cat  /proc/sys/net/ipv4/tcp_syncookies

      如果为1, 表示开启, 如果为0, 表示关闭。 我试了一下, 在我的机器上, 是开启的, 所以, 不怕你syn flood

转载地址:http://ojwti.baihongyu.com/

你可能感兴趣的文章
隐藏搜索框:CSS 动画正反向序列
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(上)
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>
IPS开发手记【一】
查看>>