Site icon RDR-IT

Crowdsec : installation et configuration en conteneur avec Docker

Dans ce tutoriel, je vais vous expliquer comment installer et configurer Crowdsec en conteneur.

Si vous ne connaissez pas encore Crowdsec, c’est un logiciel communautaire qui permet de sécurisé les serveurs exposés sur Internet en analysant les différents logs afin de détecter des attaques et comportement malveillant. Quand une attaque est détecté, l’adresse IP est bloqué à l’aide du pare-feu de la machine. Toute la force de Crowdsec réside dans sa base d’adresses IP communautaire qui contient plusieurs milliers d’adresse IP reconnu comme malveillante.

Dans des précédents tutoriels, j’ai expliqué comme installer Crowdsec sur Ubuntu et Windows, ici on va voit comment faire fonctionner Crowdsec en conteneur sur un serveur Linux (Ubuntu).

Pour moi l’avantage d’utiliser un conteneur plutôt que l’installation directe, c’est que c’est plus facile à maintenir et le second, c’est que Crowdsec consomme moins de ressource.

Pour commencer, il vous faut un ordinateur avec Ubuntu et Docker d’installer.

Création du conteneur Crowdsec

Pour ce tutoriel, une fois de plus on va utiliser docker-compose pour gérer le conteneur.

Sur votre machine créer un premier dossier, où l’on va stocker le fichier docker-compose et les dossiers des volumes.

A l’emplacement souhaité créer un dossier :

sudo mkdir crowdsec

Aller dans le dossier qui vient d’être créer et créer les deux dossiers suivants qui vont contenir les volumes déclarer dans le fichier docker-compose.yml

sudo mkdir vol-crowdsec-config && sudo mkdir vol-crowdsec-db

Dans le dossier crowdsec, créer un fichier nommer docker-compose.yml

sudo nano docker-compose.yml

Copier le code ci-dessous :

Adapter le chemin des volumes à votre environnement

Télécharger l’image du conteneur Crowdsec :

sudo docker compose pull

Une fois l’image télécharger, démarrer le conteneur :

sudo docker compose up -d

Pour vérifier que tout se passe bien, afficher les logs du conteneur :

sudo docker compose logs -f

Pour sortie de la vue des logs, utiliser les touches Crtl+C

Pour vérifier le bon fonctionnement, on va afficher les metrics de Crowdsec :

sudo docker compose exec crowdsec cscli metrics

Le conteneur avec Crowdsec fonctionne, on va maintenant passer à l’installation d’un bouncer.

Installation du bouncer IPTABLES pour bloquer les adresses IP au niveau du firewall de la machine

Maintenant, on va faire en sorte de bloquer les adresses IP malveillantes, pour cela, vous devez avoir activer le parefeu UFW sur l’ordinateur.

L’installation du bouncer va se faire directement sur l’hôte car il doit agir sur le firewall de la machine physique ou de la machine virtuelle.

On va utiliser le script de Crowdsec pour installer les dépôts puis le bouncer.

Entrer la commande suivante :

curl -s https://install.crowdsec.net | sudo sh

Installer le bouncer :

sudo apt install crowdsec-firewall-bouncer-iptables

Le bouncer iptables est installé, on va maintenant faire en sorte, que le conteneur et le bouncer communique.

Configuration du bouncer IPTABLES avec le conteneur Crowdsec

On va commencer par générer une clé d’API pour le bouncer :

sudo docker compose exec crowdsec cscli bouncers add HostLocal

Noter bien la clé de l’API, elle ne sera visible que là.

Vous pouvez modifier HostLocal par le nom que vous souhaitez.

On va éditer le fichier de configuration du Bouncer pour lui indiquer l’adresse du conteneur et la clé de l’api.

sudo nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml

Dans le fichier éditer api_url et api_key.

Si vous n’avez pas modifier le fichier docker-compose.yml, la valeur pour api_url est http://10.199.0.5:8080/

Redémarrer le bouncer :

sudo systemctl restart crowdsec-firewall-bouncer

Pour vérifier le bon fonctionnement du Bouncer et la communication avec le conteneur Crowdsec, entrer la commande suivante avec intervalle de 5 minutes et regarder Last API Pull qui retourne l’heure de la derniere communication avec le bouncer.

sudo docker compose exec crowdsec cscli bouncers list

Pour vérifier si également si tout fonctionne entrer la commande :

sudo iptables -L -n

Dans la liste des règles, on peut la règle de blocage de Crowdsec.


Vous savez maintenant comme déployer Crowdsec en conteneur.

Quitter la version mobile