Бесплатные блок-листы для CrowdSec: Установка, настройка и лучшие источники 2026
Узнайте, как бесплатно усилить защиту вашего сервера с помощью CrowdSec. Пошаговая инструкция по добавлению и настройке блок-листов из открытых источников для эффективной борьбы с брутфорсом, сканерами и DDoS.
Добавляем блок-листы в CrowdSec: бесплатный щит против угроз
Современные угрозы растут как грибы после дождя. Каждый день появляются новые боты, сканеры уязвимостей и атакующие, которые ищут слабые места в вашей инфраструктуре. Стандартные правила CrowdSec, безусловно, хороши, но они часто похожи на сачок с крупной ячейкой — многие угрозы просто проскальзывают. Сегодня я покажу, как бесплатно усилить защиту вашего сервера с помощью блок-листов.
Что такое CrowdSec и зачем нужны блок-листы?
CrowdSec — это современный, open-source IDS/IPS (система обнаружения/предотвращения вторжений) с механизмом репутации (reputation). Он работает по принципу «толпы»: если один пользователь обнаружил подозрительный IP, вся община CrowdSec получает сигнал и может заблокировать этот адрес.
Принцип работы прост:
- Агент анализирует логи (веб-сервера, SSH, VPN и т.д.)
- При обнаружении атаки (брутфорс, сканирование, флуд) IP попадает в коллективный список (шерлок).
- Другие участники сети автоматически получают обновления и блокируют этот IP.
Но зачем нужны блок-листы (blocklists)? Стандартные правила CrowdSec реагируют только на уже обнаруженные активные атаки. Блок-листы — это проактивная защита. Это предварительно подготовленные списки IP-адресов, подсетей или пользовательских агентов, которые известны как источники злонамеренного трафика. Добавляя их, вы блокируете угрозы до того, как они атакуют ваш сервер.
Проблема: Почему стандартных правил CrowdSec недостаточно?
Давайте честно: CrowdSec — не панацея. Вот почему одного только его базового набора часто не хватает:
- Слепые зоны: CrowdSec полагается на обнаружение атаки в реальном времени. Если атакующий использует новый, еще неизвестный вектор или медленный сканер, его могут не распознать сразу.
- Ограниченный охват: Базовые сценарии (scenarios) настроены на типовые угрозы. Они могут пропустить, например, сборщики email-адресов (сканеры для спама) или ботов, маскирующихся под легитимный трафик.
- Атаки нулевого дня: Когда появляется новая уязвимость, сообщество CrowdSec не успевает мгновенно создать для нее правило. Блок-листы от специализированных источников могут быть оперативнее.
- Ресурсы сервера: Каждый запрос, даже от бота, потребует CPU и I/O. Блокируя целые подсети на уровне IP-сети (iptables/nftables) или приложения (fail2ban-стиль), вы значительно экономите ресурсы.
Пример: Ваш сайт WordPress. Стандартные правила CrowdSec поймают брутфорс админки. Но бот, который спамит комментарии, или сканер, перебирающий старые версии плагинов, может пройти незаметно. Блок-лист от CMilitary или IP2Proxy поможет отсечь такие атаки заранее.
Решение: Где найти качественные, бесплатные блок-листы
Важно! Используйте только проверенные источники, чтобы не заблокировать легитимный трафик. Вот несколько надежных и бесплатных вариантов:
1. IP-адреса и подсети
Это основные списки для блокировки целых диапазонов.
- Firehol Level 1 Lists: https://iplists.firehol.org/ — Один из лучших агрегаторов. Собирает списки из десятков источников (адреса из центров мониторинга атак, известные провайдеры спама и т.д.). Уровень 1 — безопасный базовый набор.
- IP2Proxy LITE (PX1-PX4): https://lite.ip2location.com/ip2proxy-lite — Отличный список для блокировки прокси, VPN и Tor. Бесплатные обновления раз в месяц.
- CrowdSec Community Blocklist: Хотя это и "шеф-помощь", в нем есть ссылки на общие списки, которые можно подключать.
- Модули CrowdSec (Hubs): CrowdSec имеет официальный
Hub(https://hub.crowdsec.net/), где можно найти коллекции от сообщества. Например,crowdsecurity/http-crawlersилиcrowdsecurity/geoip-enrichдля блокировки по странам (используйте с осторожностью).
2. Блокировка по User-Agent (UA)
Полезно для фильтрации легких ботов, которые сканируют CMS.
- BadBots User-Agent Lists: Многие проекты на GitHub (напр.,
mitchellkrogza/nginx-ultimate-bad-bot-blocker) содержат актуальные списки вредоносных User-Agent. - Сборники "Smart Bots": Блокируем не только явно вредоносные, но и нежелательные (например, сборщики данных, прайс-агрегаторы).
⚠️ Правила безопасности при выборе списков:
- Частота обновлений: Списки должны обновляться регулярно (ежедневно или чаще).
- Репутация источника: Известные проекты (Firehol, IP2Location) более надежны.
- Тип угрозы: Выбирайте под специфику вашего сервиса (VPN, веб-сервер, API).
Пошаговая инструкция: Как добавить блок-листы в CrowdSec
Предположим, вы уже установили и настроили базовый CrowdSec.
Шаг 1: Понимание механизма работы (Технический ликбез)
Прежде чем лезть в файлы, важно понять, как CrowdSec использует списки. CrowdSec не просто читает файл и блокирует. Он работает по схеме:
- Источник данных (файл или URL) загружается.
- Парсер (Parser) вычитывает этот источник и извлекает полезные данные (например, IP-адреса).
- Эти данные отправляются во внутреннюю базу решений CrowdSec.
- Брандмауэр (Bouncer) подхватывает эти решения и применяет блокировку (через nftables/iptables или на уровне приложения).
Следовательно, нам нужно:
- Определить источник (где лежит список).
- Настроить парсер, который будет этот список разбирать.
- Использовать сценарий (Scenario), который будет реагировать на "плохой" IP.
Для простоты в 95% случаев мы будем использовать официальные коллекции из Hub, где всё уже настроено. Ручная настройка нужна только для очень специфичных списков.
Шаг 2: Использование Hub (Рекомендуемый способ)
Это самый надежный и быстрый метод.
-
Обновите Hub:
sudo cscli hub update -
Найдите коллекцию: Зайдите на https://hub.crowdsec.net/ и воспользуйтесь поиском. Для начала рекомендую:
crowdsecurity/http-crawlers— блокировка популярных сканеров.crowdsecurity/geoip-enrich— для геоблокировки (требует настройки GeoIP баз).- Сторонние коллекции (например, для списков Firehol или блокировки по User-Agent).
-
Установите коллекцию:
# Пример установки коллекции для блокировки веб-сканеров sudo cscli collections install crowdsecurity/http-crawlersИли для стороннего источника (если нашли в Hub):
sudo cscli collections install user/collection-name -
Активируйте сценарии: После установки коллекции часто нужно активировать сценарий, который будет использоваться.
# Смотрим, что установилось sudo cscli scenarios list # Активируем нужный (если он не активен) sudo cscli scenarios enable crowdsecurity/http-crawlers
Шаг 3: Ручная настройка (Для продвинутых)
Если нужного готового решения нет, настраиваем вручную. Создадим файл для списка IP.
-
Создаем файл парсера: В
/etc/crowdsec/parsers/создаемmy_blocklist.yaml. Формат YAML:name: my_ip_blocklist.parser filter: evt.Parsed.source_ip != "" nodes: - name: GetIpFromList type: rw filter: evt.Parsed.static_ip != "" statics: - parsed: source_ip expression: evt.Parsed.static_ipЭтот парсер берет статически определенный IP (который мы передадим из сценария) и помещает его в поле
source_ip. -
Создаем файл сценария: В
/etc/crowdsec/scenarios/создаемmy_blocklist.yaml. Важно! Сценарий должен использовать типhttp:requestsилиssh:authв зависимости от сервиса.type: http:requests name: my.custom.blocklist filter: "evt.Meta.source_ip != ''" blackhole: 1m capacity: 10 groupby: evt.Meta.source_ip labels: service: http type: blocklist leakspeed: "10/1s"Обратите внимание: здесь нет поля
data. Данные (IP) поступают из парсера, который мы настроили выше. -
Добавляем источник данных (файл списка): Создаем файл блок-листа (например,
my_ip_list.txt) в удобном месте.192.168.1.100 10.0.0.0/8 -
Связываем всё через
config.yaml: В главном конфиге/etc/crowdsec/config.yamlнужно добавить источник данных в секциюcscli:cscli: # ... sources: my_blocklist_source: type: file filename: /путь/к/my_ip_list.txt format: plainНо для современных версий CrowdSec лучший подход — это использовать
collectionsи автоматическое скачивание черезcscli.
Шаг 4: Проверка и перезапуск
После любых изменений:
# Проверяем конфигурацию на ошибки
sudo cscli hub list
sudo cscli config verify
# Перезапускаем сервис
sudo systemctl restart crowdsec
Лучшие практики: Какие листы использовать для разных сервисов
Не все списки одинаково полезны. Вот выборка по типам сервисов:
Для Веб-серверов (Nginx/Apache)
- Задача: Блокировать сканеры уязвимостей, веб-шells, сборщики данных.
- Рекомендации:
- IP:
Firehol Level 1(общий шум) + спискиSpamhaus DROP(активные атаки). - User-Agent: Блокировать агрессивные сканеры (например,
Nmap,sqlmap,GoHttpнеобычные). - Geo-blocking: Если сайт только для РФ и СНГ, используйте модуль
geoip-enrichи блокируйте весь остальной трафик (осторожно!).
- IP:
Для VPN серверов (OpenVPN, WireGuard, SoftEther)
- Задача: Защита от DDoS, брутфорса входа, ботов-клиентов.
- Рекомендации:
- IP:
IP2Proxy LITE(блокировка прокси и VPN, чтобы предотвратить использование вашего VPN как анонимайзера). СпискиFirehol(анти-DDoS). - Частота обновлений: Высокая (12-24 часа), так как списки VPN-ботнетов меняются быстро.
- IP:
Для API
- Задача: Защита от скрапинга, DDoS, злоупотреблениями лимитами.
- Рекомендации:
- IP: Специализированные списки для API (можно найти на GitHub). Списки
BGP.Sh(подозрительные AS-номера). - Логика: Используйте CrowdSec для мониторинга логов API (4xx ошибки, таймауты) и формируйте свой сценарий.
- IP: Специализированные списки для API (можно найти на GitHub). Списки
Для игровых серверов
- Задача: Блокировка читеров, DDoS (UDP floods).
- Рекомендации:
- IP: Списки анти-DDoS (например,
Firehol DDoS), списки ботовых сетей (Mirai, Qbot). - Нюанс: Многие списки блокируют целые подсеты провайдеров, где живут игроки. Требуется ручная проверка.
- IP: Списки анти-DDoS (например,
Проверка и мониторинг: Убедитесь, что всё работает
Установка списков — это только начало. Важно не заблокировать всех.
1. Мониторинг решений (Decisions)
Используйте встроенные команды cscli для проверки активных решений:
sudo cscli decisions list
Вы увидите список заблокированных IP и тип (ban, captcha). Проверьте, нет ли там известных вам легитимных IP.
2. Просмотр логов CrowdSec
Логи находятся в /var/log/crowdsec.log. Ищите строки с ipset или nftables (в зависимости от брандмауэра), чтобы убедиться, что правила применяются.
tail -f /var/log/crowdsec.log | grep "ipset"
3. Тестовый доступ (Пассивный)
Попробуйте зайти на ваш сервис через прокси или VPN из списка блокировки (например, бесплатный прокси из списка Firehol). Если соединение разорвалось — блокировка работает.
4. Система мониторинга (Grafana + Prometheus)
Для серьезных проектов подключите метрики CrowdSec.
- Установите
crowdsec-prometheus-exporter. - Подключите Grafana дашборд (готовые дашборды есть на GitHub).
- Следите за графиком "заблокированных запросов". Внезпный скачок может означать, что вы заблокировали крупный легитимный сегмент.
5. Белые списки (Whitelists)
Крайне важно! Добавьте IP вашей админки, офиса или статического IP разработчика в белый список.
Файл /etc/crowdsec/parsers/whitelist.yaml:
name: my_ip_whitelist
filter: evt.Parsed.source_ip in ['123.45.67.89', '10.0.0.0/24']
statics:
- parsed: whitelist
value: true
Заключение: Итоги и рекомендации
Блок-листы в CrowdSec — это мощный инструмент, который превращает вашу защиту из реактивной в проактивную, при этом бесплатно.
Краткий чек-лист для старта:
- Не используйте сразу 50 списков. Начните с одного-двух (например, Firehol Level 1 и IP2Proxy).
- Настройте алерты. Убедитесь, что вы получаете уведомления о новых блокировках (через email или Telegram через модуль
slack/telegramв Hub). - Регулярно обновляйте Hub. Угрозы меняются:
sudo cscli hub update && sudo cscli hub upgrade. - Будьте готовы к "дружественной огневой поддержке". Иногда блок-листы могут агрессивно блокировать целые подсети. Имейте план отката.
Автоматизация поддержки блок-листов через CrowdSec Hub сокращает ручной труд до минимума. Вы получаете экосистему, где правила обновляются сообществом, а вы фокусируетесь на своей работе, зная, что отвал от ботов и сканеров за вас взял на себя коллективный разум интернета.
Удачной защиты!