CrowdSec - open-source ПО для кибербезопасности. Основное назначение - обнаружение и блокировка вредоносной активности на серверах и веб-приложениях. Работает по простому, но предельно понятному, а главное - эффективному принципу: система проводит анализ логов сервиса (SSH, Nginx), после чего выявляет подозрительные действия.
Что способен обнаружить CrowdSec?
Система отлично справляется с обнаружением и нейтрализацией таких угроз как:
- подбор пароля (брутфорс-атаки);
- сканирование портов;
- DDoS-атаки;
- любого рода аномальные паттерны.
Как только CrowdSec обнаружил любую из перечисленных опасностей, он включается в работу. Для этого автоматически применяются самые разные меры обеспечения кибербезопасности, но в первую очередь это блокировка IP-адреса, с которого осуществляется брутфорс или DDoS-атака, или пользователю требуется пройти CAPTCHA. В случае успешного прохождения - система снимает блокировку.
Чем еще так хорош CrowdSec?
В первую очередь нужно отметить наличие Crowd Threat Intelligence. Это полезно тем, что в случае обнаружения одним сервером опасности определенного характера, информация об этом паттерне появляется в общей базе. Другие пользователи получат возможность сыграть на опережение и сразу заблокировать кибербезопасность еще до того, как она начала действовать. Таким простым способом удается избежать большей части неприятность. Но это далеко не всё.
Вам нужен CrowdSec еще и потому что он:
- Состоит из двух компонентов - Agent, Bouncers. Первый проводит анализ логов и занимается обнаружением угроз. Второй - приводит в действие защитные механизмы и блокирует через Cloudflare или Nginx.
- Предлагает гибкие настройки. Здесь и поддержка YAMS-сценариев, и возможность добавления новых сценариев.
- Работает с другими решениями. Например, с Docker и Kubernetes, а также с различными системами мониторинга, среди которых Prometheus.
Как может быть использован?
Как уже было сказано выше, CrowdSec идеален для:
- защиты SSH;
- блокировки ботов;
- мониторинга и анализа логов;
- предотвращения SQL-инъекций.
Как его интегрировать в ISPmanager 6?
Установка CrowdSec на сервер с панелью ispmanager:
curl -s https://install.crowdsec.net | sudo sh
apt install crowdsec
Использует порт 8080, в файлах конфигурации /etc/crowdsec/config.yaml и /etc/crowdsec/local_api_credentials.yaml прописываем любой свободный порт (8070 и тд)
В /etc/crowdsec/config.yaml измените следующую строку:
api:
server:
listen_uri: 127.0.0.1:8070
В/etc/crowdsec/local_api_credentials.yaml нужно прописать следующее:
url: http://127.0.0.1:8070
В файле /etc/crowdsec/parsers/s02-enrich/whitelists.yaml указываем IP-адреса исключения.
После чего можем в автозапуск прописать службу:
systemctl enable --now crowdsec
systemctl status crowdsec
Проверяем версию Iptables на сервере:
iptables -V
Устанавливаем Bouncer
Команда:
- apt install crowdsec-firewall-bouncer-nftables
Если в iptables был упомянут nf_tables
Команда:
- apt install crowdsec-firewall-bouncer-iptables
Если в iptables не был упомянут nf_tables
Статус службы после установки можно проверить командой:
systemctl status crowdsec-firewall-bouncer
Создаем коллекцию журналов панели по пути /etc/crowdsec/acquis.d/setup.ispmanager.yaml и указываем содержимое для файла:
filenames:
- /usr/local/mgr5/var/ispmgr.auth.log
- /usr/local/mgr5/var/core.auth.log
- /var/www/httpd-logs/*.log
labels:
type: syslog
service: ispmanager
Перезапускаем службу CrowdSec:
systemctl status crowdsec
Дальше нужно пройти регистрацию в Crowdsec, переходим в раздел Security Engines - Engines, нажимаем Enroll command, копируем команду для подключения сервера к SaaS CrowdSec Console и перезапускаем службу:
cscli console enroll %ТОКЕН%
systemctl restart crowdsec
После подключения сервера, в личном кабинете CrowdSec подтверждаем запрос на подключение. Теперь в CrowdSec нужно подписаться на три бесплатных черных списка в разделе Blocklists - Featured:
- Firehol BotScout
- Firehol greensnow.co
- OTX Georgs Honeypot
Самые полезные команды для работы с CrowdSec
Проверка статуса службы:
sudo systemctl status crowdsec
Перезапуск службы:
sudo systemctl restart crowdsec
Остановка службы:
sudo systemctl stop crowdsec
Просмотр логов:
sudo tail -f /var/log/crowdsec.log
Получение информации о текущих блокировках:
sudo cscli decisions list
Блокировка IP-адреса вручную:
sudo cscli decisions add --ip <IP_ADDRESS> --reason "manual block"
Удаление блокировки IP-адреса:
sudo cscli decisions delete --ip <IP_ADDRESS>
Установка сценариев для различных приложений (например, Nginx):
sudo cscli parsers install nginx
Просмотр доступных сценариев:
cscli decisions --help
sudo cscli parsers list
Обновление базы данных CrowdSec:
sudo cscli update
Получение справки по командам:
cscli --help
Получение справки по конкретной команде: