В этой статье будет рассмотрена простейшая но крайне коварная ловушка для SSH работающая по принципу HoneyPot. Ловушка основана на проекте с GitHub, реализация написана на Go, регистрирует все попытки входа в «систему», но при этом всегда будет отвечать что пароль не верный. Ведёт подробный лог, в который заносит IP адрес «клиента», время и пару логин пароль, которой пытались подключится.
Я использую Ubuntu с файрволом UFW, мне нравится использовать механизм ограничивающий количество подключений за отведённой время. Добавляем правило файрволла:
ufw limit 22/tcp comment 'FakeSSH'
Этим правилом разрешим подключение на стандартный порт SSH, но с лимитом, 6 и более подключений от одного хоста за 30 секунд будут блокироваться.
Проверяем, состояние файрволла:
ufw status verbose
Видим что порт лимитировано открыт с любого адреса.
Далее всё до безобразия просто, запускаем в docker нашу ловушку:
docker run -d --restart=always -p 22:22 --name fakessh fffaraz/fakessh
Всё, можем проверить подключение на 22 порту извне, всё будет выглядеть как подключение к реальному хосту. Каждый раз пароль будет неверный, а в логах мы увидим следующее:
docker logs -f fakessh
Видим как бот, упорно пытается подобрать верную комбинацию. Тем самым мы обезопасили свой хост, от простейших ботов, они будут пытаться взломать сервер на стандартном порту, тем временем реальный порт службы SSH изменён.
good!!!