Home / Tutoriels Serveur / Installer CrowdSec sur Ubuntu 24.04 — Guide complet

Installer CrowdSec sur Ubuntu 24.04 — Guide complet

CrowdSec : protéger vos serveurs + installation Ubuntu 24.04

CrowdSec est un moteur de détection collaboratif qui analyse vos logs (SSH, Apache/Nginx, etc.) et applique des décisions de blocage via des “bouncers” (pare-feu, reverse proxy, Cloudflare…). Ci-dessous : rôle, avantages, installation Ubuntu 24.04, vérifications et FAQ.

1. CrowdSec : c’est quoi ?

CrowdSec est un IDS/IPS collaboratif open-source : il lit vos logs, détecte les comportements malveillants via des scénarios, puis fait appliquer des décisions (ex. : ban 4h) par un bouncer côté pare-feu, serveur web ou CDN. L’intérêt : une détection locale + un écosystème de signatures mutualisées (blocklist communautaire) qui s’améliore en continu.

2. Comment ça fonctionne ?

  • Agent CrowdSec : lit les logs, applique parsers & scénarios, produit des alerts puis des décisions.
  • LAPI (Local API) : service local qui expose les décisions aux bouncers.
  • Bouncers : modules d’application (pare-feu iptables/nftables, Nginx/Apache, Cloudflare…).
  • Hub & Console : téléchargent scénarios/collections et (optionnel) relient vos instances pour pilotage centralisé.

3. Installer CrowdSec (Ubuntu 24.04)

Méthode recommandée : ajouter le dépôt officiel puis installer le paquet crowdsec.

# 1) Ajouter le dépôt officiel CrowdSec
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash

# 2) Installer CrowdSec
sudo apt-get update -y
sudo apt-get install -y crowdsec

# 3) Activer au démarrage
sudo systemctl enable --now crowdsec

# 4) Vérifier l'état
systemctl status crowdsec
cscli version
cscli metrics

Optionnel — relier à la Console (pilotage multi-serveurs, dashboards) :

cscli console enroll
# Suivre l'URL/tokens affichés pour finaliser l'enrôlement.

4. Collections & scénarios utiles

Installe des ensembles prêts à l’emploi (parsers + scénarios) pour tes services :

# Mise à jour du Hub
sudo cscli hub update

# Linux de base + SSH + Apache2
sudo cscli collections install crowdsecurity/linux
sudo cscli collections install crowdsecurity/ssh
sudo cscli collections install crowdsecurity/apache2

# Appliquer (l'agent recharge automatiquement, sinon:)
sudo systemctl reload crowdsec

Astuce : si tes logs Apache ne sont pas au chemin par défaut, déclare le fichier dans /etc/crowdsec/acquis.d/ (format YAML) :

# /etc/crowdsec/acquis.d/apache.yaml
filenames:
  - /var/log/apache2/access.log
  - /var/log/apache2/error.log
labels:
  type: apache2

5. Ajouter un bouncer (pare-feu / Cloudflare)

Pare-feu (recommandé sur Ubuntu 24.04)

Sur 24.04, le système sous-jacent est généralement nftables. Installe l’un de ces paquets selon disponibilité :

# Option 1 : bouncer générique (détecte iptables/nftables)
sudo apt-get install -y crowdsec-firewall-bouncer

# Option 2 : variante explicite nftables (selon dépôt)
# sudo apt-get install -y crowdsec-firewall-bouncer-nftables

sudo systemctl enable --now crowdsec-firewall-bouncer
sudo systemctl status crowdsec-firewall-bouncer

Cloudflare (si ton site est derrière Cloudflare)

Le Cloudflare bouncer pousse les décisions CrowdSec en règles Cloudflare (WAF/RATE LIMIT). Pratique pour bloquer avant d’atteindre ton serveur.

sudo cscli bouncers add cloudflare-bouncer   # génère un token
sudo apt-get install -y crowdsec-cloudflare-bouncer

# Éditer la conf :
sudo nano /etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml
# Renseigner : api_token, account_id, zone_id ; puis :
sudo systemctl enable --now crowdsec-cloudflare-bouncer

6. Vérifier que ça marche

Liste les décisions actives :

cscli decisions list     # -a pour inclure la blocklist communautaire
cscli bouncers list
cscli metrics

Test de ban manuel (remplace 1.2.3.4 par une IP de test) :

# Bannir 15 minutes
sudo cscli decisions add --ip 1.2.3.4 --duration 15m --reason "test"

# Lever le ban
sudo cscli decisions delete --ip 1.2.3.4

7. Bonnes pratiques & dépannage

  • Toujours installer un bouncer : CrowdSec détecte, le bouncer bloque.
  • Mettre à jour le Hub régulièrement : cscli hub update, puis systemctl reload crowdsec.
  • Journaliser la vraie IP derrière Cloudflare : activer mod_remoteip et déclarer les IPs Cloudflare en RemoteIPTrustedProxy, afin que les logs contiennent l’IP client.
  • Whitelists : utilise les listes de confiance (postoverflow) pour éviter les faux positifs sur tes IPs d’admin/monitoring.
  • Désactivation d’urgence : sudo systemctl stop crowdsec-firewall-bouncer (puis supprime la décision : cscli decisions delete --ip …).

FAQ

CrowdSec vs Fail2ban : quelle différence ?

CrowdSec repose sur un Hub de scénarios maintenu par la communauté, une Local API et des bouncers multiples (pare-feu, reverse-proxy, Cloudflare…). Il mutualise les signaux d’attaque (blocklist communautaire). Fail2ban est plus « solo » et essentiellement orienté jail/regex + iptables.

Je suis derrière Cloudflare : pare-feu ou bouncer Cloudflare ?

Idéalement les deux : bouncer Cloudflare pour bloquer au niveau CDN (avant ton serveur) et bouncer pare-feu en filet de sécurité côté OS. N’oublie pas mod_remoteip pour loguer la vraie IP client.

Où voir ce que fait CrowdSec ?

cscli metrics (activité, alertes, décisions), cscli decisions list (bans), et la Console si tu as enrolled l’instance. Les logs de l’agent sont dans /var/log/crowdsec/.

Comment tester rapidement ?

Ajoute une décision manuelle : sudo cscli decisions add --ip 1.2.3.4 --duration 10m, puis supprime-la : sudo cscli decisions delete --ip 1.2.3.4. Assure-toi que le bouncer est actif et connecté à la LAPI.

Étiquetté :