Crowdsec : envoyer les logs sur Elasticsearch (ELK)

Dans ce tutoriel, je vais vous expliquer comment envoyer les logs des decisions sur Elasticsearch (ELK) afin de pouvoir faire un dashboard pour exploiter les logs.

Ce que vous avez besoins pour réaliser ce qui décrit dans le tutoriel :

  • Crowdsec version 1.2.x ou supérieure
  • un serveur Elasticsearch ou un le stack ELK

Depuis la version 1.2 de Crowdsec, un système de notification a été ajoutée qui permet d’effectuer une action quand une decision est appliquée. Ici on va voir comment envoyer ces informations à ELK.

Cas particulier de Crowdsec mise à jour vers la version 1.2 ou supérieure

Avant de parler de la configuration pour envoyer les logs Crowdsec vers Elasticsearch, je vais m’attarder sur un point particulier, si vous avez installé Crowdsec avec la version 1.2 et que vous l’avez mise à jour, il est nécessaire d’ajouter des paramètres dans la configuration de Crowdsec, car comme je l’ai déjà dit, le système de notification a été ajouté à la version 1.2.

Vérifier les éléments ci- après dans le fichier de configuration de Crowdsec : /etc/crowdsec/config.yml, s’ils ne sont pas présent, ajouter les.

config_paths :

plugin_config :

Vérifier que les dossiers dans configurer dans config_paths existes :

Tout est bon, on peut maintenant passer à la configuration de la notification pour envoyer les informations sur ELK.

Configurer l’envoie des logs Crowdsec sur Elasticsearch

Sur la documentation disponible sur le site de Crowdsec, il utilise le fichier de configuration http.yml pour envoyer configurer l’envoie des logs.

Le problème, si vous souhaitez faire plusieurs notifications http, le fichier de configuration va vite devenir « compliqué », ce que l’on va faire c’est créer un fichier pour elk.

Aller dans le dossier /etc/crowdsec/notifications.

cd /etc/crowdsec/notifications

Dupliquer le http.yml pour configurer l’envoie à ELK :

sudo cp http.yml elk.yml

Ouvrir le fichier avec nano pour l’éditer :

sudo nano elk.yml

Éditer le fichier de configuration comme ci-dessous en modifiant la ligne 12 avec l’url de votre elastic :

Il faut maintenant configurer Crowdsec pour utiliser notre fichier de configuration.

Aller dans le dossier /etc/crowdsec :

cd ..
# or
cd /etc/crowdsec

Ouvrir le fichier profiles.yaml :

sudo nano profiles.yaml

Par sécurité, avant l’édition, vous pouvez sauvegarder le fichier sudo cp profiles.yaml profiles.yaml.bk.

Avant on_success: break on va indiquer l’utilisation des notifications :

C’est configurer, il ne reste plus qu’à redémarrer le service crowdsec :

sudo systemctl restart crowdsec

Visualisation dans ELK

La création de l’index dans Elasticsearch peut prendre du temps, car les notifications sont envoyées seulement quand une décidsion est prise.

Dans la gestion des index elasticsearch, on retrouve notre index crowdsec :

Dans les index pattern de KIbana, créer un index afin de visualiser les logs de Crowdsec :

Vous aurez ensuite accès aux logs dans la partie Discover :

Vous pouvez maintenant créer un dashboard avec les informations de Crowdsec pour analyser les différents blocages et visualiser les différentes « attaques »