Crowdsec

Bonjour à tous. Oui, je sais, cela fait presque deux ans que je n’ai rien écrit sur le blog, mais je ne suis pas encore mort, et ce n’est pas faute d’avoir des brouillons plein les placards… Bref, la vie de Head of CERT est bien remplie ! Tout ça pour vous dire que j’ai migré le serveur geekeries.org vers un nouveau. Debian 12 se rapprochait doucement de sa fin de vie, et comme dirait Marc Fred, je n’avais pas envie de mériter de m’en prendre une. Donc on ne réfléchit pas, on patch 😉 Bref, quelques heures plus tard, et le temps de tout bien reconfigurer (iptables, fail2ban, docker, etc.), je vais pouvoir vous parler de CrowdSec et de la version free que vous pouvez déployer sur vos machines.

CrowdSec, c’est quoi déjà ?

CrowdSec se présente lui-même comme un IPS open source et participatif. Vous vous souvenez de mes posts sur AbuseIPDB? Eh bien CrowdSec, c’est globalement le même principe qu’un AbuseIPDB en mode “boosté aux hormones”. Je m’explique : comme pour AbuseIPDB, CrowdSec s’installe en tant qu’agent sur votre ou vos serveurs. Il surveille les journaux d’événements locaux à la recherche d’événements en échec à déclarer au service central.

Là où CrowdSec fait un peu plus, c’est au niveau du traitement des données remontées en central et dans la définition des “scenarios” de surveillance. La base centrale de CrowdSec passe un algorithme de réconciliation des données envoyées par les agents. Cela permet un recoupement beaucoup plus fin que ce que propose la simple base de scoring d’AbuseIPDB. De plus, les scenarios qu’il est possible de mettre en place sont beaucoup plus détaillés. Vous les trouverez sur le hub CrowdSec, par exemple ici pour un scan multi-port, ou pour WordPress : https://hub.crowdsec.net/browse/#collections

Au final, cela va vous permettre de gérer des scénarios beaucoup plus avancés qu’avec AbuseIPDB, même avec mes bricoles à coup de Splunk derrière. Et tout comme AbuseIPDB, vous avez également accès à la base de CTI de CrowdSec. Enfin, pas beaucoup en version free : 10 queries / 2 hours dans la version gratuite. Cela vous permet de savoir si une IP est malveillante ou non.

Installation de CrowdSec sur une Debian 13

L’installation, c’est par ici, sur ma Debian ça donne :

bashcurl -s https://install.crowdsec.net | sudo sh
apt list crowdsec
apt install crowdsec

Avant de passer à la partie HTTP, vous pouvez déjà installer CrowdSec sur votre firewall iptables. Il se place juste à côté de nos configurations précédentes (ici, ) et de fail2ban par exemple :

bashsudo apt install crowdsec-firewall-bouncer-iptables

Pour tester que tout fonctionne :

bashssh crowdsec-test-NtktlJHV4TfBSK3wvlhiOBnl@<your-server-ip>

Puis :

bashcscli alerts list -s crowdsecurity/ssh-generic-test

et vous devriez voir apparaître votre adresse IP.

Avant de terminer, faites un petit coup de :

bashcscli console enroll --auto

et

bashcscli capi status

pour vous assurer que l’agent communique bien avec l’infrastructure de CrowdSec, et c’est tout bon.

Bouncer et conclusion

Néanmoins, gardez en tête que le vrai intérêt de CrowdSec est plutôt sur la partie web. Je vous conseille donc d’installer un bouncer sur votre site web par exemple : crowdsec-nginx-bouncer. Méfiance si vous déployez sur une stack docker + npm comme dans mes TP précédent : la configuration peut être « un peu tricky ».

En conclusion, heureusement que CrowdSec a prévu un joli guide pour vous aider : https://www.crowdsec.net/blog/crowdsec-with-nginx-proxy-manager pour les copains d’@CrowdSec : c’est juste un poil dommage de nous demander d’utiliser un obscur fork de npm par un inconnu qui n’a pas été mis à jour depuis 3 ans (enfin je soupçonne depuis que Laurence n’est plus chez vous… OSINT quand tu nous tiens) mais faites leur confiance hein, il fait de la sécu chez crowdsec #trollmode.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.