Как Endlessh превращает хакеров в беззащитных мух в паутине
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Представьте: злоумышленник сканирует ваш сервер в поисках открытого SSH-порта. Вместо быстрого отказа или приглашения к авторизации он получает... бесконечно долгий баннер, который медленно загружает его клиент часами. Это не баг, а фича — и называется она SSH-тарпит.
Что такое Endlessh и кому он пригодится
Endlessh — это минималистичный демон на C, который имитирует SSH-сервер с одной коварной особенностью: он отправляет бесконечный поток случайных данных с мизерной скоростью (по умолчанию — по строке каждые 10 секунд).
Идеальный инструмент для:
- Админов, уставших от брутфорс-атак
- Владельцев серверов с публичным SSH
- Любителей нестандартных решений безопасности
Как это работает: три уровня гениальности
- Предварительная ловушка — перехват на этапе баннера (до криптографии)
- Медленное удушение — клиент зависает в ожидании данных
- Экономия ресурсов — однопоточный poll() вместо fork()
Пример запуска на альтернативном порту:
endlessh -p 2222 -v >endlessh.log 2>endlessh.err
Гибкая настройка под любые нужды
Конфигурационный файл (по умолчанию /etc/endlessh/config) позволяет:
# Задержка между строками в миллисекундах
Delay 10000
# Максимальная длина строки (3-255 символов)
MaxLineLength 32
# Лимит одновременных соединений
MaxClients 4096
Интересный нюанс: более короткие строки иногда эффективнее — некоторые клиенты сдаются после определёного объёма данных.
Техническая кухня проекта
- Язык: Чистый C без зависимостей
- Архитектура: Однопоточный poll() для управления множеством клиентов
- Размер: Всего ~79 строк кода (по данным GitHub)
- Лицензия: The Unlicense — можно всё
Особенности сборки для экзотических систем:
- Solaris требует дополнительных библиотек (-lnsl -lrt -lsocket)
- RHEL 6 нужно линковать с librt
Практические сценарии использования
- Приманка для скрипт-кидди — перенаправляйте атаки с основного порта
- Система раннего предупреждения — логи подключений как индикатор атак
- Защита для уязвимых устройств — IoT-гаджеты с открытым SSH
Протоколирование через syslog (-s) или stdout (-v), статистика по SIGUSR1 — всё для удобного мониторинга.
Вывод: стоит ли попробовать?
Endlessh — это: ✔️ Элегантное решение сложной проблемы ✔️ Минимальные требования к ресурсам ✔️ Гибкость настройки под свои нужды
Особенно рекомендую владельцам серверов с публичным SSH — иногда лучшая защита это не блокировка, а бесконечное ожидание.
