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 :
#/etc/crowdsec/config.yaml on Ubuntu
config_paths:
notification_dir: /etc/crowdsec/notifications/
plugin_dir: /usr/lib/crowdsec/plugins/plugin_config :
#/etc/crowdsec/config.yaml
plugin_config:
user: nobody
group: nogroupVé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/notificationsDupliquer le http.yml pour configurer l’envoie Ă ELK :
sudo cp http.yml elk.ymlOuvrir 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 :
type: http # Type de notification
name: http_elk # this must match with the registered plugin in the profile
log_level: trace # Options include: trace, debug, info, warn, error, off
format: |-
{{ range .}}
{"index": { "_index": "crowdsec"} }
{{.|toJson}}
{{ end }}
url: http://elastic.url.com/_bulk
method: POST
headers:
Content-Type: "application/json"Il faut maintenant configurer Crowdsec pour utiliser notre fichier de configuration.
Aller dans le dossier /etc/crowdsec :
cd ..
# or
cd /etc/crowdsecOuvrir le fichier profiles.yaml :
sudo nano profiles.yamlPar 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 :
.....
notifications:
- http_elk # name of notification
.....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 »
