Боты — как тараканы: появляются сразу после включения сервера в интернет. Они сканируют, брутят, ищут уязвимости, долбятся в стандартные порты. Но вместо того чтобы просто блокировать — можно поставить ловушки. Заманить, проанализировать, забанить, а заодно собрать данные для своей безопасности.
Вот реальные ловушки, которые используют админы, чтобы не только защититься, но и посмеяться над ботами.
Как уже говорили — перенос 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
Боты — не враги, а бесплатные тестировщики твоей безопасности. Используй их:
Чем больше ловушек — тем тише в логах и спокойнее сон.
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!