Tableau bord Kibana - Fail2ban

De EjnTricks
Révision de 29 mai 2018 à 12:40 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Icon-database-init.png 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-*.


Icon-database-search.png 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 par Fail2ban;
  • 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.


Viewer icon.png 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.

System-Internet-Search-icon.png 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.


Chart-pie-icon.png Globe-icon.png 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.


Chart-pie-icon.png Forbidden-icon.png 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.


Table-icon.png 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.


Format-number-icon.png 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.


Icon-log.png 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.