Установка и настройка CrowdSec на Ubuntu: защищаем SSH правильно
Пошаговое руководство по развертыванию CrowdSec на Ubuntu для защиты SSH-сервера от брутфорс-атак без избыточного блокирования.
Зачем нужен CrowdSec?
CrowdSec — современная система обнаружения вторжений, которая анализирует логи в реальном времени и автоматически блокирует подозрительную активность. В отличие от fail2ban, работает через центральную базу угроз и предоставляет более гибкие возможности настройки.
Преимущества для Ubuntu-сервера:
- Автоматическая защита SSH от брутфорса
- Интеграция с системными логами через journald
- Минимальное влияние на производительность
- Возможность участия в community-блоклистах
Быстрая установка
Установка Security Engine
# Скачивание утилит если их нет
sudo apt install curl wget -y
# Скачивание из Linux repository
curl -s https://install.crowdsec.net | sudo sh
# CrowdSec установка
sudo apt install crowdsec
# Проверяем установку
sudo systemctl status crowdsec --no-pager
sudo cscli -h
Подключение правил для SSH
Вот тут можете почитать подробнее - Firewall
# Проверяем доступные коллекции
sudo cscli collections list -a | grep -E 'crowdsecurity/sshd'
# Вы можете посмотреть вообще все правила, crowdsec красиво отображает всё что установлено
sudo cscli collections list -a
# Если по какой-то причине при авто-установке они не установились - устанавливаем правила для SSH
sudo cscli collections install crowdsecurity/sshd
# После установки он вас попросит: Please restart crowdsec after accepting the enrollment.
sudo systemctl restart crowdsec
Соединение с консолью
Зарегистрируйте свой движок безопасности, чтобы начать получать оповещения и управлять своей безопасностью.
sudo cscli console enroll -e context [будет в вашем ЛК]
Установка Firewall Bouncer
Определяем тип брандмауэра
# Проверяем, что используется
sudo iptables -V
# Если видим 'nf_tables' — используется nftables
Установка соответствующего пакета
# Для nftables (Ubuntu 22.04+)
sudo apt install crowdsec-firewall-bouncer-nftables
# Для классического iptables
# sudo apt install crowdsec-firewall-bouncer-iptables
Создание белого списка
Обязательно добавьте свои IP-адреса в белый список:
# Создаем список доверенных адресов
# Если не задать комментарий будет: Error: cscli allowlists create: required flag(s) "description" not set
sudo cscli allowlists create my_allowlist -d 'Мои хосты'
# Добавляем свои IP (замените на реальные!)
# Одиночный IP в allowlist
sudo cscli allowlist add my_allowlist 192.168.1.1 # Можно добавить несколько через ПРОБЕЛ (через запятую не работает)
#(или CIDR: 192.168.1.0/24). Повышает точность, исключая легитимный трафик.
# Проверяем
sudo cscli allowlists list
# Чтобы проверить конкретный лист
sudo cscli allowlist inspect my_allowlist
Проверка работоспособности
1. Статус LAPI
sudo cscli lapi status
# Должно показать: "You can successfully interact with Local API (LAPI)"
2. Метрики системы
sudo cscli metrics show acquisition parsers scenarios
sudo cscli metrics show bouncers
3. Список bouncer'ов
sudo cscli bouncers list
sudo systemctl status crowdsec-firewall-bouncer --no-pager
4. Тестирование защиты
Сгенерируйте несколько неудачных попыток входа по SSH с другого адреса:
# После неудачных попыток проверьте алерты
sudo cscli alerts list --since 1h
# Проверьте решения о блокировке
sudo cscli decisions list --origin crowdsec
Управление решениями
# Просмотр активных блокировок
sudo cscli decisions list
# Удаление конкретной блокировки
sudo cscli decisions delete --ip 192.168.1.100
# Удаление всех решений от определенного источника
sudo cscli decisions delete --origin crowdsec
# Добавление ручной блокировки
sudo cscli decisions add --ip 192.168.1.200 --duration 1h --reason "manual block"
Решение типичных проблем
Ошибка "address already in use" на порту 8080
Это нормально — systemd уже запустил службу. Проверьте статус:
sudo systemctl status crowdsec
Bouncer показывает "Inactive" в Console
Если cscli metrics show bouncers показывает активность — защита работает. "Inactive" в UI часто означает отсутствие недавнего трафика.
Проблемы с Docker
Если используете Docker с публичными портами, добавьте в конфиг bouncer'а:
iptables_chains:
- DOCKER-USER
Минимальная конфигурация для продакшена
Базовая защита SSH включает:
- ✅ Установка Security Engine и Firewall Bouncer
- ✅ Настройка journald-источника для SSH
- ✅ Установка коллекции
crowdsecurity/sshd - ✅ Фильтрация bouncer'а (только SSH, только локальные решения)
- ✅ Создание allowlist для админских IP
- ✅ Проверка через
cscli lapi statusи метрики
Дополнительные возможности
Подключение к Community API (опционально) описывал в начале статьи
# Проверка связи с центральным API
sudo cscli capi status
# Регистрация в Console (получите ключ на app.crowdsec.net)
sudo cscli console enroll -e context [будет в вашем ЛК]
sudo cscli console status
Полезные алиасы
Добавьте в ~/.bashrc:
alias csc-alerts='sudo cscli alerts list --since 24h'
alias csc-decisions='sudo cscli decisions list'
alias csc-metrics='sudo cscli metrics'
alias csc-status='sudo cscli lapi status && sudo systemctl status crowdsec-firewall-bouncer'
Рекомендации по безопасности
- Регулярно обновляйте правила:
sudo cscli hub update && sudo cscli hub upgrade - Мониторьте метрики для выявления аномалий
- Настройте логирование bouncer'а для аудита блокировок
- Тестируйте восстановление после блокировки собственного IP
CrowdSec обеспечивает надежную защиту SSH-сервера без сложной настройки. Базовой конфигурации достаточно для большинства задач, а расширенные возможности можно добавлять по мере необходимости.

No comments to display
No comments to display