Comment protéger vos serveurs Linux avec CrowdSec 🛡️

Comment protéger vos serveurs Linux avec CrowdSec 🛡️

Qu'est ce que CrowdSec ?

CrowdSec est un Système de Détection et de Prévention d'Intrusion (IDPS) open-source conçu pour protéger les systèmes et les applications contre les attaques en ligne. Ce système de défense s'appuie sur un réseau collaboratif et une approche communautaire pour identifier et contrer les attaques.

Cyber security image
Photo by FLY:D / Unsplash

Le principe de base de CrowdSec est de collecter et d'analyser des données de sécurité à partir de différentes sources pour établir des profils de comportement malveillant. Ces données proviennent souvent de journaux système, de serveurs web, etc. Par exemple, CrowdSec peut analyser les journaux de votre serveur web, comme Nginx, et chercher des requêtes présentant des anomalies. Elles sont identifiées en fonction d'une liste de scénarios prédéfinis, ce qui permet de repérer, par exemple, des menaces basées sur des caractéristiques spécifiques telles qu'une adresse IP ou un User Agent connu pour être à l'origine de cyber-attaques.

Dès qu'un comportement malveillant est détecté, CrowdSec réagit automatiquement en mettant en place des mesures de sécurité pour contrer l'attaquant et en générant une alerte pour informer les administrateurs du système. Ces réponses automatisées permettent de bloquer rapidement les menaces potentielles.

Console CrowdSec

Installation de CrowdSec sur Ubuntu

CrowdSec est disponible sur la plupart des distributions Linux ainsi que sur Windows et autres système d'exploitation (FreeBSD, etc). Ce guide va vous guider à travers l'installation et la configuration de CrowdSec sur Ubuntu.

Pour installer CrowdSec, vous pouvez utiliser les commandes suivantes :

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash 
sudo apt install -y crowdsec

Installation d'un videur

Vous devrez également installer un ou plusieurs videurs, ce sont des logiciels autonomes chargés de mettre en place les décisions prises par CrowdSec, comme le blocage d'une adresse IP ou la présentation d'un Captcha.

Pour commencer, vous pouvez utiliser le videur suivant, qui bloque les adresses IP malveillantes au niveau du par-feu iptables, si vous utilisez un autre système de par-feu, accédez a la liste des videurs ci-dessus.

sudo apt install -y crowdsec-firewall-bouncer-iptables

Lorsque vous installez un videur, il devrait automatiquement être activé, vous pouvez le vérifier avec la commande suivante :

sudo cscli bouncers list
Voir https://docs.crowdsec.net/docs/cscli/cscli_bouncers pour plus d'informations.

Configuration de scenarios

Les scénarios sont des éléments essentiels du moteur de détection CrowdSec et lui permettent de reconnaître les comportements suspects et de prendre la décision de bloquer ou non une adresse IP.

Des scénarios devraient être automatiquement configuré en fonction des services que CrowdSec a détecté sur votre système lors de son installation. Pour lister les scénarios actifs, utilisez la commande suivante :

sudo cscli scenarios list
Exemple de scénarios automatiquement configurés sur un serveur web.
Voir https://docs.crowdsec.net/docs/cscli/cscli_scenarios pour plus d'informations

Les alertes CrowdSec

Lorsqu'une activité malveillante est détectée par un scénario, une alerte est automatiquement générée. Vous pouvez consulter l'historique des alertes comme montré ci-dessous :

sudo cscli alerts list
Historique des alertes
Pour savoir comment gérer, inspecter, supprimer, ou trier les alertes, voir la page de documentation officielle : https://docs.crowdsec.net/docs/cscli/cscli_alerts

Les décisions CrowdSec

Pour se protéger, CrowdSec peut créer des décisions. Ce sont des mesures de sécurité prises pour contrer les attaquants comme par exemple le blocage de l’adresse IP à l'origine de la détection. Pour voir les décisions actives, utilisez cette directive.

sudo cscli decisions list
Exemple de blocage d'adresse IP

Dans l'exemple au dessus, on peut voir que l'adresse IP 93.95.227.226 à été bloquée pour une durée de 4 heure pour une tentative d'accès a une porte dérobée sur le serveur. Cela montre qu'il est très important de surveiller les alertes CrowdSec afin de pouvoir investiguer et déterminer si un danger existe dans de telles situations.

Pour annuler, créer manuellement, ou importer des décisions, référez vous a la page de documentation officielle : https://docs.crowdsec.net/docs/cscli/cscli_decisions

La console CrowdSec

La console CrowdSec est une interface web moderne facultative qui va vous permettre de lier vos serveurs afin d'avoir une vue d'ensemble sur les cyber-menaces.

Commencez par vous rendre à l'adresse https://app.crowdsec.net/ et créez vous un compte.

Vous verrez ensuite la commande à exécuter pour lier votre serveur à votre console. Copiez-là simplement dans votre terminal.

Vous pouvez désormais confirmer l'ajout de votre instance depuis votre console, et finalement, redémarrez le service CrowdSec sur le serveur.

sudo systemctl restart crowdsec

Vous pouvez maintenant accéder aux données de sécurité de vos machine depuis la console CrowdSec.

Console CrowdSec

Conclusion

Si vous avez suivi toutes les étapes correctement, vous devriez avoir une instance CrowdSec opérationnelle. Je vous conseille d'effectuer des tests de pénétration simples pour vérifier l'absence de toutes erreurs.

Si vous rencontrez quelque problème que ce soit, n'hésitez pas a demander de l'aide dans les commentaires de cet article et je serai ravi de vous aider!

Informations additionnelles

  • Documentation officielle de CrowdSec : https://docs.crowdsec.net/docs/intro
  • Si votre serveur est derrière un proxy inversĂ©, il est important d'effectuer les configurations nĂ©cessaires afin que ce soit l'adresse de l'attaquant qui apparaisse dans les journaux et pas celle du proxy. Sinon quoi toutes les requĂŞtes seraient bloquĂ©es, c'est n'est pas ce que vous voulez!