VPSРейтинг
БезопасностьМарт 2026 · 13 мин чтения

CrowdSec на VPS: защита умнее Fail2Ban

Fail2Ban реагирует на атаку после первых попыток. CrowdSec блокирует атакующих ещё до первого запроса — используя базу от 60 000+ серверов сообщества. Когда кто-то атакует один сервер, остальные немедленно получают блокировку этого IP.

1. Как работает CrowdSec

CrowdSec — это open-source система защиты серверов с коллективным интеллектом. Архитектура состоит из трёх уровней:

🔍 Security Engine

Читает логи (auth.log, nginx, syslog), обнаруживает аномалии по сценариям. Принимает решения о блокировке.

🚧 Bouncer

Применяет решения. Firewall bouncer — блокирует IP в nftables. Nginx bouncer — возвращает 403. Можно оба сразу.

🌐 Central API

Связывает ваш сервер с сообществом. Получает blocklist от 60 000+ серверов мира. Отправляет ваши находки.

Ключевая идея — разделение обнаружения и блокировки. Security Engine только анализирует и решает. Bouncer только блокирует. Это позволяет, например, обнаруживать на одном сервере, а блокировать на нескольких.

Проактивная защита в действии

Допустим, ботнет начинает атаку brute-force на SSH-серверы по всему миру. Первый же сервер с CrowdSec обнаруживает атаку и отправляет сигнал в Central API. Через несколько минут все остальные серверы сообщества получают блокировку этих IP — до того, как атака дошла до них.

2. CrowdSec vs Fail2Ban

ПараметрFail2BanCrowdSec
ПодходРеактивный — блокирует после N неудачных попытокПроактивный + реактивный — блокирует до атаки по базе сообщества
Коллективный интеллектНет — только локальные логиДа — blocklist от 60 000+ серверов мира
Firewall-правилаОтдельное правило на каждый IP (медленно при 1000+ правил)nftables/ipsets — эффективно для миллионов IP
АрхитектураМонолит — один процесс на все действияМодульная — engine + bouncers, масштабируется
УязвимостиПодвержен race condition и log injectionУстойчив — парсинг структурированных событий
НастройкаRegex в конфигах — сложно отлаживатьYAML-сценарии, тысячи готовых в Hub
Потребление RAM~20 МБ~50–80 МБ
ЛицензияGPLv2MIT (open-source)

Когда оставить Fail2Ban

Если у вас уже настроен Fail2Ban и он справляется — можно не менять. CrowdSec сложнее в первоначальной настройке. Но если сервер атакуют регулярно, или вы настраиваете новый VPS с нуля — CrowdSec предпочтительнее.

3. Установка Security Engine

Официальный способ — скрипт установки, который добавляет репозиторий и устанавливает пакет. Поддерживается Ubuntu 20.04, 22.04, 24.04 и Debian.

Шаг 1: добавить репозиторий и установить

Официальный скрипт установки CrowdSec
curl -s https://install.crowdsec.net | sudo sh
sudo apt install -y crowdsec

Скрипт добавит GPG-ключ и apt-репозиторий. После установки CrowdSec запустится автоматически. Проверить статус:

Проверить статус CrowdSec
sudo systemctl status crowdsec

Шаг 2: убедиться что сервис работает

Проверить версию и базовые коллекции
sudo cscli version
sudo cscli hub list

Команда cscli hub list покажет установленные коллекции, парсеры и сценарии. При первой установке уже будут базовые парсеры для Linux.

Если уже стоит Fail2Ban

Они не конфликтуют при установке, но оба будут добавлять firewall-правила. После того как убедитесь что CrowdSec работает корректно:

Отключить Fail2Ban после перехода на CrowdSec
sudo systemctl stop fail2ban
sudo systemctl disable fail2ban

4. Коллекции: SSH и Nginx

Коллекция — набор парсеров и сценариев для конкретного сервиса. CrowdSec Hub содержит 300+ готовых коллекций. Установите те, что соответствуют сервисам на вашем VPS.

Базовые коллекции

Установить коллекции для Linux, SSH и Nginx
# Базовая защита Linux (syslog, sudo, и т.д.)
sudo cscli collections install crowdsecurity/linux

# Защита SSH от brute-force
sudo cscli collections install crowdsecurity/sshd

# Защита Nginx (сканирование, brute-force, SQL injection)
sudo cscli collections install crowdsecurity/nginx

# Применить изменения
sudo systemctl reload crowdsec

Если у вас запущено что-то ещё — добавьте соответствующие коллекции:

СервисКоманда установки
Apachesudo cscli collections install crowdsecurity/apache2
WordPresssudo cscli collections install crowdsecurity/wordpress
PostgreSQLsudo cscli collections install crowdsecurity/postgresql
MySQLsudo cscli collections install crowdsecurity/mysql
Postfixsudo cscli collections install crowdsecurity/postfix
HAProxysudo cscli collections install crowdsecurity/haproxy

Как CrowdSec читает логи Nginx

После установки коллекции crowdsecurity/nginx CrowdSec автоматически находит лог-файлы Nginx в стандартных путях (/var/log/nginx/access.log, /var/log/nginx/error.log). Если логи в нестандартном месте — добавьте в конфиг:

/etc/crowdsec/acquis.yaml — добавить нестандартный путь
filenames:
  - /var/log/nginx/*.log
labels:
  type: nginx

5. Firewall Bouncer

Firewall bouncer блокирует IP на сетевом уровне — через nftables (Ubuntu 22.04+) или iptables. Это самый эффективный тип блокировки: пакет от заблокированного IP отбрасывается ядром ещё до Nginx.

Установка (nftables — Ubuntu 22.04+)

Установить firewall bouncer для nftables
sudo apt install -y crowdsec-firewall-bouncer-nftables
sudo systemctl enable crowdsec-firewall-bouncer
sudo systemctl start crowdsec-firewall-bouncer

Для Ubuntu 20.04 или систем с iptables используйте пакет crowdsec-firewall-bouncer-iptables.

Проверка

Убедиться что bouncer зарегистрирован
sudo cscli bouncers list

В списке должен появиться bouncer с типом crowdsec-firewall-bouncer и статусом valid. Пример вывода:

 Name                      IP Address  Valid  Last API pull         Type
 cs-firewall-bouncer-linux  127.0.0.1   true   2026-03-12T10:00:00Z  crowdsec-firewall-bouncer

Как работает блокировка через nftables

Bouncer создаёт nftables set (множество IP-адресов) и одно правило, которое запрещает трафик от IP из этого множества. Добавить 100 000 IP в set занимает миллисекунды — в отличие от Fail2Ban, который создаёт отдельное правило на каждый IP.

6. Nginx Bouncer

Nginx bouncer работает на уровне веб-приложения: он встраивается в Nginx и проверяет каждый HTTP-запрос против базы CrowdSec. Заблокированные IP получают ответ 403 Forbidden или капчу. Дополняет firewall bouncer — можно использовать оба.

Установка

Установить Nginx bouncer
sudo apt install -y crowdsec-nginx-bouncer

Установщик автоматически добавит конфиг в Nginx. Проверьте что появился файл:

Проверить конфиг CrowdSec для Nginx
ls /etc/nginx/conf.d/crowdsec*.conf

Подключить к виртуальным хостам

Добавьте строку include в каждый server-блок Nginx, который нужно защитить:

/etc/nginx/sites-available/ваш-сайт
server {
    listen 443 ssl;
    server_name ваш-сайт.ru;

    # Подключить защиту CrowdSec
    include /etc/nginx/conf.d/crowdsec_nginx.conf;

    # ... остальной конфиг ...
}
Проверить конфиг и перезапустить Nginx
sudo nginx -t && sudo systemctl reload nginx

Проверить что bouncer работает

Список всех зарегистрированных bouncer-ов
sudo cscli bouncers list

Должны отображаться оба bouncer-а — firewall и nginx — со статусом valid.

Firewall bouncer vs Nginx bouncer

ПараметрFirewall bouncerNginx bouncer
Уровень блокировкиСетевой (ядро Linux)Приложение (HTTP)
Нагрузка на серверМинимальнаяНебольшая (1 запрос = 1 проверка)
Блокирует TCP/UDPДаТолько HTTP/HTTPS
Капча вместо банаНетДа (с Premium)
РекомендацияСтавить всегдаДополнительно к firewall

7. Мониторинг и управление

Всё управление через утилиту cscli. Вот основные команды, которые нужны в ежедневной работе:

Активные блокировкиСписок IP, заблокированных прямо сейчас
sudo cscli decisions list
История алертовВсе обнаруженные атаки за последнее время
sudo cscli alerts list
СтатистикаСчётчики по парсерам, сценариям, источникам
sudo cscli metrics
Состояние HubУстановленные коллекции, парсеры, сценарии
sudo cscli hub list
Обновить HubСкачать новые версии сценариев и парсеров
sudo cscli hub update && sudo cscli hub upgrade
Зарегистрированные bouncer-ыПроверить что все bouncer-ы активны
sudo cscli bouncers list

Ручное управление блокировками

Заблокировать IP вручную (навсегда)
sudo cscli decisions add --ip 1.2.3.4
Заблокировать IP на 24 часа
sudo cscli decisions add --ip 1.2.3.4 --duration 24h
Разблокировать IP
sudo cscli decisions delete --ip 1.2.3.4
Добавить IP в whitelist (никогда не блокировать)
# Редактировать файл вайтлиста
sudo nano /etc/crowdsec/parsers/s02-enrich/whitelists.yaml

В файл вайтлиста добавьте свои IP-адреса (например, домашний) под ключ ip:

/etc/crowdsec/parsers/s02-enrich/whitelists.yaml
name: crowdsecurity/whitelists
description: "Whitelist trusted IPs"
whitelist:
  reason: "trusted IPs"
  ip:
    - "ВАШ_ДОМАШНИЙ_IP"
    - "IP_ОФИСА"
Перезапустить CrowdSec для применения
sudo systemctl reload crowdsec

Обновление CrowdSec

Обновить CrowdSec и сценарии
# Обновить сам пакет
sudo apt update && sudo apt upgrade crowdsec

# Обновить Hub (сценарии и парсеры)
sudo cscli hub update && sudo cscli hub upgrade
sudo systemctl reload crowdsec

8. Онлайн-дашборд

CrowdSec предлагает бесплатный онлайн-дашборд на app.crowdsec.net — карта атак, статистика по сценариям, история алертов и метрики в удобном интерфейсе. Регистрация занимает минуту.

Подключить сервер к дашборду

  1. 1Зарегистрируйтесь на app.crowdsec.net (бесплатно).
  2. 2В личном кабинете нажмите Add Security Engine.
  3. 3Скопируйте команду регистрации — она выглядит так:
Зарегистрировать сервер в Central API (команда из личного кабинета)
sudo cscli console enroll ВАШИ_КЛЮЧ_ИЗ_КАБИНЕТА
sudo systemctl restart crowdsec

Через несколько минут сервер появится в дашборде. Там будет видно: сколько атак обнаружено, какие сценарии сработали, карта географии атакующих и статистика по типам угроз.

Дашборд не обязателен

CrowdSec полностью работает без регистрации и дашборда. Все данные доступны через cscli локально. Дашборд нужен только если хотите красивую визуализацию или управляете несколькими серверами.

Частые вопросы

Нужен VPS для безопасного сервера? Смотрите лучшие варианты

Рейтинг VPS →

Смотрите также