Offre Durée limitée : -10% sur tout le site* avec le code WELCOME10

Installer CrowdSec sur un VPS Linux : détection d'intrusion communautaire

Mis à jour le 31 octobre 2026 7 min de lecture 10 sections

CrowdSec : un IPS communautaire pour protéger votre serveur

Les serveurs exposés sur Internet subissent en permanence des tentatives d'intrusion : brute force SSH, scans de ports, injections HTTP, exploitation de failles PHP. CrowdSec est un système de prévention d'intrusion (IPS) open source qui analyse les journaux de votre serveur, détecte les comportements malveillants et bloque automatiquement les adresses IP responsables. Contrairement à Fail2ban, CrowdSec repose sur une base communautaire d'adresses IP malveillantes : chaque instance partage ses détections avec le réseau, et chaque serveur bénéficie des signalements des autres. Un attaquant repéré sur un serveur est bloqué préventivement sur tous les serveurs participants.

CrowdSec fonctionne en deux couches distinctes. Le Security Engine (moteur de détection) lit les logs, applique des scénarios comportementaux et génère des décisions de blocage. Le bouncer (composant de remédiation) applique ces décisions au niveau du pare-feu ou du serveur web. Cette séparation permet de détecter sur une machine et de bloquer sur une autre, ou de combiner plusieurs bouncers sur le même serveur : un bouncer nftables pour bloquer au niveau réseau et un bouncer Nginx pour protéger les applications web.

Ce guide couvre l'installation complète de CrowdSec sur un VPS Linux sous Ubuntu ou Debian : moteur de détection, scénarios de sécurité (brute force SSH, scans HTTP, exploits PHP), bouncer nftables et tableau de bord en ligne.

Prérequis

  • Un VPS Linux sous Ubuntu 22.04/24.04 LTS ou Debian 12/13 avec un accès root ou sudo ;
  • Une connexion SSH sécurisée au serveur ;
  • Un pare-feu nftables ou iptables configuré (ce guide utilise nftables, voir notre guide configurer nftables sur VPS Linux) ;
  • Les services à protéger en fonctionnement (SSH, Nginx, Apache) pour que les fichiers de logs existent.

Installer CrowdSec

CrowdSec fournit un dépôt officiel pour Debian et Ubuntu. L'installation ajoute le Security Engine, le service crowdsec et l'outil en ligne de commande cscli. L'assistant d'installation détecte automatiquement les services présents sur le serveur (SSH, Nginx, Apache, MySQL) et configure l'acquisition des logs correspondants :

curl -s https://install.crowdsec.net | sudo sh
sudo apt update
sudo apt install crowdsec -y

Vérifiez que le service tourne correctement :

sudo systemctl status crowdsec
sudo cscli version

Le moteur de détection est actif mais ne bloque encore rien : il faut installer un bouncer pour appliquer les décisions. C'est la conception modulaire de CrowdSec : la détection et le blocage sont séparés.

Installer les collections et scénarios de détection

Les collections sont des ensembles de scénarios, de parsers et de postoverflows maintenus par la communauté CrowdSec. Chaque collection cible un service précis. Installez les collections correspondant aux services exposés sur votre VPS :

# Protection SSH : détecte le brute force et les scans
sudo cscli collections install crowdsecurity/sshd

# Protection Linux générale : détecte les comportements suspects système
sudo cscli collections install crowdsecurity/linux

# Protection Nginx (si installé) : détecte les scans HTTP, path traversal, bad user agents
sudo cscli collections install crowdsecurity/nginx

# Détection des exploits de failles CVE connues (injections, RCE)
sudo cscli collections install crowdsecurity/http-cve

# Appliquez les changements
sudo systemctl reload crowdsec

Listez les collections installées pour vérifier :

sudo cscli collections list

Chaque collection contient plusieurs scénarios. Par exemple, la collection crowdsecurity/sshd inclut des scénarios pour le brute force lent (10 échecs en 5 minutes), le brute force rapide (6 échecs en 30 secondes) et les tentatives avec des utilisateurs inexistants. Ces seuils sont configurables dans les fichiers YAML sous /etc/crowdsec/scenarios/.

Configurer l'acquisition des logs

CrowdSec lit les journaux définis dans le fichier /etc/crowdsec/acquis.yaml. L'installation détecte automatiquement les services présents, mais vous pouvez ajouter des sources manuellement. Voici un exemple de configuration complète :

# SSH - fichier auth.log
filenames:
  - /var/log/auth.log
labels:
  type: syslog
---
# Nginx - access et error logs
filenames:
  - /var/log/nginx/access.log
  - /var/log/nginx/error.log
labels:
  type: nginx
---
# Journalctl (alternative pour systemd)
source: journalctl
journalctl_filter:
  - "_SYSTEMD_UNIT=ssh.service"
labels:
  type: syslog

Après modification de acquis.yaml, rechargez CrowdSec et vérifiez que les sources sont bien lues :

sudo systemctl reload crowdsec
sudo cscli metrics

La commande cscli metrics affiche le nombre de lignes traitées par source, les scénarios déclenchés et les parsers actifs. Si une source affiche 0 ligne lue, vérifiez que le chemin du fichier de log est correct et que CrowdSec a les droits de lecture. Pour analyser le contenu de vos logs SSH avant de configurer CrowdSec, consultez notre guide analyser les échecs de connexion SSH.

Installer le bouncer nftables

Le bouncer nftables est le composant qui traduit les décisions de CrowdSec en règles de pare-feu. Il crée un ensemble nftables (crowdsec-blacklists) contenant les adresses IP bannies et l'insère dans la chaîne de filtrage. Chaque paquet entrant est vérifié contre cette liste avant d'atteindre vos services :

sudo apt install crowdsec-firewall-bouncer-nftables -y
sudo systemctl enable --now crowdsec-firewall-bouncer

Vérifiez que le bouncer est enregistré auprès du Security Engine :

sudo cscli bouncers list

Le fichier de configuration du bouncer se trouve dans /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml. Les paramètres par défaut conviennent à la plupart des configurations. Vérifiez que le mode est bien nftables et que les règles sont insérées :

sudo nft list ruleset | grep crowdsec

Si la commande ne renvoie rien, chargez le module noyau nftables et redémarrez le bouncer :

sudo modprobe nf_tables
sudo systemctl restart crowdsec-firewall-bouncer

Le bouncer nftables s'intègre avec votre configuration de pare-feu existante. Si vous utilisez déjà nftables sur votre VPS, consultez notre guide configurer nftables comme pare-feu pour comprendre la structure des tables et des chaînes.

Tableau de bord : la console CrowdSec

La console CrowdSec (app.crowdsec.net) est une interface web gratuite qui centralise la supervision de vos instances. Elle affiche les alertes en temps réel, les décisions actives, les scénarios déclenchés et la liste des IP bloquées sur l'ensemble de vos serveurs. Pour enregistrer votre VPS :

  1. Créez un compte sur app.crowdsec.net ;
  2. Dans la section Engines, copiez la clé d'enregistrement ;
  3. Sur votre VPS, exécutez la commande d'enregistrement :
sudo cscli console enroll VOTRE_CLE_DENREGISTREMENT
sudo systemctl restart crowdsec
  1. Retournez dans la console web et acceptez le moteur dans la liste.

Une fois enregistré, votre VPS apparaît dans le tableau de bord avec ses alertes et ses métriques. La console permet aussi de souscrire aux listes de blocage communautaires : des listes d'adresses IP signalées par l'ensemble du réseau CrowdSec. Ces listes sont poussées automatiquement vers votre instance et bloquent les attaquants avant même qu'ils ne touchent votre serveur.

Commandes essentielles de cscli

L'outil cscli est le centre de contrôle de CrowdSec. Voici les commandes les plus utilisées pour administrer votre instance au quotidien :

CommandeDescription
sudo cscli decisions listListe les IP actuellement bannies, la durée et le scénario déclencheur
sudo cscli alerts listAffiche les alertes récentes avec le nombre de tentatives détectées
sudo cscli metricsStatistiques de fonctionnement : lignes traitées, scénarios actifs, parsers
sudo cscli bouncers listListe les bouncers enregistrés et leur statut
sudo cscli collections listCollections installées et leur version
sudo cscli decisions delete --ip X.X.X.XDébannit manuellement une adresse IP
sudo cscli allowlists create listeCrée une liste blanche pour exclure des IP de confiance

Pour ajouter votre propre adresse IP à la liste blanche et éviter de vous bloquer vous-même :

sudo cscli allowlists create admin_ips
sudo cscli allowlists add admin_ips VOTRE_IP_PUBLIQUE

CrowdSec ou Fail2ban : tableau comparatif

CrowdSec et Fail2ban remplissent la même fonction de base : lire des logs, détecter des attaques et bannir les IP. Les différences portent sur l'architecture, la base de données d'IP et les capacités de remédiation :

CritèreCrowdSecFail2ban
ArchitectureMoteur de détection + bouncers séparésMonolithique (détection et action couplées)
LangageGo (binaire compilé, faible consommation mémoire)Python
Base d'IP communautaireOui, partagée entre toutes les instancesNon, chaque serveur est isolé
Blocage préventifOui, via les listes communautairesNon, réactif uniquement
Formats de logsFichiers, journald, syslog, Docker, sources cloudFichiers uniquement
Console webOui (app.crowdsec.net, gratuite)Non
ScénariosYAML déclaratifs, Hub communautaireRegex dans des fichiers .conf
Multi-serveursNatif (LAPI centralisée)Non natif

CrowdSec ne remplace pas nécessairement Fail2ban : les deux peuvent coexister. Si vous utilisez déjà Fail2ban sur votre VPS pour protéger SSH, CrowdSec ajoute la couche communautaire et la protection applicative (HTTP, PHP) que Fail2ban ne couvre pas nativement. Pour un nouveau serveur, CrowdSec seul couvre les mêmes cas d'usage avec une architecture plus moderne.

Aller plus loin

Votre VPS est maintenant protégé par CrowdSec avec détection comportementale et blocage au niveau du pare-feu. Pour renforcer la sécurité globale de votre serveur :

FAQ

CrowdSec remplace-t-il Fail2ban ?

CrowdSec couvre les mêmes cas d'usage que Fail2ban (détection de brute force SSH, bannissement d'IP) avec en plus une base communautaire d'adresses IP malveillantes, une console web et une architecture multi-serveurs. Les deux peuvent coexister sur le même serveur, mais CrowdSec seul suffit pour un nouveau déploiement.

CrowdSec est-il gratuit ?

Oui. Le Security Engine, les bouncers et la console web sont gratuits et open source. CrowdSec propose des offres payantes pour les entreprises avec des fonctionnalités avancées (listes de blocage premium, support technique), mais la version communautaire couvre tous les besoins d'un VPS ou d'un serveur dédié.

Quels services CrowdSec peut-il protéger ?

CrowdSec protège tout service qui génère des logs exploitables : SSH, Nginx, Apache, MySQL, PostgreSQL, Postfix, WordPress, et des dizaines d'autres via les collections du Hub communautaire. Chaque collection contient les parsers et scénarios adaptés au service cible.

Le bouncer nftables bloque-t-il aussi les connexions IPv6 ?

Oui. Le bouncer nftables crée des ensembles de blocage pour IPv4 et IPv6. Les décisions de CrowdSec s'appliquent aux deux protocoles si votre serveur est configuré en double pile (dual-stack). Vérifiez avec sudo nft list ruleset que les deux familles (inet) sont présentes.

Comment éviter de me bloquer moi-même avec CrowdSec ?

Créez une liste blanche avec cscli allowlists create et ajoutez-y votre adresse IP publique. Les IP en liste blanche ne sont jamais bannies, quel que soit le scénario déclenché. Vous pouvez aussi débannir manuellement une IP avec sudo cscli decisions delete --ip suivi de l'adresse.

CrowdSec consomme-t-il beaucoup de ressources sur un VPS ?

Non. Le Security Engine est écrit en Go et consomme environ 50 à 100 Mo de RAM en fonctionnement normal. La charge CPU est négligeable sur un VPS standard. Le bouncer nftables ne consomme quasiment aucune ressource supplémentaire puisqu'il délègue le filtrage au noyau Linux.