Существует современная и функциональная замена старичка Fail2Ban - CrowdSec. Я её давно... — 12 мая 2026 г. в 09:11:01.031
Существует современная и функциональная замена старичка Fail2Ban - CrowdSec. Я её давно знаю, использовал ещё лет 5-6 назад. Писал статью по ней в своё время. С тех пор много воды утекло. Решил посмотреть, что она из себя представляет сейчас. Дабы не обмануться и не перепроверять информацию, ИИ вообще не использовал. Просто открыл документацию и настроил базовые вещи. Сразу скажу, что система в текущем её бесплатном исполнении мне понравилась своими возможностями. Если уж сейчас и настраивать, то именно её, а не Fail2Ban. Принцип настройки CrowdSec условно можно назвать похожим на Fail2Ban, но архитектурно она отличается. В CrowdSec тоже есть источники логов, правила обработки, настройки действий. Но всё это очень сильно развито по сравнению с единственным скриптом на python в Fail2Ban. CrowdSec состоит из отдельных компонентов, которые взаимодействуют между собой по API. Я присмотрел для себя следующую схему работы CrowdSec, которая опирается на общее хранилище логов Loki, которое я недавно разбирал: ◽️Основной движок CrowdSec устанавливается в отдельную VM или контейнер. Он ходит в общее хранилище Loki за логами. ◽️На пограничный шлюз, который занимается фильтрацией трафика, ставится crowdsec-firewall-bouncer-iptables, или другой в зависимости от используемого файрвола. ◽️Для реализации функциональности WAF на веб сервер или прокси в зависимости от его типа устанавливается соответствующий bouncer. Например, crowdsec-nginx-bouncer для Nginx. ◽️Все необходимые логи стекаются в Loki. В CrowdSec устанавливаются необходимые парсеры и наборы с описанием уязвимостей. И всё это вместе работает в единой связке. Для базовых задач берутся готовые парсеры и наборы правил. Самому можно не заниматься дополнительной настройкой. Достаточно будет вручную только источники логов подключить. Остальное будет взято из готовых настроек. Сразу скажу, что система непростая. Я некоторое время потратил, чтобы разобраться, вникнуть в суть и развернуть на одиночном сервере, проверить работу. То, что я описал, будет работать в бесплатной версии, никаких подписок не надо. Готовые списки адресов брать не будем, свои тоже никуда не отправляем. У CrowdSec раньше была бесплатная веб панель для управления и мониторинга, но они её убрали. Предлагают бесплатно зарегистрироваться в облачной панели, использовать её, но за это они будут забирать вашу аналитику для насыщения своих списков, которые она продают по подписке за приличные деньги. В целом, всё честно и прозрачно. Я в веб панели не регистрировался, запустил всё локально. Покажу кратко, что сделал. 1️⃣ Установил CrowdSec и firewall-bouncer для iptables: # curl -s https://install.crowdsec.net | sudo sh # apt install crowdsec # sudo apt install crowdsec-firewall-bouncer-iptables Первая команда-скрипт подключает репозиторий. Это можно сделать вручную. По умолчанию прилетели настройки для анализа системных syslog файлов и journalctl логов от ssh.service, конфигурация firewall-bouncer для блокировки IP, парсеры ssh логов. Система полностью автоматически настроена для блокировки как минимум нежелательной активности по SSH. Для системных логов надо отдельно правила с уязвимостями загружать. 2️⃣ Сходил на другой сервер и 5 раз ввёл неверный пароль по SSH. Получил бан. Проверил его так: # iptables -L -v -n | grep crowdsec Появилось новое правило для crowdsec, где используется список ipset для всех заблокированных адресов. Посмотрел список алертов: # cscli alerts list Увидел там своё событие, посмотрел его подробности: # cscli alerts inspect -d 2 3️⃣ Проверил список установленных наборов с правилами, по которым делаем проверки: # cscli collections list Дополнительные ставим так: # cscli collections install crowdsecurity/nginx Смотрю все основные метрики службы: # cscli metrics В принципе, этой базы достаточно для того, чтобы начать локально пользоваться системой. Мне она понравилась, буду изучать дальше. #crowdsec #security #waf

