何为SYN攻击?

伪造不同IP地址的SYN报文,迅速打满服务端SYN队列。使服务器无法为正常连接服务

方案一:设置SYN队列

  1. net.core.netdev_max_backlog设置未被协议栈处理的报文队列长度
  2. net.ipv4.tcp_max_syn_backlog设置SYN队列的最大长度
  3. net.ipv4.tcp_abort_on_overflow超出SYN队列时直接回包RST,丢弃连接

方案二:tcp_syncookie

有点类似tcp fast open,在SYN队列打满之后,再来新连接时不放入SYN队列而是直接计算出Cookie直接返回SYN+ACK,后续客户端发起请求带上Cookie直接恢复连接