Le temps des pare-feux passifs est révolu. Avec CrowdSec, la défense devient collective. Chaque serveur protégé enrichit un réseau mondial d’IP malveillantes, partagé en temps réel entre tous les participants. Si vous utilisez Ubuntu avec Apache, Nginx ou LiteSpeed, ce guide vous montre comment rejoindre cet écosystème : installation, configuration des logs, activation des protections spécifiques à votre stack, et mise en production sécurisée.
Installer et configurer CrowdSec sur Ubuntu
CrowdSec est un système de détection d’intrusion moderne et collaboratif, conçu pour protéger les serveurs Linux contre les attaques courantes : brute force, scans, injections, et plus encore. Fonctionnant en agent, il analyse les logs système en temps réel et alimente une base de données partagée d’adresses IP malveillantes. Voici les étapes pour installer CrowdSec proprement sur un serveur Ubuntu.
Ajout du dépôt APT officiel de CrowdSec
Commencez par installer le dépôt APT officiel de CrowdSec via le script automatisé :
curl -s https://install.crowdsec.net | sudo sh
Ce script configure le dépôt packagecloud
sécurisé de CrowdSec et installe les dépendances nécessaires à l’installation.
Installation du moteur CrowdSec
Une fois le dépôt en place, mettez à jour la liste des paquets puis installez le moteur principal :
sudo apt update
sudo apt install crowdsec -y
Ce paquet installe le moteur d’analyse comportementale, les fichiers de configuration par défaut, ainsi que l’outil en ligne de commande cscli
.
Activer et démarrer le service CrowdSec
Pour lancer CrowdSec immédiatement et s’assurer qu’il se relancera à chaque redémarrage, utilisez :
sudo systemctl enable --now crowdsec
Configuration spécifique à OpenLiteSpeed
Par défaut, CrowdSec prend en charge automatiquement les logs des serveurs Apache et Nginx grâce à une détection intégrée via systemd
et des chemins standards. En revanche, OpenLiteSpeed, LiteSpeed entreprise ou encore les panel d’hébergement comme CyberPanel nécessite une configuration manuelle pour que CrowdSec puisse surveiller correctement les fichiers de logs.
Installation de la collection CrowdSec LiteSpeed
Commencez par installer la collection officielle CrowdSec dédiée à OpenLiteSpeed. Elle inclut un parser adapté au format de logs de LiteSpeed, ainsi que des scénarios de détection compatibles :
sudo cscli collections install crowdsecurity/litespeed
Ajout manuel des logs Litespeed pour la surveillance dans le fichier de configuration
Contrairement à Apache et Nginx, les chemins de logs d’OpenLiteSpeed ne sont pas normalisés, et varient selon l’installation. CrowdSec ne les détecte donc pas automatiquement.
Commencer par éditer le fichier d’acquisition CrowdSec
sudo nano /etc/crowdsec/acquis.yaml
Ces blocs permettent à CrowdSec de surveiller à la fois les logs système d’OpenLiteSpeed et les logs des vhosts gérés par CyberPanel.
Ajoutez les blocs suivants en fin de fichier
Pour Open LiteSpeed ou LiteSpeed Entreprise :
#Generated acquisition file - custom (service: OpenLiteSpeed) / files : /usr/local/lsws/logs/*.log & /usr/local/lsws/admin/logs/*.log
filenames:
- /usr/local/lsws/logs/*.log
- /usr/local/lsws/admin/logs/*.log
labels:
type: litespeed
---
Pour CyberPanel :
#Generated acquisition file - custom (service: CyberPanel) / files : /home/*/logs/*.log, *.error_log, *.access_log
filenames:
- /home/*/logs/*.log
- /home/*/logs/*.error_log
- /home/*/logs/*.access_log
labels:
type: litespeed
---
Une fois la modification enregistrée, rechargez CrowdSec pour qu’il prenne en compte les nouveaux fichiers :
sudo systemctl reload crowdsec
Vous pouvez vérifier que les logs sont bien pris en compte avec :
sudo cscli metrics
Dans la section “Parser Metrics”, vous devriez voir apparaître le parser crowdsecurity/litespeed-logs
ou child-crowdsecurity/litespeed-logs
.

Installer le bouncer pare-feu de de CrowdSec
Le bouncer pare-feu est la brique qui applique les décisions de CrowdSec directement au niveau du réseau. Il bloque en temps réel les adresses IP jugées malveillantes.
Selon la version de votre noyau Linux, Ubuntu peut utiliser :
- iptables : système classique, encore majoritaire sur Ubuntu 20.04/22.04.
- nftables : système plus moderne et natif sur les noyaux récents.
Pour vérifier ce que vous utilisez :
sudo iptables -V
Si la version affiche nf_tables
, vous êtes probablement sur nftables.
Ensuite, installez le bouncer correspondant, pour iptables :
sudo apt install crowdsec-firewall-bouncer-iptables -y
Pour nftables :
sudo apt install crowdsec-firewall-bouncer-nftables -y
Une fois le bouncer installé, activez son service :
sudo systemctl enable --now crowdsec-firewall-bouncer
Génération de la clé API du bouncer
CrowdSec fonctionne avec des API Keys pour sécuriser la communication entre le moteur de détection et ses bouncers. Créez une clé dédiée au bouncer pare-feu :
sudo cscli bouncers add crowdsec-firewall
Le système vous fournira une clé unique (à copier précieusement). Elle sera enregistrée dans :/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
Activation des scénarios recommandés pour WordPress
Pour protéger les zones sensibles comme wp-login.php
ou xmlrpc.php
, CrowdSec propose des scénarios adaptés :
sudo cscli collections install crowdsecurity/wordpress
sudo cscli scenarios install crowdsecurity/http-bf-wordpress_bf
sudo cscli scenarios install crowdsecurity/http-bf-wordpress_bf_xmlrpc
Pensez aussi à installer le scénario modsecurity
si vous utilisez un WAF ModSecurity avec OpenLiteSpeed :
cscli scenarios install crowdsecurity/modsecurity
Et voici une sélection de scénarios pour bloquer les attaques classiques (brute-force, scans, crawlers malveillants, injections, etc.) :
sudo cscli scenarios install crowdsecurity/ssh-bf
sudo cscli scenarios install crowdsecurity/http-probing
sudo cscli scenarios install crowdsecurity/http-sqli-probing
sudo cscli scenarios install crowdsecurity/http-xss-probing
sudo cscli scenarios install crowdsecurity/http-path-traversal-probing
sudo cscli scenarios install crowdsecurity/http-bad-user-agent
sudo cscli scenarios install crowdsecurity/http-sensitive-files
sudo cscli scenarios install crowdsecurity/http-crawl-non_statics
Après chaque ajout ou modification de scénario, redémarrez proprement CrowdSec :
sudo systemctl reload crowdsec
Vous pouvez ensuite vérifier leur activation avec :
sudo cscli scenarios list
Connexion à CrowdSec Central (portail en ligne)
Une fois votre serveur protégé par CrowdSec, vous pouvez centraliser la surveillance de vos incidents de sécurité via le portail web CrowdSec Console. Ce tableau de bord en ligne vous permet de visualiser en temps réel les attaques détectées, les décisions prises par vos bouncers, ainsi que l’état de santé de vos agents.
Commencez par créer un compte sur https://app.crowdsec.net
Une fois inscrit, connectez-vous au tableau de bord pour générer une clé d’appairage (enrollment key).
Liaison de l’agent local avec votre compte
Sur le serveur Ubuntu où CrowdSec est installé, exécutez la commande suivante en remplaçant <clé fournie>
par la clé d’appairage générée :

Une confirmation s’affichera dans le terminal. Ensuite, retournez sur le site app.crowdsec.net pour valider l’appairage du nouvel agent. Cette étape permet de relier l’agent CrowdSec local à votre tableau de bord personnel.
Une fois la liaison terminée, vous verrez apparaître votre serveur dans l’interface Console. Vous aurez alors accès à :
- Un historique détaillé des attaques détectées
- Les décisions appliquées (bannissements, alertes…)
- Des statistiques sur les IP bannies ou partagées dans la base collaborative

CrowdSec Console devient ainsi un véritable centre de pilotage de la sécurité réseau, même si vous gérez plusieurs machines.
Vérifier que le bouncer est bien connecté à CrowdSec
Une fois votre bouncer installé (pare-feu, proxy, etc.), il est essentiel de vérifier que la liaison entre le moteur CrowdSec et le bouncer fonctionne correctement. Cela garantit que les décisions (bannissements, challenges, etc.) sont bien transmises et appliquées.
Exécutez la commande suivante :
sudo cscli bouncers list
Exemple de sortie attendue :
NAME IP VALID LAST API PULL
crowdsec-firewall 127.0.0.1 ✔️ 2s ago
Avec un bouncer bien connecté, votre serveur applique en temps réel les décisions de sécurité prises par CrowdSec, qu’elles soient locales ou issues du réseau communautaire.
Les bonnes pratiques et sécurité complémentaire
Pour garantir une protection durable et réactive, l’installation de CrowdSec ne doit pas être figée. Voici quelques bonnes pratiques à adopter sur le long terme pour sécuriser votre serveur et assurer le bon fonctionnement de votre système de défense.
Tenir le hub CrowdSec à jour
Les scénarios de détection évoluent régulièrement pour suivre les nouvelles menaces. Pour rester à jour, exécutez périodiquement la commande suivante :
sudo cscli hub update && \
sudo cscli scenarios upgrade --all && \
sudo cscli parsers upgrade --all && \
sudo cscli postoverflows upgrade --all && \
sudo cscli collections upgrade --all && \
sudo systemctl reload crowdsec
Cela permet de récupérer les dernières définitions de scénarios, parsers, enrichissements et collections, tout en rechargeant proprement CrowdSec.
Ajouter des IPs de confiance à la whitelist
Si certaines adresses IP doivent être totalement exemptées des blocages (serveurs internes, load balancer, IP fixe personnelle…), ajoutez-les manuellement dans :
nano /etc/crowdsec/whitelists.yaml
Ce fichier permet de filtrer par adresse, sous-réseau ou encore User-Agent, et évite les faux positifs sur des sources de confiance.
Ne pas modifier les fichiers .yaml originaux
CrowdSec met à jour automatiquement ses fichiers lors des upgrades. Pour préserver vos personnalisations, ne modifiez jamais directement les fichiers comme crowdsec-firewall-bouncer.yaml
. Utilisez plutôt des variantes .local
, par exemple :
/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local
Cela vous permet d’écraser certaines options sans casser les futures mises à jour.
Surveiller régulièrement les logs
Pensez à consulter :
/var/log/crowdsec.log
/var/log/crowdsec-firewall-bouncer.log
Ainsi que les sorties de :
sudo cscli metrics
Cela vous aidera à repérer rapidement d’éventuelles erreurs de parsing ou des scénarios inefficaces.