ikxin

防syn攻击屏蔽syn recv的连接
正文今天早上一起床,就上服务器看了下,猛然发现CPU飙升99%,排查了一会,发现是被cc攻击了,网络连接里出现大量...
扫描右侧二维码阅读全文
12
2017/07

防syn攻击屏蔽syn recv的连接

正文

今天早上一起床,就上服务器看了下,猛然发现CPU飙升99%,排查了一会,发现是被cc攻击了,网络连接里出现大量syn连接,占用了所有的资源,导致前端无法打开网站,经过许久我终于找到了解决方案,屏蔽syn的连接,这样可以隔绝大部分攻击,下面分享一下我的思路。

解决方案

SYN攻击是利用 TCP/IP 协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。

在SSH用命令 sysctl -a | grep syn 可以看到

net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog 是SYN队列的长度, tcp_syncookies 是一个开关,是否打开SYN Cookie功能,该功能可以防止部分SYN攻击,tcp_synack_retriestcp_syn_retries 定义SYN 的重试次数。

加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分SYN攻击,降低重试次数也有一定效果。

推荐值:

net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3

到此,就能隔绝syn连接带来的cc攻击了。

最后修改:2019 年 06 月 25 日 04 : 32 PM
如果觉得我的文章写得不错,请赏我一杯咖啡

发表评论