网站首页 > 博客文章 正文
服务器的syslog里出现里大量以下警告。大概的意思就是说,服务器的80端口有大量的SYN请求并且超过了可分配的记忆领域容量,因此启用了SYN cookies功能。
kernel: possible SYN flooding on port 80. Sending cookies.
SYN cookies
SYN cookies是,为了防止TCP SYN flood攻击开发的对应方法之一。
SYN Flood攻击是在TCP连接开始之前服务器的记忆领域被客户端的SYN请求全部占领。通常这个记忆领域会存放客户端的IP地址、端口号、连接时的序列号及客户端指定的各种TCP选项(TCP Window等)。而服务器端是在接收客户端的SYN请求之后,给客户端返回SYN ACK包(这里包含TCP连接相关的TCP序列号)。服务器端和客户端在以后的TCP通信中使用这个TCP序列号。因此客户端在返回ACK时,会包含针对服务器端SYN ACK包的TCP序列号。
利用这个TCP三次握手的特性,如果服务器端能够把应该存储在记忆领域的信息,写入到SYN ACK包的序列号的话,服务器端在接收客户端的SYN请求之后无需消费记忆领域,这么做的好处是TCP三次握手完成之后分配记忆领域就可以了。
一般使用伪装IP进行大量SYN flood攻击的客户端无法接收这个序列号(服务器端SYN ACK的序列号),因此也无法返回给服务器端正确的ACK包。其结果是服务器端的记忆领域可用于正常主机的连接请求。
开启SYN cookies功能的服务器端在没有受到SYN flood攻击时,在接收客户端的SYN请求时会分配记忆领域给这个连接请求(和没有开启SYN cookies时一样)。但是当受到SYN flood攻击时(可分配的记忆领域不足),不再给客户端的SYN请求分配记忆领域,而是直接给客户端返回SYN ACK包。这时的SYN ACK包的序列号是用特殊的方法计算的。
用以下命令查看有没有SYN cookies功能有没有开启。0是无效,1是有效。
# cat /proc/sys/net/ipv4/tcp_syncookies
修改内核参数
以下是相关的几个内核参数。
参数名 | 默认值 | 简介 |
---|---|---|
tcp_max_syn_backlog | 1024 | 服务器端在接受客户端的SYN请求之后,在记忆领域可存储的客户端SYN请求数 |
tcp_synack_retries | 5 | 服务器端处于SYN_RECV状态之后,在一定时间没有收到客户端的SYN时,再次发送SYN ACK的次数 |
tcp_abort_on_overflow | 0(无效) | 当服务器端高负荷时,给客户端发送RST切断连接来保护服务器 |
可使用
# sysctl -a | grep tcp_max_syn_backlog net.ipv4.tcp_max_syn_backlog = 1024 # sysctl -a | grep tcp_synack_retries net.ipv4.tcp_synack_retries = 2 # sysctl -a | grep tcp_abort_on_overflow net.ipv4.tcp_abort_on_overflow = 0
猜你喜欢
- 2025-03-14 高并发/高io下,设置linux下文件打开数限制
- 2025-03-14 Apache httpd 是如何实现高并发服务的
- 2025-03-14 Nginx-性能优化(nginx性能调整)
- 2025-03-14 Centos7系统内核优化脚本(centos7优化内核参数详解)
- 2025-03-14 linux 常用性能优化参数及理解(linux系统优化参数)
- 2025-03-14 第十八节:Linux网络子系统:从协议栈到性能调优
- 2025-03-14 CentOS系统全方位优化指南:性能调优与安全加固
- 2025-03-14 优化Linux网络丢包有哪些常用的工具和方法?
- 2025-03-14 高流量大并发Linux TCP性能调优(linux最大tcp连接数)
- 2025-03-14 TCP 的三次握手,四次挥手和重要的细节—干货满满,建议细读
你 发表评论:
欢迎- 375℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 369℃用AI Agent治理微服务的复杂性问题|QCon
- 362℃初次使用IntelliJ IDEA新建Maven项目
- 355℃Maven技术方案最全手册(mavena)
- 352℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 349℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 349℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 345℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)