Repolode
shizunge

shizunge/endlessh-go

Реализация SSH-ловушки endlessh на Go с экспортом метрик Prometheus и дашбордом Grafana для статистики атакующих.

Звёзды
1,455
Форки
55
Открытые issues
18
Последний коммит
8 дней назад

Что это?

endlessh-go — порт endlessh на Go, SSH-ловушки, которая принимает подключения и медленно отправляет строки баннера, чтобы боты для перебора паролей оставались подключёнными как можно дольше. В отличие от оригинальной версии на C, которая записывает только текстовые логи, проект предоставляет структурированные метрики Prometheus: число подключений, объём отправленных данных и время, проведённое в ловушке.

При необходимости сервер определяет геохеш для каждого IP-адреса атакующего с помощью ip-api или офлайн-базы MaxMind и добавляет страну, местоположение и геохеш в качестве меток. Дашборд Grafana (также доступен на grafana.com под ID 15156) показывает эти метрики за выбранный период; IP-адреса ведут на страницы поиска ARIN.

Проект запускается как отдельный бинарный файл или контейнер Docker, по умолчанию слушает порт 2222, поддерживает несколько портов и заголовки протокола PROXY, а также включает необязательный HTTP-эндпоинт проверки работоспособности. Указано, что при включённых метриках он потребляет примерно на 10 МБ больше памяти, чем реализация на C.

Ключевые возможности

  • 01Экспортирует метрики Prometheus: число подключений, объём отправленных данных и время, проведённое в ловушке.
  • 02Определяет страну, местоположение и геохеш для IP-адресов атакующих с помощью ip-api или базы MaxMind.
  • 03Включает дашборд Grafana для визуализации источников атак во времени.
  • 04Поддерживает несколько портов для прослушивания, выбор IPv4/IPv6 и заголовки протокола PROXY.
  • 05Предоставляет необязательный HTTP-эндпоинт проверки работоспособности и образ Docker со встроенным HEALTHCHECK.

Сценарии использования

  • Мониторинг SSH-трафика с перебором паролей, поступающего на публичный сервер, и определение его источников.
  • Передача статистики атакующих в существующий стек Prometheus и Grafana.
  • Перехват автоматизированных SSH-сканеров, чтобы они тратили время впустую, пока настоящий sshd работает на другом порту.

Быстрый старт

  1. 1

    Клонируйте репозиторий и соберите проект из исходного кода

    go build .
  2. 2

    Запустите сервер

    ./endlessh-go &
  3. 3

    Подключитесь, чтобы проверить tarpit (клиент должен зависнуть)

    ssh -p 2222 localhost

Что важно знать

  • При включении GeoIP-поиска через ip-api могут действовать ограничения на частоту запросов и коммерческое использование.
  • Использует примерно на 10 МБ больше памяти, чем исходная реализация на C.
  • Распространяется по лицензии GPL-3.0 — лицензии с авторским левом.

Темы

Частые вопросы

Что такое endlessh-go?
Реализация SSH-ловушки endlessh на Go с экспортом метрик Prometheus и дашбордом Grafana для статистики атакующих. endlessh-go — порт endlessh на Go, SSH-ловушки, которая принимает подключения и медленно отправляет строки баннера, чтобы боты для перебора паролей оставались подключёнными как можно дольше. В отличие от оригинальной версии на C, которая записывает только текстовые логи, проект предоставляет структурированные метрики Prometheus: число подключений, объём отправленных данных и время, проведённое в ловушке.
endlessh-go можно использовать бесплатно? Какая у него лицензия?
endlessh-go распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
endlessh-go всё ещё поддерживается?
Активно поддерживается. Последний коммит в endlessh-go — 13 окт. 2026 г..
Для чего можно использовать endlessh-go?
Мониторинг SSH-трафика с перебором паролей, поступающего на публичный сервер, и определение его источников. Передача статистики атакующих в существующий стек Prometheus и Grafana. Перехват автоматизированных SSH-сканеров, чтобы они тратили время впустую, пока настоящий sshd работает на другом порту.
Как установить endlessh-go?
Клонируйте репозиторий и соберите проект из исходного кода: go build . Запустите сервер: ./endlessh-go & Подключитесь, чтобы проверить tarpit (клиент должен зависнуть): ssh -p 2222 localhost
Где скачать endlessh-go?
Исходный код и инструкции по установке — на GitHub: https://github.com/shizunge/endlessh-go

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты