Repolode
shizunge

shizunge/endlessh-go

Prometheus 메트릭과 공격자 통계용 Grafana 대시보드를 제공하는 endlessh의 Go 구현체입니다.

스타
1,455
포크
55
열린 이슈
18
마지막 커밋
8일 전

어떤 프로젝트인가요?

endlessh-go는 SSH 연결을 받아 배너 줄을 천천히 전송해 무차별 대입 공격 봇이 최대한 오래 연결된 상태로 머물게 하는 타르핏 endlessh의 Go 포트입니다. 기존 C 버전처럼 텍스트 로그만 기록하는 대신 연결 수, 전송 바이트, 봇을 붙잡아 둔 시간을 포함한 구조화된 Prometheus 메트릭을 노출합니다.

서버는 선택적으로 ip-api 또는 오프라인 MaxMind 데이터베이스를 사용해 공격자 IP를 geohash로 변환하고, 국가, 위치, geohash를 레이블로 추가할 수 있습니다. Grafana 대시보드( grafana.com에서도 ID 15156으로 제공)는 선택한 기간의 메트릭을 시각화하며, IP 주소를 클릭하면 ARIN 조회 페이지로 이동합니다.

이 프로젝트는 독립 실행형 바이너리나 Docker 컨테이너로 실행되며, 기본적으로 2222 포트에서 수신 대기합니다. 여러 포트와 PROXY protocol 헤더를 지원하고, 선택적으로 HTTP healthcheck 엔드포인트를 제공합니다. 메트릭을 활성화하면 C 구현보다 메모리를 약 10MB 더 사용한다고 안내되어 있습니다.

핵심 기능

  • 01연결 수, 전송 바이트, 봇을 붙잡아 둔 시간을 Prometheus 메트릭으로 내보냅니다.
  • 02ip-api 또는 MaxMind 데이터베이스를 사용해 공격자 IP의 국가, 위치, geohash를 확인합니다.
  • 03시간에 따른 공격 출처를 시각화하는 Grafana 대시보드를 제공합니다.
  • 04여러 수신 포트, IPv4/IPv6 선택, PROXY protocol 헤더를 지원합니다.
  • 05선택적 HTTP healthcheck 엔드포인트와 내장 HEALTHCHECK가 포함된 Docker 이미지를 제공합니다.

활용 사례

  • 공개 서버에 유입되는 SSH 무차별 대입 공격 트래픽을 모니터링하고 공격 출처를 확인합니다.
  • 공격자 통계를 기존 Prometheus 및 Grafana 스택으로 전달합니다.
  • 실제 sshd를 다른 포트에서 운영하면서 자동화된 SSH 스캐너를 붙잡아 시간을 낭비하게 합니다.

빠른 시작

  1. 1

    저장소를 클론하고 소스에서 빌드합니다

    go build .
  2. 2

    서버를 실행합니다

    ./endlessh-go &
  3. 3

    연결하여 tarpit을 테스트합니다(클라이언트가 멈춰야 합니다)

    ssh -p 2222 localhost

사용 전 알아둘 점

  • ip-api를 통해 GeoIP 조회를 활성화하면 요청 제한 및 상업적 이용 제한이 적용될 수 있습니다.
  • 원래 C 구현보다 메모리를 약 10MB 더 사용합니다.
  • 카피레프트 라이선스인 GPL-3.0으로 제공됩니다.

토픽

자주 묻는 질문

endlessh-go은(는) 무엇인가요?
Prometheus 메트릭과 공격자 통계용 Grafana 대시보드를 제공하는 endlessh의 Go 구현체입니다. endlessh-go는 SSH 연결을 받아 배너 줄을 천천히 전송해 무차별 대입 공격 봇이 최대한 오래 연결된 상태로 머물게 하는 타르핏 endlessh의 Go 포트입니다. 기존 C 버전처럼 텍스트 로그만 기록하는 대신 연결 수, 전송 바이트, 봇을 붙잡아 둔 시간을 포함한 구조화된 Prometheus 메트릭을 노출합니다.
endlessh-go은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
endlessh-go은(는) GPL-3.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
endlessh-go은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. endlessh-go의 마지막 커밋은 2026년 10월 13일입니다.
endlessh-go은(는) 어디에 사용할 수 있나요?
공개 서버에 유입되는 SSH 무차별 대입 공격 트래픽을 모니터링하고 공격 출처를 확인합니다. 공격자 통계를 기존 Prometheus 및 Grafana 스택으로 전달합니다. 실제 sshd를 다른 포트에서 운영하면서 자동화된 SSH 스캐너를 붙잡아 시간을 낭비하게 합니다.
endlessh-go는 어떻게 설치하나요?
저장소를 클론하고 소스에서 빌드합니다: go build . 서버를 실행합니다: ./endlessh-go & 연결하여 tarpit을 테스트합니다(클라이언트가 멈춰야 합니다): ssh -p 2222 localhost
endlessh-go은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/shizunge/endlessh-go

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트