Repolode
shizunge

shizunge/endlessh-go

Implementación en Go de la tarpit SSH endlessh, que exporta métricas de Prometheus e incluye un dashboard de Grafana con estadísticas de los atacantes.

Estrellas
1,455
Forks
55
Issues abiertos
18
Último commit
hace 8 días

¿Qué es?

endlessh-go es un port a Go de endlessh, una tarpit que acepta conexiones SSH y envía líneas del banner lentamente para mantener conectados el mayor tiempo posible a los bots que realizan ataques de fuerza bruta. En lugar de limitarse a escribir registros de texto como la versión original en C, expone métricas estructuradas de Prometheus sobre el número de conexiones, los bytes enviados y el tiempo que los atacantes permanecen atrapados.

El servidor puede resolver opcionalmente la IP de cada atacante en un geohash mediante ip-api o una base de datos MaxMind sin conexión, y añadir el país, la ubicación y el geohash como etiquetas. Un dashboard de Grafana (también disponible en grafana.com con el ID 15156) muestra estas métricas en el intervalo de tiempo seleccionado y enlaza las direcciones IP con consultas en ARIN.

El proyecto se ejecuta como binario independiente o contenedor Docker, escucha en el puerto 2222 de forma predeterminada, admite varios puertos y cabeceras del protocolo PROXY, e incluye un endpoint HTTP opcional para comprobar el estado. Se indica que, con las métricas habilitadas, consume aproximadamente 10 MB más de memoria que la implementación en C.

Funciones clave

  • 01Exporta el número de conexiones, los bytes enviados y el tiempo que los atacantes permanecen atrapados como métricas de Prometheus.
  • 02Resuelve las IP de los atacantes para obtener el país, la ubicación y el geohash mediante ip-api o una base de datos MaxMind.
  • 03Incluye un dashboard de Grafana para visualizar las fuentes de los ataques a lo largo del tiempo.
  • 04Admite varios puertos de escucha, la selección de IPv4/IPv6 y cabeceras del protocolo PROXY.
  • 05Ofrece un endpoint HTTP opcional para comprobar el estado y una imagen Docker con HEALTHCHECK integrado.

Casos de uso

  • Supervisar el tráfico de ataques de fuerza bruta SSH que recibe un servidor público y ver de dónde procede.
  • Incorporar estadísticas de los atacantes a una infraestructura existente de Prometheus y Grafana.
  • Atrapar escáneres SSH automatizados para hacerles perder el tiempo y mantener sshd en otro puerto para los usuarios legítimos.

Inicio rápido

  1. 1

    Clona el repositorio y compílalo desde el código fuente

    go build .
  2. 2

    Ejecuta el servidor

    ./endlessh-go &
  3. 3

    Conéctate para probar el tarpit (el cliente debería quedarse bloqueado)

    ssh -p 2222 localhost

Antes de usarlo

  • La activación de las consultas GeoIP mediante ip-api puede estar sujeta a límites de solicitudes y restricciones de uso comercial.
  • Usa unos 10 MB más de memoria que la implementación original en C.
  • Está publicado bajo la licencia GPL-3.0, una licencia copyleft.

Temas

Preguntas frecuentes

¿Qué es endlessh-go?
Implementación en Go de la tarpit SSH endlessh, que exporta métricas de Prometheus e incluye un dashboard de Grafana con estadísticas de los atacantes. endlessh-go es un port a Go de endlessh, una tarpit que acepta conexiones SSH y envía líneas del banner lentamente para mantener conectados el mayor tiempo posible a los bots que realizan ataques de fuerza bruta. En lugar de limitarse a escribir registros de texto como la versión original en C, expone métricas estructuradas de Prometheus sobre el número de conexiones, los bytes enviados y el tiempo que los atacantes permanecen atrapados.
¿endlessh-go es gratuito? ¿Qué licencia tiene?
endlessh-go es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿endlessh-go sigue mantenido?
Mantenimiento activo. El último commit de endlessh-go fue el 13 oct 2026.
¿Para qué puedo usar endlessh-go?
Supervisar el tráfico de ataques de fuerza bruta SSH que recibe un servidor público y ver de dónde procede. Incorporar estadísticas de los atacantes a una infraestructura existente de Prometheus y Grafana. Atrapar escáneres SSH automatizados para hacerles perder el tiempo y mantener sshd en otro puerto para los usuarios legítimos.
¿Cómo se instala endlessh-go?
Clona el repositorio y compílalo desde el código fuente: go build . Ejecuta el servidor: ./endlessh-go & Conéctate para probar el tarpit (el cliente debería quedarse bloqueado): ssh -p 2222 localhost
¿Dónde consigo endlessh-go?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/shizunge/endlessh-go

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados