
Aujourd’hui je veux partager un outil vraiment fantastique que j’ai découvert il y a maintenant plusieurs mois et qui, je dois le dire, fait vraiment le travail !
On va donc parler de : CrowdSec !
Crowdsec est un logiciel gratuit et open source et Français qui analyse les logs des services exposés à internet pour déterminer si chaque connexion est légitime et sinon bloque l’adresse à son origine en créant une nouvelle règle de pare-feu.
Et là on pourrait se dire : « Ouai c’est un fail2ban quoi … ». Et bien non ! Car CrowdSec montre sa vraie puissance en mettant à disposition les IP bannies de notre serveur avec tous les autres utilisateurs. Cela veut dire que l’on a aussi accès aux listes d’IP bannies des autres utilisateurs pour faire une base de données communautaire de plus de 41 millions d’adresses malicieuses.
Voici un petit exemple du nombre de ban par type d’attaques :

Il est aussi possible de monter un dashboard metabase pour visualiser les données ci dessus mais de façon plus jolie.
On peut voir sur la capture d’écran que malgré le peu de trafic que mon site web engendre (rien de comparable à un site marchand par exemple), en quelques mois il a bloqué 11k attaques par bruteforce ssh, 3k énumérations de comptes utilisateurs, 3k énumérations de pages, etc.
Installation
Le plus simple est d’opter pour un bon vieux docker-compose :
version: '3' services: crowdsec: image: crowdsecurity/crowdsec:latest restart: always environment: #il faut choisir les collections qui nous interessent #https://hub.crowdsec.net/ COLLECTIONS: "crowdsecurity/wordpress" GID: "${GID-1000}" ports: - 8888:80 volumes: - /path/to/acquis.yaml:/etc/crowdsec/acquis.yaml - /path/to/db:/var/lib/crowdsec/data/ - /path/to/config:/etc/crowdsec/ - /path/to/logs:/var/log/nginx:ro #logs que crowdsec doit lire
Une fois que c’est lancé, il reste à installer les bouncers. Ce sont les modules qui vont bloquer les IP que l’on repère dans les logs. Par exemple, le bouncer mikrotik va créer des règles directement sur le routeur et ainsi bloquer les IP malicieuses.
Pour relier l’instance crowdsec et le bouncer il faut générer un clé API locale sur l’instance crowdsec et ensuite rajouter un cronjob pour exécuter deux commandes, qui vont mettre à jour la base communautaire :
cscli hub update && cscli hub upgrade
Utilisation
L’utilisation est très simple, il suffit de laisser crowdsec se débrouiller. On peut éventuellement regarder de temps en temps les décisions qu’il prend, les alertes qu’il remonte ou simplement regarder quelques statistiques :
cscli decisions list
cscli alerts list
cscli metrics
Voilà ! J’espère que ce petit article a pu au moins éveiller la curiosité sur ce magnifique outil et qu’il continuera à se développer encore et encore pour sécuriser nos usages.
Adishatz!