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

posted @ 2015-09-18 22:24  Chieh  阅读(1721)  评论(0编辑  收藏  举报