X-CAD · 开源基础设施

FRP SSH Guard

开源 SSH 访问防护

通过连接限速、临时封禁和可管理的访问控制,保护 FRP 转发的 SSH 端口及公网服务器自身的 SSH 服务。

GitHub 版本发布 许可: MIT Linux · Debian / Ubuntu
FRP-SSH-Guard 在公网服务器上过滤连接,保护 FRP 隧道后的 SSH 服务。

为什么做它

X-CAD 运行在 FRP 隧道之后。公网 SSH 端口会持续遭遇自动化探测,一个转发的端口很容易变成服务器上最吵的门。我们希望有一个小而明确的守卫,部署在公网主机上,在滥用流量到达内网后端之前就把它拦住。

它做什么

FRP-SSH-Guard 为选定的端口添加 nftables 策略:

  • 按来源、按端口限制新建连接,并临时封禁来源。
  • 按端口设置共享限速,缓解分布式连接突发。
  • 支持 IPv4/IPv6 的 IP 与 CIDR 白名单/黑名单,可限定到指定端口。
  • 记录封禁历史,对反复出现的来源升级封禁时长。
  • 可选的本机 SSH 22 端口防护,通过服务器 sshd 日志检测失败认证和无效用户登录。
  • 在防护端口间共享封禁,或按端口独立封禁;支持永久或限时的手动封禁。
  • 自动从管理员对公网主机的成功登录中学习可信来源,可通过 LEARN_ADMINS=off 停用。
  • 显式启用、重启恢复,以及守卫表丢失后的自动恢复。

对于转发的 SSH,守卫观察新的 TCP SYN 数据包,无法获取加密隧道内的认证结果。本机 SSH 监测读取公网服务器自身的 sshd 日志,从不收集密码。它与 SSH 认证和其他防火墙控制配合使用。

下载与安装

从最新发布页获取 Debian 安装包和校验文件,按照该版本发布页的说明安装下载的文件,并参照中文部署指南配置防护。

升级前,请阅读迁移指南,了解设置与行为的变化。已运行的守卫会在安装时刷新;首次安装或已停用的实例仍需选择端口并启用。

可编辑设置及白名单、黑名单位于 ~/.frp-ssh-guard/。配置修改需通过 check 和 reload 应用。各版本的具体变化见下方发布动态。

一次部署观测

运维者提供的一次部署快照(2026 年 10 月 13–17 日)记录:

  • 丢弃 3,206,432 个数据包,放行 967 个,占所提供计数器的 99.97%。
  • 到达后端的 SSH 连接从约 200 次/小时降到最近 60 分钟的 2 次。
  • 后端失败登录:使用前 6,442 次,最近 24 小时观测到 0 次。

这些数据来自一次具体部署,由运维者提供。具体部署版本和原始日志未经过独立验证。流量、配置和日志覆盖范围都会影响结果。

开源

FRP-SSH-Guard 采用 MIT 许可。Debian 安装包、源码、测试和中英文文档均可在 GitHub 获取。对应版本的验证记录列出了已测试平台及尚未覆盖的范围。