Боты — как тараканы: появляются сразу после включения сервера в интернет. Они сканируют, брутят, ищут уязвимости, долбятся в стандартные порты. Но вместо того чтобы просто блокировать — можно поставить ловушки. Заманить, проанализировать, забанить, а заодно собрать данные для своей безопасности.
Вот реальные ловушки, которые используют админы, чтобы не только защититься, но и посмеяться над ботами.
Как уже говорили — перенос SSH с 22 на другой порт (например, 2222), а на 22-м — ничего не слушать, только банить.
Любое подключение к порту 22 — автоматом в бан через fail2ban или iptables.
# Баним всех, кто стучится на 22 порт
iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-BOT: "
iptables -A INPUT -p tcp --dport 22 -j DROP
Можно даже логировать пакеты и собирать IP для дальнейшего blacklisting.
Ещё жестче — поставить на 22 порт фейковый SSH-сервер, который имитирует вход, но ничего не даёт.
Решения:
Бот подключается, вводит root:123456, пытается запустить скрипт — а ты записываешь всё. Потом анализируешь: откуда идут атаки, какие пейлоады используют.
Запусти на 80/443 портах фейковый сайт с видимостью уязвимого сервиса:
/wp-login.php (даже если у тебя не WordPress)/admin, /phpmyadmin, /loginКак только кто-то пытается залогиниться — бан по IP. Можно даже подсунуть боту "успешный вход", а потом показать: «У вас нет прав. Обратитесь к админу.» — и заодно собрать User-Agent, IP, страну.
Такие штуки делают через Nginx + Python-бэк или honeynginx.
Боты постоянно сканируют порты баз данных. Можно:
Пример: MySQL蜜罐 (на GitHub), OpenCanary — умеет имитировать PostgreSQL, Redis, MySQL.
Как только бот пытается подключиться с root:password — ты получаешь алерт.
FTP (21), Telnet (23) — устарели, но боты всё ещё долбятся. Используй это.
Запусти на этих портах:
passwd.zip, backup.tar), которые на самом деле — шелл-скрипты, вызывающие бан.Решение: dionaea, glastopf, OpenCanary.
Боты ищут незащищённые NoSQL-базы. Многие из них пытаются записать свой ключ в Redis или создать индекс в ES.
Можно поставить fake Redis server, который:
CONFIG SET, SLAVEOFТак ты узнаешь, кто и как атакует, и при этом не пострадаешь.
Если у тебя нет DNS-сервера — а кто-то стучится на 53 порт, это 100% сканирование или DDoS-отражение.
Можно:
Если у тебя веб-приложение — добавь в Nginx фейковые пути:
/api/v1/admin/debug/internalПри доступе — не 404, а 200 OK + JSON с "данными", но при этом триггерится алерт и бан.
Так ты поймаешь ботов, которые сканируют на предмет утечек API.
Создай фейковый сетевой интерфейс или выдели "мёртвый" IP в подсети, который нигде не используется.
Любое подключение к нему — 100% сканирование. Лови через tcpdump или socat и бань.
Пример:
# Ловим всё, что идёт на 192.168.1.99
tcpdump -i eth0 host 192.168.1.99 -w honeypot.pcap
Объедини все ловушки в одну систему через fail2ban.
Создай кастомные фильтры для каждого сервиса (SSH, HTTP, MySQL и т.д.) и добавляй нарушителей в ipset, который блокируется через iptables или nftables.
Пример:
# Создаём сет ipset create botnet hash:ip timeout 86400 # В fail2ban в действии actionban = ipset add botnettimeout 86400
Можно добавить юмора:
Too many failed attempts. The virtual panda is disappointed in you.# rm -rf /system и анимацией "удаления".🤖 Бот пойман: 45.122.88.101 пытался зайти как admin:adminБоты — не враги, а бесплатные тестировщики твоей безопасности. Используй их:
Чем больше ловушек — тем тише в логах и спокойнее сон.
Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!