
Il suffit de jeter un œil aux logs de son serveur web pour s’en rendre compte : les tentatives d’intrusion sont constantes. Même sur un simple VPS, sans publicité, sans service exposé. Des bots qui scannent /wp-login.php
, des requêtes douteuses vers /admin
, des payloads injectés façon SQLi ou XSS… C’est le quotidien de tout serveur accessible sur Internet.
Et pourtant, beaucoup se contentent de réagir après coup. Avec CrowdSec, on inverse la logique : on détecte, on bloque, et surtout… on partage les infos avec les autres.
Si tu utilises Nginx, l’intégration est propre, efficace, et rapide à mettre en place. Voici comment faire.
CrowdSec : un bouclier collaboratif contre les IP toxiques
CrowdSec, c’est un outil de sécurité open source qui fonctionne un peu comme un fail2ban nouvelle génération. Il analyse les logs de ton système et de tes services (Nginx, SSH, Postfix, etc.), détecte les comportements suspects (tentatives de brute force, scans, abus…), puis déclenche des actions pour bloquer les IP à la source.
Mais là où ça devient intéressant, c’est que CrowdSec est collaboratif. Si une IP malveillante est détectée sur ton serveur, l’information est partagée (de manière anonyme) avec les autres utilisateurs. Et inversement. Résultat : plus le réseau grandit, plus la protection devient intelligente et réactive.
Prérequis
- Un serveur Linux (Debian ou Ubuntu, idéalement)
- Nginx installé et en fonctionnement
- Un accès root ou sudo
Étape 1 : installer CrowdSec
L’installation est rapide. CrowdSec propose un script tout-en-un, simple et propre :
curl -s https://install.crowdsec.net | sudo bash
Une fois installé, le service crowdsec
est lancé automatiquement. Il commence à surveiller les logs système par défaut. Pour les logs Nginx, on va lui indiquer quoi regarder.
Étape 2 : ajouter la collection Nginx
CrowdSec fonctionne avec un système de collections — des ensembles de scénarios adaptés à certains services. Pour Nginx, on installe la collection dédiée :
sudo cscli collections install crowdsecurity/nginx
sudo systemctl reload crowdsec
Cette collection contient des règles pour détecter les requêtes anormales, les bots trop agressifs, les tentatives d’exploitation connues, etc.
Étape 3 : installer le bouncer Nginx
CrowdSec tout seul se contente d’analyser et de prendre des décisions. Pour qu’il bloque les IP, il lui faut un “bouncer”. Celui qu’on veut ici, c’est crowdsec-bouncer-nginx :
sudo apt install crowdsec-bouncer-nginx
Ce composant interagit directement avec Nginx pour refuser les connexions venant d’adresses IP malveillantes identifiées par CrowdSec.
Étape 4 : intégrer le bouncer à Nginx
CrowdSec fournit un fichier de configuration qu’on va inclure dans Nginx pour activer la vérification des IP.
Dans ton fichier Nginx (par exemple /etc/nginx/nginx.conf
, ou dans ton server.conf
), ajoute cette ligne :
include /etc/crowdsec/bouncers/crowdsec-nginx-bouncer.conf;
Fais bien attention à l’ordre : il faut que cette ligne soit placée avant tout bloc location
, idéalement au début du bloc server
ou http
.
Ensuite, on recharge Nginx :
sudo systemctl reload nginx
Et c’est en place.
Étape 5 : vérifier que tout fonctionne
Tu peux vérifier les décisions actives avec :
sudo cscli decisions list
Tu y verras toutes les IP actuellement bloquées sur ton serveur : celles repérées en local et celles qui viennent de la base communautaire.
Pour tester, tu peux aussi utiliser une IP volontairement signalée comme malveillante (ou simuler une attaque sur ton propre site), et observer si elle se retrouve bloquée.
Bonus : bloquer au niveau du système (firewall)
Si tu veux aller encore plus loin, tu peux installer un bouncer qui agit avant même que la requête HTTP n’atteigne Nginx. Il s’agit du bouncer firewall :
sudo apt install crowdsec-firewall-bouncer-iptables
Ce bouncer bloque les IP directement via iptables
ou nftables
, ce qui allège ta charge serveur et te protège plus tôt dans la chaîne réseau. Très utile si tu veux éviter les DDoS basiques ou les crawlers agressifs.
Pourquoi utiliser CrowdSec + Nginx ?
Parce que ça évite de jouer à la chasse à l’intrus tous les jours.
Tu n’as plus besoin d’aller farfouiller dans les logs pour comprendre pourquoi ton CPU explose à 2h du matin. Tu n’as plus à maintenir manuellement des listes noires ou bricoler des règles de fail2ban qui cassent à chaque mise à jour.
CrowdSec apprend, s’adapte, et agit automatiquement. Tu peux même recevoir des alertes, suivre l’activité via un dashboard, ou consulter la réputation d’une IP avant d’ouvrir une porte réseau.
Et après ?
Si l’outil te plaît, tu peux aller plus loin : intégrer CrowdSec à ton SIEM, surveiller d’autres services (SSH, Postfix, Docker…), ou utiliser leur dashboard web pour une vision centralisée.
Mais déjà, avec cette config simple — Nginx + bouncer + détection — tu as un bon premier rempart, solide et discret.
Et honnêtement, une fois qu’on y a goûté, difficile de s’en passer.