Installer CrowdSec sur un VPS Linux : alternative moderne à Fail2Ban (Debian, Ubuntu)
Fail2Ban a 20 ans et reste valide, mais en 2026, CrowdSec est l’option moderne : architecture distribuée agent/bouncer, scénarios YAML, et surtout blocklist communautaire alimentée par des millions de serveurs partout dans le monde. Ce guide montre l’install complète sur Debian/Ubuntu, vérifié contre la documentation officielle CrowdSec.
Pour un VPS Linux chez HebergTonServ, CrowdSec s’installe en 5 minutes. Combinable avec Fail2Ban ou en remplacement total.
CrowdSec vs Fail2Ban — quand choisir quoi ?
| Critère | Fail2Ban | CrowdSec |
|---|---|---|
| Âge | 20 ans, ultra-éprouvé | 2020, déjà très mature |
| Langage | Python | Go (plus rapide, moins de RAM) |
| Architecture | Monolithique | Agent (détection) + Bouncer (remédiation) |
| Détection | Regex sur logs | Scénarios YAML comportementaux |
| Blocklist | Locale uniquement | Communautaire mondiale + locale |
| Scaling | Galère >1000 IPs bannies | Gère millions d’IPs (nftables sets) |
| Multi-serveur | Manuel | Natif via Local API |
| Dashboard | Aucun | Web console crowdsec.net (gratuit) |
Verdict 2026 : CrowdSec pour serveurs publics/prod sérieux. Fail2Ban reste OK pour VPS perso low-traffic. Les deux peuvent coexister.
Architecture CrowdSec en 30 secondes
[Logs] → [Agent CrowdSec] → [LAPI Local] → [Bouncer Firewall] → [iptables/nftables]
↕
[CrowdSec Console + Community Blocklist]- Agent : lit les logs, applique les scénarios, génère des décisions (ban)
- LAPI : Local API qui stocke les décisions et synchronise avec le cloud CrowdSec
- Bouncer : applique les décisions (firewall, reverse proxy, application)
- Community Blocklist : IPs déjà flaggées par la communauté → injectées dans votre blocklist locale
Étape 1 — Préparer le VPS
sudo apt update
sudo apt upgrade -yVérifiez votre version :
cat /etc/os-releaseCrowdSec officiellement supporté : Debian 11/12, Ubuntu 20.04/22.04/24.04, RHEL/CentOS/Rocky/AlmaLinux 8/9.
Étape 2 — Ajouter le dépôt officiel CrowdSec
Méthode officielle (script auto) :
curl -s https://install.crowdsec.net | sudo shCe script ajoute le dépôt APT signé.
Si vous préférez manuellement (Debian/Ubuntu) :
sudo apt install -y curl gnupg
curl -fsSL https://packagecloud.io/crowdsec/crowdsec/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/crowdsec.gpg
echo "deb [signed-by=/usr/share/keyrings/crowdsec.gpg] https://packagecloud.io/crowdsec/crowdsec/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/crowdsec.list
sudo apt updateÉtape 3 — Installer l’agent CrowdSec
sudo apt install crowdsec -yL’install :
- Crée le service
crowdsec - Détecte automatiquement vos services (SSH, Nginx, Apache si présents)
- Installe les collections correspondantes (parsers + scénarios)
Vérifier le service :
sudo systemctl status crowdsecÉtat : active (running).
Étape 4 — Vérifier les collections installées
sudo cscli collections listSortie typique :
─────────────────────────────────────────────
NAME 📦 STATUS
─────────────────────────────────────────────
crowdsecurity/linux ✔️ enabled
crowdsecurity/sshd ✔️ enabled
crowdsecurity/base-http-scenarios ✔️ enabled
─────────────────────────────────────────────Collections = packs de parsers + scénarios orientés service. Si Nginx ou Apache détecté, leur collection est installée auto.
Ajouter manuellement une collection
sudo cscli collections install crowdsecurity/nginx
sudo cscli collections install crowdsecurity/wordpress
sudo cscli collections install crowdsecurity/postfix
sudo systemctl reload crowdsecListe complète sur le CrowdSec Hub : https://hub.crowdsec.net
Étape 5 — Installer un bouncer firewall
L’agent détecte mais ne bannit pas seul. Il faut un bouncer.
Détecter votre firewall
sudo iptables -V
sudo nft list ruleset 2>/dev/null| Sortie | Bouncer à installer |
|---|---|
iptables vX.Y.Z (legacy) | crowdsec-firewall-bouncer-iptables |
iptables vX.Y.Z (nf_tables) ou ruleset nftables | crowdsec-firewall-bouncer-nftables |
⚠️ Important : sur un système nftables natif, le bouncer iptables semblera fonctionner mais ne filtrera rien. Choisir le bon bouncer est critique.
Installer
Pour iptables :
sudo apt install crowdsec-firewall-bouncer-iptables -yPour nftables :
sudo apt install crowdsec-firewall-bouncer-nftables -yLe post-install enregistre auto le bouncer auprès de l’agent local (équivalent de cscli bouncers add).
Vérifier :
sudo cscli bouncers listSortie attendue : 1 bouncer cs-firewall-bouncer-XXXX actif.
Étape 6 — Tester avec un faux ban
Bannissez votre propre IP (test, n’oubliez pas de débannir après) :
sudo cscli decisions add --ip 1.2.3.4 --reason "test ban"Vérifiez :
sudo cscli decisions listL’IP 1.2.3.4 doit apparaître. Côté firewall :
sudo iptables -L -n | grep 1.2.3.4
# ou pour nftables
sudo nft list set inet crowdsec crowdsec-blacklistsDébannir :
sudo cscli decisions delete --ip 1.2.3.4Étape 7 — Activer la blocklist communautaire (gratuit)
C’est le vrai avantage de CrowdSec. Inscription gratuite + lien à l’instance :
Créer un compte console
https://app.crowdsec.net/signup
Une fois inscrit, dans la console web → Engines → Add Engine → copiez la commande proposée. Exemple :
sudo cscli console enroll xxxxxxxxxxxxxx
sudo systemctl reload crowdsecValidez l’engine côté console web.
Activer la Community Blocklist
Dans la console web, ajoutez la blocklist CrowdSec Community Blocklist (gratuite, 100k+ IPs malveillantes mises à jour en continu). Les IPs flaggées sont automatiquement injectées dans vos décisions locales et bloquées par votre bouncer firewall.
Vérifier
sudo cscli decisions list --type banVous devriez voir des dizaines/centaines de décisions importées de la communauté.
Commandes cscli essentielles
| Commande | Effet |
|---|---|
sudo cscli decisions list | Liste IPs actuellement bannies |
sudo cscli alerts list --since 24h | Alertes des dernières 24h |
sudo cscli decisions delete --ip X.X.X.X | Débannit une IP |
sudo cscli decisions delete --all | Débannit tout (urgence uniquement) |
sudo cscli bouncers list | Liste bouncers enregistrés |
sudo cscli collections list | Liste collections actives |
sudo cscli metrics | Stats détaillées agent |
sudo cscli hub update | MAJ catalogue collections/scénarios |
sudo cscli hub upgrade | Upgrade les collections installées |
Tester la détection SSH
Depuis une autre machine (ou un VPN différent), tentez plusieurs SSH avec mauvais mot de passe :
ssh fakeuser@votre-ip-vps
# 5-10 tentativesSur le VPS :
sudo cscli alerts list
sudo cscli decisions listL’IP attaquante doit apparaître bannie. Côté firewall, elle est dropée.
Combiner CrowdSec et Fail2Ban ?
Possible mais redondant. Trois approches :
| Stratégie | Pour qui |
|---|---|
| CrowdSec seul | Recommandé en 2026 — tout ce que fait Fail2Ban + plus |
| Fail2Ban seul | Setups historiques sans envie de migrer |
| Les deux en parallèle | Transition douce — désactiver Fail2Ban après validation CrowdSec |
Pour migrer proprement : laissez les deux 2-3 semaines, comparez les bans (
fail2ban-client status sshdvscscli decisions list), puis désactivez Fail2Ban.
Hardening complémentaire
CrowdSec ne remplace pas les autres durcissements :
- Désactiver root + password SSH — voir désactiver login root SSH
- Changer port SSH — voir changer le port SSH
- UFW restrictif — n’ouvrir que les ports nécessaires
- Updates auto —
unattended-upgradessur Debian/Ubuntu
FAQ
CrowdSec consomme combien de RAM ?
~50-100 Mo en idle, ~150 Mo sous charge. Plus léger que Fail2Ban Python sous attaque DDoS.
La blocklist communautaire est-elle vraiment gratuite ?
Oui — la Community Blocklist (100k+ IPs malveillantes) est gratuite à vie. Les Premium Blocklists spécialisées (par menace : VPN, bots scrapers, etc.) sont payantes. Pour 99% des VPS, la Community suffit.
Mes données sont-elles partagées ?
Quand votre agent détecte une attaque, l’IP attaquante est partagée avec le cloud CrowdSec (anonymisée — uniquement IP + scénario, pas vos logs ni votre identité). Vous recevez en retour la liste des IPs flaggées par les autres. C’est l’essence du modèle “crowd”.
Si vous ne voulez pas partager : restez en local sans enroller, vous gardez l’agent + bouncer mais pas la community list.
CrowdSec gère HTTP/Nginx ?
Oui — collection crowdsecurity/nginx détecte SQL injection, XSS, scrapers, brute force HTTP, scanners de vulnérabilités. Ajoutez aussi un bouncer Nginx/HAProxy/Cloudflare pour bloquer au niveau applicatif (plus précis que firewall IP).
Ça remplace Cloudflare WAF ?
Non — complémentaire. Cloudflare WAF filtre avant d’arriver au VPS (utile contre DDoS volumétrique). CrowdSec filtre sur le VPS (utile contre attaques applicatives spécifiques). Combinez les deux pour une défense en profondeur.
Comment voir un dashboard graphique ?
La CrowdSec Console (web, gratuite) montre vos engines, alertes, décisions sur https://app.crowdsec.net après enrollment. Vue centralisée si vous gérez plusieurs VPS.
Mon bouncer ne bloque rien malgré des décisions actives, pourquoi ?
Causes typiques :
- Mauvais bouncer choisi (iptables vs nftables — voir étape 5)
- Service bouncer arrêté :
systemctl status crowdsec-firewall-bouncer - Token bouncer expiré :
cscli bouncers list→ si invalide, réinstallez le bouncer
Conclusion
CrowdSec transforme votre VPS d’une cible isolée en partie d’un réseau collectif de défense — chaque attaque détectée ailleurs vous protège, chaque attaque que vous bloquez protège les autres. Pour un serveur public en 2026, c’est l’investissement de 5 minutes le plus rentable côté sécurité.
Pour un VPS Linux avec Debian/Ubuntu pré-installé et console KVM de secours, HebergTonServ propose des serveurs premium dès quelques euros par mois.


