Tableau bord Kibana - Fail2ban
Fail2ban
est un outil très pratique pour interdire l'accès à des machines en fonction des tentatives d'accès et l'analyse des traces, sur serveur Web ou en SSH par exemple.
Cet article présente la mise en place d'un tableau de bord sous Kibana
afin d'exploiter les informations extraites par Logsatsh
, suite à la mise en place de la configuration suivante.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Création indexe
Afin de pouvoir construire le tableau de bord, un indexe est créé pour travailler sur tous les indexes commençant par f2b-
dans ElasticSearch
. La création de celui-ci s'effectue comme indiqué dans l'article suivante.
Sur la page d'ajout d'indexe, le nom saisie est donc f2b-*
.

Création recherche
Au niveau du tableau de bord, une table sera ajoutée pour afficher certaines données sous la forme d'un tableau. Une recherche est donc enregistrée afin de l'utiliser comme source de données. La création de celle-ci s'effectue comme indiqué dans l'article suivant.
Les propriétés suivantes sont sélectionnées.
-
action
pour distinguer le tye d'opération effectuée parFail2ban
; -
geoip.country_name
pour connaître le pays d'où provient l'adresse IP; -
ip
qui permettra d'effectuer les filtre dans le tableau de bord; -
jail
le nom du bannissement.

Visualisations
Une fois les sources de données mises en place, il suffit de créer les différents éléments de visualisation qui seront ajoutés au tableau de bord.
Carte
Le premier élément créé va permettre de visualisation la localisation des bannissements. Une carte est créée avec la données geoip.location
pour le Bucket
de type Geohash
.

La donnée affichée est celle standard, soit Count
.

De plus, un filtre est ajouté afin de ne prendre en compte que les actions de bannissement.

Actions par pays
Une visualisation est mise en place afin de représenter le nombre d'actions réalisées par pays. Le type sélectionné est Pie
avec la donnée standard Count
. Le découpage est réalisé selon la propriété geoip.country_name.keyword
ainsi.

Un camembert est alors affiché ainsi.

Bannissements par prison
De la même façon, une visualisation est mise en place pour voir la répertartition des bannissements en fonction des prisons. Le type sélectionné est Pie
avec la donnée standard Count
. Le découpage est réalisé selon la propriété jail.keyword
ainsi.

Comme pour la construction de la carte, un filtre est mis en place sur la visualisation, afin de ne tenir compte uniquement des actions de bannissement.
Un camembert est alors affiché ainsi.

Listing
Le tableau de bord va permettre de visualiser les bannissements mis en place. Cependant, il est interressant de pouvoir accéder aux messages / données liées à chaque élément. Cela s'effectue simplement en ajoutant la recherche enregistrée, créée préalablement, dans le tableau de bord.

Listing top
Un autre objectif du tableau de bord est de permettre d'identifier des origines malvaillantes, celles qui se font banir mais qui retentent régulièrement. Pour cela une table est créée avec la donnée standard Count
.
Les lignes sont découpées, action Split Rows
, selon l'adresse IP. Ainsi il sera facile de filtrer le tableau de bord selon la source.

Un second découpage est réalisé selon le pays, afin de visualiser rapidement le pays d'origine.

Enfin un troisième découpage est mis en place selon le nom du bannissement, pour identifier le type d'attaque.

Une table est alors affichée ainsi.

Histogramme
Une dernière visualisation est mise en place afin de représenter le nombre d'actions réalisées au fil du temps. Le type sélectionné est Vertical Bar
avec la donnée standard Count
.
L'aggrégation Date Histogram
avec la propriété bantime
est utilisée pour l'axe X
.

Il est souhaité de regrouper les données en fonction du type d'action. Pour cela un découpage, Split Series
, est mis en place sur la propriété action.keyword
.

Un graphique est alors affiché ainsi.
