Repolode
shizunge

shizunge/endlessh-go

endlessh SSH 蜜罐的 Go 实现,导出 Prometheus 指标并配有 Grafana 仪表盘,用于查看攻击来源统计。

Star
1,455
Fork
55
未关闭 Issue
18
最近提交
8天前

这是什么?

endlessh-go 是 endlessh 的 Go 语言实现。endlessh 是一个 SSH 蜜罐,会缓慢回送 banner 行,让暴力破解机器人长时间挂起。与原版 C 实现只输出文本日志不同,它以 Prometheus 指标的形式导出连接数、发送字节数和被困时长等结构化数据。

服务可选择通过 ip-api 或离线 MaxMind 数据库将攻击者 IP 解析为 geohash,并把国家、地区和 geohash 作为标签附加到指标上。配套的 Grafana 仪表盘(也可在 grafana.com 上以 ID 15156 导入)按所选时间范围展示这些数据,IP 地址可点击跳转到 ARIN 查询。

项目可作为独立二进制或 Docker 容器运行,默认监听 2222 端口,支持多端口和 PROXY protocol 头,并提供可选的 HTTP 健康检查接口。启用指标后,内存占用大约比 C 版本多 10MB。

核心功能

  • 01以 Prometheus 指标导出连接数、发送字节数和被困时长。
  • 02通过 ip-api 或 MaxMind 数据库将攻击者 IP 解析为国家、位置和 geohash。
  • 03提供 Grafana 仪表盘,展示攻击来源随时间的变化。
  • 04支持多端口监听、IPv4/IPv6 选择以及 PROXY protocol 头。
  • 05提供可选的 HTTP 健康检查接口,Docker 镜像内置 HEALTHCHECK。

适用场景

  • 监控公网服务器上的 SSH 暴力破解流量并查看来源地区。
  • 将攻击者统计数据接入已有的 Prometheus 和 Grafana 监控体系。
  • 把自动化 SSH 扫描器困在蜜罐中消耗其时间,同时真实 sshd 运行在其他端口。

快速上手

  1. 1

    克隆仓库并从源码构建

    go build .
  2. 2

    运行服务器

    ./endlessh-go &
  3. 3

    连接测试(客户端应被挂起)

    ssh -p 2222 localhost

使用前须知

  • 通过 ip-api 进行 GeoIP 查询可能受速率限制,且有商业使用限制。
  • 相比原版 C 实现多占用约 10MB 内存。
  • 采用 GPL-3.0 许可证,属于 Copyleft 许可。

标签

常见问题

endlessh-go 是什么?
endlessh SSH 蜜罐的 Go 实现,导出 Prometheus 指标并配有 Grafana 仪表盘,用于查看攻击来源统计。 endlessh-go 是 endlessh 的 Go 语言实现。endlessh 是一个 SSH 蜜罐,会缓慢回送 banner 行,让暴力破解机器人长时间挂起。与原版 C 实现只输出文本日志不同,它以 Prometheus 指标的形式导出连接数、发送字节数和被困时长等结构化数据。
endlessh-go 可以免费使用吗?用的什么许可证?
endlessh-go 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
endlessh-go 还在维护吗?
活跃维护中。endlessh-go 最近一次提交是在 2026年10月13日。
endlessh-go 适合用来做什么?
监控公网服务器上的 SSH 暴力破解流量并查看来源地区。 将攻击者统计数据接入已有的 Prometheus 和 Grafana 监控体系。 把自动化 SSH 扫描器困在蜜罐中消耗其时间,同时真实 sshd 运行在其他端口。
endlessh-go 怎么安装和运行?
克隆仓库并从源码构建: go build . 运行服务器: ./endlessh-go & 连接测试(客户端应被挂起): ssh -p 2222 localhost
在哪里获取 endlessh-go?
源代码和安装说明在 GitHub 上:https://github.com/shizunge/endlessh-go

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目