蓝盟IT外包,你还在花钱捍卫DDoS吗?使用iptables 5技巧获得免费的SYN泛洪攻击!

发布者:上海IT外包 来源:www.linemore.com

SYN Flood(SYN Flood)是典型的DoS(拒绝服务)攻击,是一种DDoS攻击。攻击发生后,服务器的TCP连接资源耗尽,最终停止响应正常的TCP连接请求。虽然这种类型的攻击已经存在了十多年,但它的变种仍然可以在今天看到。虽然已经有技术可以有效地对抗大量的SYN,但是没有标准的TCP实现解决方案。今天的小编将详细介绍这种攻击原理以及如何对抗洪水SYN~
  攻击开始
  正常的三次握手:
  首先启动带有序列号(Seq)的SYN=1数据包;
  一旦服务器收到数据包,它就会将数据放入名为syn_table的队列中。并且发送返回数据包,作为响应,返回数据包有自己的序列号(Seq)和Ack,Ack的值是客户端发送的Seq值加1;
  客户端收到返回消息后,将服务器的Seq添加为Ack,并将其发送给服务器。
  服务器接收第三个数据包,并在验证没有问题后,将连接置于request_sock_queue中,并完成三向交换。
  你还在花钱捍卫DDoS吗?使用iptables 5技巧获得免费的SYN泛洪攻击!
  SYN Flood主要使用TCP协议的三向链路协议的缺点。在此攻击中,Flood会携带一系列syn数据包,每个数据包都会导致服务器发送SYN-ACK响应,然后服务器等待SYN + ACK。第三个链路协议ACK,由于客户端是软件生成的虚拟IP,ACK响应服务器永远不会再次发送,服务器将使用传输机制,直到超时被消除,并且积压它将消耗系统的所有资源。无法满足正常请求。
  你还在花钱捍卫DDoS吗?使用iptables 5技巧获得免费的SYN泛洪攻击!
  我怎么知道我是否患有SYN攻击?
  检测SYN攻击非常简单。当您在服务器上看到很多半连接状态时,特别是如果源IP地址是随机的,您基本上可以断定它是SYN攻击。我们使用系统附带的netstat工具来检测SYN攻击:
  #netstat -n -p TCP
  反馈如图所示
  你还在花钱捍卫DDoS吗?使用iptables 5技巧获得免费的SYN泛洪攻击!针对SYN Floods的防御。
  配置iptables规则
  Iptables防火墙可以理解为Linux系统下的访问控制功能,我们可以使用Iptables配置一些规则来抵御这种攻击。强制检查SYN数据包以确保传入的tcp链接是SYN数据包,如果不是则丢弃它。
  #iptables -A ENTRY -p tcp --syn -m status --state NEW -j DROP
  强制检查碎片包并使用传入的片段丢弃包。
  #iptables -A ENTRADA -f -j DROP
  丢弃格式错误的XMAS包。
  #iptables -A ENTRY -p tcp --tcp-flags ALL -j DROP
  丢弃格式错误的NULL数据包。
  #iptables -A ENTRY -p tcp --tcp-flags ALL NONE -j DROP
  当Iptables配置完成后,我们可以使用nmap命令对其进行验证。
  #nmap -v -f IP防火墙
  #nmap -v -sX IP防火墙
  #nmap -v -sN IP防火墙
  例如:
  你还在花钱捍卫DDoS吗?使用iptables 5技巧获得免费的SYN泛洪攻击!
  其他防御方法:
  除了SYN攻击外,我们还可以使用以下处理方法:
  方法1:减少SYN-ACK数据包的重传次数(默认为5次)
  Sysctl -w net.ipv4.tcp_synack_retries=3
  Sysctl -w net.ipv4.tcp_syn_retries=3
  方法2:使用SYN cookie技术
  Sysctl -w net.ipv4.tcp_syncookies=1
  方法3:增加挂起的作业队列(默认值为1024):
  Sysctl -w net.ipv4.tcp_max_syn_backlog=2048
  方法4:限制SYN并发数:
  Iptables -A ENTRY -p tcp --syn -m limit  -  limit 1/s -j ACCEPT  -  limit 1/s
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部