• 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

  • 相关阅读:
    字符串类型
    mysql-schema-sync 实现 不同环境实例间表结构统一
    order by 运行过程
    MySQL 生成随机测试数据
    MySQL binlog 日志处理
    MySQL 查询优化
    使用 pyenv 管理不同的 Python 版本
    使用 pyenv 管理不同的 Python 版本
    MVC5 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
    在ASP.net MVC中利用ajax配合razor进行局部加载(给页面套好样式以后,一刷新就不合适了,终于找到了解决方案)
  • 原文地址:https://www.cnblogs.com/chieh/p/4820517.html
Copyright © 2020-2023  润新知