如何防护云服务器被SYN Flood攻击
最简单粗暴的办法,就是提高TCP端口连接容量的同时减少半开连接的资源占用时间。在Linux上可以修改以下配置提高TCP半开连接队列大小的上限:
/proc/sys/net/ipv4/tcp_max_syn_backlog
可以减少半开状态下等待ACK消息的时间或者重试发送SYN-ACK消息的次数:
/proc/sys/net/ipv4/tcp_synack_retries
抑或启用某种半开连接回收机制,使得当半开连接队列满了以后做“除旧迎新”操作,当然并不是所有系统都支持这种机制。
以上方法更像是权宜之计,只是缓解了被攻击时的系统压力,以及稍稍提高了些防御门槛,但也同时影响了部分正常的请求的建立,比如减少SYN-ACK重试次数,同样也会降低某些网络环境不好的正常用户的连接成功率;而且攻击者只要稍稍改变策略就可以提高攻击效果,比如当使用半开连接回收机制时,攻击者只需提高攻击频率就可使大部分正常的等待的半开连接,在ACK消息到来前就被踢出队列。
和DDoS攻击这种只需要带宽硬扛(就像举着盾让对方打到消停一样)的原理是不一样的,
最终的策略是几种方案和技术的结合使用,形成防御体系,因此要完全解决SYN Flood泛洪攻击所花费的成本,往往超出DDoS攻击防护的数倍不止,毕竟对方也是花了超过DDoS攻击成本的数倍不止呢...
上一篇: SYN Flood攻击原理简述
下一篇: 怎样选择高防服务器?