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écuriser les serveurs exposés sur Internet en analysant les différents logs afin de détecter des attaques et comportements malveillant. Quand une attaque est détectée, l’adresse IP est bloquée à l’aide du pare-feu de l’ordinateur.

Toute la force de Crowdsec réside dans sa base d’adresses IP communautaire, qui contient plusieurs milliers d’adresse IP reconnues comme malveillantes.

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

Pour moi l’avantage d’utiliser un conteneur à la place d’une installation directe, c’est qu’il est plus facile de maintenir Crowdsec.

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

Création du conteneur Crowdsec

Pour ce tutoriel, une fois de plus on va utiliser docker compose pour la gestion du 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

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

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

Dans le dossier crowdsec, créer un fichier nommé 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

L’image téléchargée, démarrer le conteneur :

sudo docker compose up -d

Pour vérifier que le conteneur démarre sans problème, afficher les logs :

sudo docker compose logs -f

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

Vérifier le bon fonctionnement, 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 l’ordinateur

Maintenant, on va faire en sorte de bloquer les adresses IP malveillantes, pour cela, vous devez avoir activé 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 l’hôte où Docker est installé.

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 configurer le bouncer pour qu’il communique avec le conteneur Crowdsec.

Configuration du bouncer IPTABLES avec le conteneur Crowdsec

Commencer par générer une clé d’API pour le bouncer :

sudo docker compose exec crowdsec cscli bouncers add HostLocal

Noter 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 modifié 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 dernière communication avec le bouncer.

sudo docker compose exec crowdsec cscli bouncers list

Vérifier si également si tout fonctionne entrer la commande :

sudo iptables -L -n

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


Vous savez maintenant comme déployer Crowdsec en conteneur.




Laisser un commentaire