zoukankan      html  css  js  c++  java
  • SYN DDOS 防御策略

    ---恢复内容开始---

    DDOS是分布式拒绝访问服务攻击,就是海量的向服务器发起request,而服务器难以区分这些request哪些是真实请求。只能都进行回应,

    于是服务器的带宽被榨干,无法相应,使得正常的访问也被拒绝。

    SYN攻击的原理;

      SYN攻击主要利用的是TCP/IP协议

                TCP三次握手的过程

          client                                                         server

               SYN(SEQ=x) 

                   =========================>

    state     SYN_SEND      

             SYN(SEQ=Y)  ACK(ACK=x+1)              

              <========================             

    state                         SYN_RECV

               ACK(ACK=y+1) 

                   =========================>

    state ESTABLISHED <==================>ESTABLISHED

          ......

    如上图所示,建立一次连接需要经过三次连接,当第二次握手发生时,server断就会将client端的地址放入一个缓存队列,等待client完成第三次握手。

    SYN攻击使得服务器发回第二次握手给一个并不存在的地址,并将其存在缓存队列等待。很快队列会被填满,攻击效果达到。

    linux下的防御措施

    主:

    方式1、减少发送syn+ack包时重试的次数
    synctl -w net.ipv4.tcp_syncak_retries=3
    synctl -w net.ipv4.tcp_syn_retires=3

    方式2、开启SYN cookies
    synctl -w net.ipv4.tcp_syncookies=1

    方式3、增加backlog队列
    synctl -w net.ipv4.tcp_max_syn_backlog=2048


    次:
    关闭ICMP协议请求
    synctl -w net.ipv4.icmp_echo_ignore_all=1

    通过iptables防止扫描
    iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT

    iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT

    iptables -A FORWORD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

    ---恢复内容结束---

    DDOS是分布式拒绝访问服务攻击,就是海量的向服务器发起request,而服务器难以区分这些request哪些是真实请求。只能都进行回应,

    于是服务器的带宽被榨干,无法相应,使得正常的访问也被拒绝。

    SYN攻击的原理;

      SYN攻击主要利用的是TCP/IP协议

                TCP三次握手的过程

          client                                                         server

               SYN(SEQ=x) 

                   =========================>

    state     SYN_SEND      

             SYN(SEQ=Y)  ACK(ACK=x+1)              

              <========================             

    state                         SYN_RECV

               ACK(ACK=y+1) 

                   =========================>

    state ESTABLISHED <==================>ESTABLISHED

          ......

    如上图所示,建立一次连接需要经过三次连接,当第二次握手发生时,server断就会将client端的地址放入一个缓存队列,等待client完成第三次握手。

    SYN攻击使得服务器发回第二次握手给一个并不存在的地址,并将其存在缓存队列等待。很快队列会被填满,攻击效果达到。

    linux下的防御措施

    主:

    方式1、减少发送syn+ack包时重试的次数
    synctl -w net.ipv4.tcp_syncak_retries=3
    synctl -w net.ipv4.tcp_syn_retires=3

    方式2、开启SYN cookies
    synctl -w net.ipv4.tcp_syncookies=1

    方式3、增加backlog队列
    synctl -w net.ipv4.tcp_max_syn_backlog=2048


    次:
    关闭ICMP协议请求
    synctl -w net.ipv4.icmp_echo_ignore_all=1

    通过iptables防止扫描
    iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT

    iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT

    iptables -A FORWORD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

  • 相关阅读:
    098实战 Job的调度
    maven在windows下的安装
    Map的知识点梳理(不包含collections工具类)
    001 LRU-缓存淘汰算法
    Android渲染机制和丢帧分析
    Android性能优化典范
    正确使用Android性能分析工具——TraceView
    android View 绘制完成监听
    那些年我们用过的显示性能指标
    view, surfaceView, invalidate, postInvalidate, 刷新屏幕
  • 原文地址:https://www.cnblogs.com/chieh/p/4820517.html
Copyright © 2011-2022 走看看