原理:当TCP三次握手进行第一次握手时,客户端向服务端发送SYN请求报文,第二次握手服务端会返回一个SYN+ACK的一个确认报文,syn-flood攻击就发生在第三次握手,当客户端不去回应服务端的SYN+ACK报文时,此时TCP是处于半开放状态的,如果此时客户端一直给服务端发送SYN请求报文,却不去回应服务端发来的SYN+ACK报文,这将会占用服务端所有系统资源,使其不能接收其他任何请求。如下图:

检测攻击:查看TCP连接状态是否有异常连接状态,

防御:

1)使用SYNCookie防火墙

syn cookie:当客户端给服务端发送SYN报文时,服务端会返回一个SYN+ACK ,但是这个ACK是由源地址,端口源次序,目标地址,目标端口以及一个加密种子计算而得出的一个ACK,服务端发送完SYN+ACK确认报文时,就会释放所有状态,这样就不用占用系统资源了,当客户端发送ACK报文给服务端时,服务端会重新计算这个ACK,判断它是不是上个SYN+ACK的返回包。

syn cookie防火墙:syncookie防火墙充当了一个中间人的角色,当客户端发送syn请求时,syncookie防火墙就是服务端,给客户端发送syn+ack确认报文,如果防火墙收到了syn+ack的返回包,它就会再次充当客户端的角色,给服务端发送syn请求报文,建立三次握手。如果两边都成功了,防火墙就会转发两边的数据,让客户端和服务端建立三次握手。

2)加固TCP/IP协议栈防范

最新文章

  1. css3 自定义字体 @font-face
  2. python基础学习笔记2
  3. java 字符串判断是否相等
  4. java mail使用qq邮箱发邮件的配置方法
  5. maven2 配置M2_REPO
  6. mysql 线程级别的缓冲区
  7. 【C#学习笔记】指针使用
  8. Android 指定日期时间执行任务的Timer
  9. AIX和Linux中wtmp的不同处理方式
  10. AE缺失Form Trapcode Form
  11. 关于Cocos2d-x-3.16的开发环境搭建
  12. [DLX精确覆盖] hdu 1603 A Puzzling Problem
  13. 浅谈如何避免内存泄漏(out of memory)
  14. LeetCode--027--移除元素
  15. 20170727xlVBA根据总名单和模板生成多页名单
  16. win7 配置微软的深度学习caffe
  17. Codeforces Round #358 (Div. 2) C. Alyona and the Tree 水题
  18. 自用封装javascript函数
  19. vue-cli脚手架之其他文件解释
  20. 【QQ输入法】QQ输入法-剪切板 释放内存

热门文章

  1. Python使用DDA算法和中点Bresenham算法画直线
  2. forms-隐藏处理
  3. python多线程不能利用多核cpu,但有时候多线程确实比单线程快。
  4. 编译jmeter5.0源码
  5. kubernetes(k8s) helm安装kafka、zookeeper
  6. jdbc之工具类DBUtil的使用
  7. 【双目备课】《学习OpenCV第18章》相机模型与标定整编
  8. 【读书笔记】使用JMeter创建数据库(Mysql)测试
  9. MemoryStream请求与接收
  10. vue安装之后的报错处理---chromedriver@2.35.0 install: `node install.js`