14
服务器受到SYN攻击怎么办?

SYN攻击原理
    TCP在传递数据前需要经过三次握手,SYN攻击的原理就是向服务器发送SYN数据包,并伪造源IP地址。服务器在收到SYN数据包时,会将连接加入backlog队列,并向源IP发送SYN-ACK数据包,并等待ACK数据包,以完成三次握手建立连接。

    由于源IP地址是伪造的不存在主机IP,所以服务器无法收到ACK数据包,并会不断重发,同时backlog队列被不断被攻击的SYN连接占满,导致无法处理正常的连接。

SYN优化处理方法

一、减少SYN-ACK数据包的重发次数

sysctl -w net.ipv4.tcp_synack_retries=3

二、使用SYN Cookie技术
sysctl -w net.ipv4.tcp_syncookies=1

三、增加backlog队列,默认是1024
sysctl -w net.ipv4.tcp_max_syn_backlog=2048

四、限制SYN并发数
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT --limit 1/s

如何处理 TimeWait 连接过多?

第一步:vi /etc/sysctl.conf

第二步:看服务器状况修改变量

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 修改系默认的 TIMEOUT 时间(默认30)


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!