如何利用Iptables限制模块防止单IP对Web接口的暴力探测实战

舞姬之光

舞姬之光

2026-05-04

242人浏览

原创

iptables 限制单ip暴力探测需结合 recent、connlimit 和日志联动:用 recent 基于 syn 频率识别慢速扫描,connlimit 控制半开连接数,再通过 nginx 日志+ipset 实现路径级精准封禁,并注意规则顺序、日志验证及 cdn 场景适配。

如何利用iptables限制模块防止单ip对web接口的暴力探测实战

用 iptables 限制单 IP 对 Web 接口的暴力探测,核心是识别“高频、低并发、跨路径”的异常访问模式——这类行为不像 CC 攻击那样堆连接,而是用少量请求反复试探登录、注册、短信等敏感接口。单纯靠端口或协议过滤没用,得结合 recent、connlimit 和日志联动。

用 recent 模块识别慢速扫描式探测

暴力探测常表现为:同一 IP 在 60 秒内对 /login/api/send-sms/register 等路径发起 10+ 次 HTTP 请求(哪怕只走 80/443 端口)。iptables 本身不解析 URL,但可通过 SYN 包频率间接捕捉:

  • 对每个新 TCP 连接(SYN)记录源 IP:
    iptables -A INPUT -p tcp --dport 80 -m tcp --syn -m recent --name webprobe --set -j ACCEPT
  • 60 秒内累计 8 次新连接即拉黑:
    iptables -A INPUT -p tcp --dport 80 -m tcp --syn -m recent --name webprobe --rcheck --seconds 60 --hitcount 8 -j DROP
  • 加一条日志规则便于确认效果:
    iptables -A INPUT -p tcp --dport 80 -m tcp --syn -m recent --name webprobe --rcheck --seconds 60 --hitcount 8 -j LOG --log-prefix "WEB-PROBE-DROP: "

用 connlimit 控制半开连接数防试探性堆积

攻击者常使用工具(如 curl 脚本、Burp Intruder)以低频但持续方式维持多个未完成握手的连接,消耗服务资源。针对 Web 端口做轻量级并发控制:

Amper Music
Amper Music

允许用户使用人工智能生成和循环创建和定制音乐。

下载
  • 拒绝单 IP 同时超过 4 个未完成的 TCP 连接(非已建立):
    iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 4 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
  • 注意这条规则要放在 “允许 ESTABLISHED” 规则之后、“开放 80 端口” 规则之前,否则会误伤正常用户重连

配合 Nginx 日志 + ipset 实现精准路径级封禁

recent 只能看连接层,真正判断“是否在暴力调用 /api/login”还得靠应用日志。推荐组合方案:

  • 用 shell 脚本每 2 分钟分析 Nginx access.log,提取 120 秒内访问 /api/login 超过 15 次的 IP:
    awk '$9==200 && $7~/\/api\/login/ {print $1}' /var/log/nginx/access.log | sort | uniq -c | awk '$1>15 {print $2}'
  • 将这些 IP 加入 ipset 黑名单:
    ipset add web-brute-ips 192.168.5.23
  • iptables 直接丢弃黑名单 IP 的所有 Web 流量:
    iptables -I INPUT -m set --match-set web-brute-ips src -p tcp --dport 80 -j DROP
  • 脚本通过 crontab 每 2 分钟执行一次,响应快、无漏判

加固要点与避坑提醒

这几条规则不是设完就一劳永逸,要注意实际部署细节:

  • 所有限速规则必须放在 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 之后,否则会把合法回包也拦掉
  • 不要用 -j DROP 直接上线,先换成 -j LOG 观察 10 分钟,用 dmesg -T | grep WEB-PROBE-DROP 确认拦截逻辑合理
  • recent 模块默认最多存 100 个 IP,若并发探测 IP 多,需调大:
    echo 'options ipt_recent ip_list_tot=2000' > /etc/modprobe.d/ipt_recent.conf
  • 若后端有负载均衡或 CDN,real IP 是 X-Forwarded-For,此时 iptables 层无法识别真实攻击源,应改在 Nginx 或应用层做限流

相关文章

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

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

下载

相关标签:

web接口

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

相关专题

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

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

2025.10.13

2013

12

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

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

2025.11.04

268

21

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

0

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

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

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

2026.08.04

11

21

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

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

2026.08.04

8

20

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

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

2026.08.04

10

14

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

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

2026.08.04

5

10

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习