RaineDev
2026-06-22 · сетевая безопасность · ~6 мин

CrowdSec + MikroTik: баню сканеров прямо на роутере

У домашнего сервера с белым IP есть один неизбежный спутник — бесконечный поток сканеров, которые круглые сутки долбятся во все порты. Мне не нравилась идея пускать их до сервисов, поэтому я сделал так, чтобы атакующий умирал на самом краю сети — на роутере, ещё до того, как доберётся куда-либо.

Как это работает

Связка из трёх частей, и все они — свои:

Фильтрация на самом краю: сканер, который вчера час стучался в порты, теперь отсекается за секунды — молча, бесплатно и без участия сервера.

Что получилось интересного

Баунсер вышел маленьким, но аккуратным: TTL банов живёт через нативный timeout RouterOS (баны само-выпадают даже если баунсер умер), состояние сверяется с реальным содержимым роутера (дрейф чинится сам), а отдельный sentinel-маркер переживает ребут роутера. Большой community-список вынесен в отдельный процесс, чтобы не «голодить» быстрый локальный цикл.

Сверху — наблюдаемость (Prometheus + Grafana) и пуш-алерты в телефон через ntfy, если детект вдруг замолчит. Всё своё, без единого внешнего сервиса, которому надо доверять свои логи.

Статьи и код

Я расписал всё подробно — от первой строчки в логе до графиков и алертов — в цикле статей и выложил готовый обезличенный репозиторий «бери и запускай»:

Изначально делал под себя, а потом решил поделиться — в этом и весь смысл open-source. Поднимайте, ломайте, переделывайте под свою сеть.

← ко всем заметкам