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_ur
l et api_key
.
Si vous n’avez pas modifier le fichier
docker-compose.yml
, la valeur pourapi_url
esthttp://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.