如何利用Iptables的Recent模块配置高频SSH连接动态封禁

风瑶同学_6559

风瑶同学_6559

2026-06-06

708人浏览

原创

iptables recent模块通过内核哈希表实时记录源ip,60秒内同一ip新建5次ssh连接即封禁300秒;需确保xt_recent模块已加载,并严格按顺序插入drop黑名单检查、阈值触发、accept放行三条规则。

如何利用iptables的recent模块配置高频ssh连接动态封禁

用 iptables recent 模块实现高频 SSH 连接动态封禁,本质是让内核在内存里维护一张轻量级 IP 记录表,不查日志、不启进程,60 秒内同一 IP 新建 5 次 SSH 连接就自动拉黑 300 秒。关键不在规则多,而在顺序准、参数对、模块活。

确保 xt_recent 内核模块已加载

模块没起来,所有 recent 规则都不生效:

  • 运行 lsmod | grep xt_recent,有输出说明已加载
  • 若无输出,执行 modprobe xt_recent 手动加载
  • 验证是否启用:ls /proc/net/xt_recent/ 应能看到目录;再执行 cat /proc/net/xt_recent/ssh_attack(规则建好后)应有 IP 条目

按严格顺序插入三条 INPUT 链规则

顺序错一条,就会漏判或误放。推荐用 -I INPUT 插入链首(不是 -A 追加):

TextCortex
TextCortex

一款集AI写作、改写和知识辅助于一体的内容创作工具,可帮助用户快速完成多种类型的文本撰写与编辑任务。

下载
  • 第一行(优先拦截黑名单):
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_attack --rcheck --seconds 300 --hitcount 1 -j DROP
    → 已在 300 秒封禁期内?直接丢包,不往下走
  • 第二行(触发封禁):
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_attack --set -m recent --name ssh_attack --rcheck --seconds 60 --hitcount 5 -j DROP
    → 先记下这次连接(--set),再检查过去 60 秒是否已达 5 次;满足即丢弃本次并进入黑名单
  • 第三行(放行合法连接):
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ssh_attack --set -j ACCEPT
    → 未达阈值的连接,记录后放行;注意这条必须在前两条之后,否则会绕过检测

--rcheck 和 --update 别混用,这里选 --rcheck 更合适

--rcheck 从第一次命中开始倒计时,适合短时密集攻击(如暴力破解);--update 从最后一次命中算起,容易漏判快速试探行为:

  • 比如某 IP 在 00:00、00:02、00:04、00:06、00:08 各连一次,用 --rcheck --seconds 60 --hitcount 5,到 00:05 就触发了
  • 同场景用 --update,则要等到 00:08 + 60 秒 = 00:13 才“真正开始计时”,防护窗口明显滞后
  • 一条规则里同时写 --set 和 --rcheck 是可行的,但不能和 --update 搭配使用

验证是否真起作用

别只看 iptables -L 没报错,要实测闭环:

  • 快速执行 5 次错误 SSH 连接(例如 ssh -o ConnectTimeout=3 user@your-server,输错密码后 Ctrl+C 中断),控制在 60 秒内
  • 立刻试第 6 次:应卡住或提示 Connection refused
  • 查匹配数:iptables -L INPUT -n -v | grep DROP,对应规则 packet 计数应增加
  • 等满 300 秒后再试,应恢复可连;同时 cat /proc/net/xt_recent/ssh_attack 中 ttl 值应随时间递减至 0 后消失

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

880

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2692

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

896

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2436

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4492

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

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

精品课程

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

共31课时 | 4.1万人学习