iptables 实现连接速率限制防御 DoS 攻击行为

舞夢輝影

舞夢輝影

2026-07-26

1018人浏览

原创

iptables通过limit(全局速率)和hashlimit(按源ip限速)模块控制新建连接频率,再配合connlimit限制并发连接数,并需启用tcp_syncookies等内核防护机制实现完整dos防御。

iptables 实现连接速率限制防御 dos 攻击行为

iptables 本身不直接限制“连接速率”这个抽象概念,而是通过 limithashlimit 两个核心模块,分别实现全局或按源 IP 的新建连接频率控制,从而有效缓解 SYN Flood、HTTP 扫描、UDP 反射等典型 DoS 行为。

用 limit 模块做全局速率控制(适合基础防护)

limit 基于令牌桶算法,统计的是每秒匹配规则的数据包数量,不是连接数。但它配合 --syn 可间接限制新 TCP 连接发起频率,对防低强度洪水或扫描很实用。

  • 规则必须成对:先放行合规流量,再丢弃超限包,否则所有 SYN 都被拦住
  • 示例(每秒最多 3 个新 SYN,突发允许 6 个):
    iptables -A INPUT -p tcp --syn -m limit --limit 3/s --limit-burst 6 -j ACCEPT
    iptables -A INPUT -p tcp --syn -j DROP
  • 注意:该策略对 UDP 无效;所有 IP 共享一个令牌桶,无法区分攻击源

用 hashlimit 模块按源 IP 限速(推荐用于 CC/UDP 防护)

hashlimit 为每个源 IP 维护独立计数器,支持老化、分组和多维统计,是防御 CC 攻击和 UDP 反射的核心手段。

万镜一刻
万镜一刻

阿里云全新AI视频创作工具,万镜生辉,一刻成片

下载
  • 关键参数:--hashlimit-mode srcip(按客户端 IP)、--hashlimit-above(超阈值触发动作)、--hashlimit-burst(防误杀)
  • HTTP 防护示例(每个 IP 每秒最多 10 个新连接):
    iptables -I INPUT -p tcp --dport 80 --syn -m hashlimit \<br>  --hashlimit-above 10/sec \<br>  --hashlimit-burst 30 \<br>  --hashlimit-mode srcip \<br>  --hashlimit-name http_per_ip \<br>  -j DROP
  • UDP 防护示例(DNS 端口,每分钟最多 60 次请求):
    iptables -A INPUT -p udp --dport 53 -m state --state NEW -m hashlimit \<br>  --hashlimit-above 60/min \<br>  --hashlimit-burst 5 \<br>  --hashlimit-mode srcip \<br>  --hashlimit-name dns_qpm \<br>  -j DROP

搭配 connlimit 控制并发连接数(补 rate-limit 不足)

rate-limit 管的是“新建速度”,connlimit 管的是“同时存在多少连接”。两者互补,才能覆盖 DoS 全链路。

  • Web 服务建议上限 30–100 个并发连接(视业务而定):
    iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
  • SSH 更严格,建议设为 5~10:
    iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 -j DROP
  • 可结合 recent 模块自动封禁频繁超限的 IP,提升响应效率

必须同步启用的内核级防护

iptables 规则只是外层过滤,底层需开启系统级机制增强鲁棒性:

  • 启用 SYN cookies:echo 1 > /proc/sys/net/ipv4/tcp_syncookies,防止连接队列溢出
  • 丢弃 INVALID 状态包:iptables -A INPUT -m state --state INVALID -j DROP,清理畸形会话
  • 默认策略设为 DROP,并优先放行回环、已建立连接(ESTABLISHED,RELATED)和必要端口

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

1986

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

268

21

ddos攻击工具有哪些
ddos攻击工具有哪些

ddos攻击工具有LOIC、HOIC、Slowloris、ICMP洪水攻击、SYN洪水攻击和UDP洪水攻击。详细介绍:1、LOIC,可以使用单个用户或多个用户协同工作,形成分布式攻击,从而增加攻击的威力;2、HOIC,可以使用多个代理服务器,从而隐藏攻击者的真实IP地址;3、Slowloris,通过发送大量的半连接请求来占用目标服务器的资源,从而使其无法处理其他合法的连接请求等等。

2023.10.09

877

8

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

8

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

5

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

7

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

4

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

3

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 3.7万人学习