Repolode
shizunge

shizunge/endlessh-go

Implementação em Go do tarpit SSH endlessh, com métricas Prometheus e um dashboard Grafana para estatísticas de atacantes.

Estrelas
1,455
Forks
55
Issues abertas
18
Último commit
há 8 dias

O que é?

endlessh-go é uma versão de endlessh em Go: um tarpit que aceita conexões SSH e envia linhas de banner lentamente para manter bots de força bruta conectados pelo maior tempo possível. Em vez de apenas gravar logs de texto, como a versão original em C, ele expõe métricas estruturadas do Prometheus sobre o número de conexões, os bytes enviados e o tempo em que os atacantes ficaram presos.

Opcionalmente, o servidor resolve o IP de cada atacante para um geohash usando ip-api ou um banco de dados MaxMind offline, e adiciona país, localização e geohash como labels. Um dashboard do Grafana (também disponível em grafana.com como ID 15156) exibe essas métricas no período selecionado, com links dos endereços IP para consultas no ARIN.

O projeto pode ser executado como binário independente ou contêiner Docker, escuta na porta 2222 por padrão, aceita várias portas e cabeçalhos do protocolo PROXY, e inclui um endpoint HTTP opcional para healthcheck. Com as métricas ativadas, o uso de memória é cerca de 10 MB maior que o da implementação em C.

Recursos principais

  • 01Expõe métricas Prometheus sobre o número de conexões, os bytes enviados e o tempo em que os atacantes ficaram presos.
  • 02Resolve os IPs dos atacantes para obter país, localização e geohash via ip-api ou um banco de dados MaxMind.
  • 03Inclui um dashboard do Grafana para visualizar a origem dos ataques ao longo do tempo.
  • 04Aceita várias portas de escuta, seleção entre IPv4 e IPv6 e cabeçalhos do protocolo PROXY.
  • 05Disponibiliza um endpoint HTTP opcional para healthcheck e uma imagem Docker com HEALTHCHECK integrado.

Casos de uso

  • Monitorar o tráfego de força bruta SSH direcionado a um servidor público e identificar sua origem.
  • Enviar estatísticas dos atacantes para uma stack Prometheus e Grafana existente.
  • Prender scanners SSH automatizados para desperdiçar seu tempo, mantendo o sshd real em outra porta.

Início rápido

  1. 1

    Clone o repositório e compile a partir do código-fonte

    go build .
  2. 2

    Execute o servidor

    ./endlessh-go &
  3. 3

    Conecte-se para testar o tarpit (o cliente deve ficar travado)

    ssh -p 2222 localhost

Antes de usar

  • A ativação de consultas GeoIP via ip-api pode estar sujeita a limites de requisições e restrições de uso comercial.
  • Usa cerca de 10 MB a mais de memória do que a implementação original em C.
  • Está licenciado sob a GPL-3.0, uma licença copyleft.

Tópicos

Perguntas frequentes

O que é endlessh-go?
Implementação em Go do tarpit SSH endlessh, com métricas Prometheus e um dashboard Grafana para estatísticas de atacantes. endlessh-go é uma versão de endlessh em Go: um tarpit que aceita conexões SSH e envia linhas de banner lentamente para manter bots de força bruta conectados pelo maior tempo possível. Em vez de apenas gravar logs de texto, como a versão original em C, ele expõe métricas estruturadas do Prometheus sobre o número de conexões, os bytes enviados e o tempo em que os atacantes ficaram presos.
endlessh-go é gratuito? Qual é a licença?
endlessh-go é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
endlessh-go ainda é mantido?
Manutenção ativa. O último commit de endlessh-go foi em 13 de out. de 2026.
Para que posso usar endlessh-go?
Monitorar o tráfego de força bruta SSH direcionado a um servidor público e identificar sua origem. Enviar estatísticas dos atacantes para uma stack Prometheus e Grafana existente. Prender scanners SSH automatizados para desperdiçar seu tempo, mantendo o sshd real em outra porta.
Como instalar endlessh-go?
Clone o repositório e compile a partir do código-fonte: go build . Execute o servidor: ./endlessh-go & Conecte-se para testar o tarpit (o cliente deve ficar travado): ssh -p 2222 localhost
Onde consigo endlessh-go?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/shizunge/endlessh-go

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados