• TCP标志位学习资料收集


    TCP首部有6个标志比特。

    SYN是其中之一,它是个同步序号,当TCP连接建立时会把SYN置1。

    一般请求端会发送一个报文,其中包含这样的字段SYN 1415531521:1415531521(0)。

    然后服务端收到后会返回一个ack 1415531522,ack表示确认收到。
    SYN,ACK是标志位。

    SEQ,AN是数据包序号。

    SYN=1, ACK=0, SEQ=200 的意思是:发送的为一个SYN请求,发送端的初始数据包序号为200

    SYN=1, ACK=1, SEQ=4800, AN=201 的意思是:接收端的确认信息,且接收端的初始数据包。序号为4800。

    SYN,ACK是标志位

    SEQ,AN是数据包序号

    SYN=1, ACK=0, SEQ=200 的意思是:发送的为一个SYN请求,发送端的初始数据包序号为200

    • 利用SYN缺陷发动SYN洪水攻击
      TCP连接的第一个包,非常小的一种数据包(用于发出请求)。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
    • SYN攻击属于DDoS攻击(DDOs攻击简单地说就是**占着茅坑不****)的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。服务器接收到连接请求(syn= j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
    • 判断是否出现SYN Flood

    TcpMaxPortsExhausted域值
    TCPMaxHalfOpen 域值
    TCPMaxHalfOpenRetried域值

    • SYN Flood攻击防范
      一类是通过防火墙、路由器等过滤网关防护,利用防范DDOs的那一套就行

    • 通过隐藏真实IP方式可以实现,前提是要先找一个高防的盾机,再把IP隐藏起来,盾机要是都被打崩了,那就凉了。(最有效方法)

    • 加固TCP/IP协议栈
      通过设置注册表项SynAttackProtect如果出现 SYN 攻击,连接响应的超时时间将更短

  • 相关阅读:
    每天两题02
    每天两题01
    简单看看原码、补码和反码
    简单看看java之枚举
    随意看看AtomicInteger类和CAS
    js原型链
    简单看看jdk7源码之Object和String
    简单学习js
    element的表单校验自动定位到该位置
    for循环使用element的折叠面板遇到的问题-3
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832232.html
Copyright © 2020-2023  润新知