3 septembre 2012

Dans le journal d’un splunker, je me lance à la découverte de Splunk et vous fais partager mes avis et impressions. Au programme d’aujourdhui, la création d’une application pour le traitement des logs Juniper Secure Access.

 

Vous avez raté l’épisode précédent ? Rendez-vous sur Journal d’un Splunker : Day 3.

Avec la gestion des logs Fortinet, j’ai bien compris le fonctionnement du reporting sous Splunk. J’ai mis en place un dashboard contenant plusieurs graphes. J’ai même activé l’envoi automatique du dashboard aux adminsitrateurs de façon régulière. En quelques secondes, ils peuvent avoir une visibilité globale sur ce qui se passe sur le firewall et potentiellement identifier un comportement anormal. Certes ce n’est pas optimal et pas infaillible, mais c’est un niveau de reporting que l’on n’avait pas forcément de façon simple avant.

Je reviendrai là-dessus dans quelques mois. Splunk étant capable de conserver des informations pendant pas mal de temps, on devrait être en mesure de définir des moyennes, des seuils critiques et pas mal de choses dans le genre pour mettre en place un alerting qui sera vraiment utile et même proactif tant qu’on y est !

J’avais prévu de faire la même chose pour mes logs Juniper SA mais finalement, on va corser un peu la tâche. La prochaine étape de la découverte concerne les applications. Après avoir “ouvert” un certain nombre d’applications disponibles sur la Splunk Base, je me suis rendu compte que c’était pas bien compliqué d’en créer une qui soit “basique”.

Un dashboard créé de toutes pièces via l’interface graphique est “traduit” en xml. Idem pour les menus et quelques autres éléments “hors scope” pour aujourd’hui.

 

Première étape : Côté Juniper SA, je configure l’envoi des logs (users, admin et system) en syslog au format WELF. Petite parenthèse sur le format WELF qui est bien sympatique puisqu’il me permet d’avoir des logs bruts avec une mise en forme très appréciée par Splunk : champ=valeur.

Tant que j’y suis, je fais un petit script qui va faire du polling SNMP pour aller récupérer les infos qui m’intéressent et je stocke le résultat dans un fichier texte sur mon serveur. C’est certainement pas ce qu’il y a de plus propre mais ça fonctionne bien. On verra un jour si je peux faire quelque chose de plus optimisé.

Pourquoi je fais ça ? Parce que certaines infos ne sont pas envoyées par le SA en syslog, typiquement, le nombre d’utilisateurs simultanés à un instant t et c’est une info plutôt intéressante vu que c’est ce facteur qui determine la licence nécessaire. En récupérant ça, on va pouvoir faire un petit graphe et, qui sait, se rendre compte que la licence en place n’est pas assez (ou trop) grande par exemple. Qui a parlé de business intelligence ?

Côté Splunk, je crée mes recherches, mes rapports et je personnalise un peu l’interface graphique avec un joli logo et une charte graphique un peu web 2.0. J’ai vu aussi qu’on pouvait créer des rapports « dynamiques ».

Pour tester ça, je crée deux pages qui me permettent de faire des recherches dans mes logs de façon simplifié qui seront utiles à des administrateurs pas forcément familiers avec Splunk. Dans l’une, j’effectue une recherche à partir d’un certain nombre de champs que l’administrateur peut remplir manuellement (utilisateur, role, IP source et autres). Dans la seconde, le principe est le même, à ceci prêt que les champs de recherche sont remplacés par un menu déroulant présentant toutes les valeurs possibles en guise de nom d’utilisateur, de royaume, d’IP source, etc, encore plus simple.

Une fois que tout ça est finalisé, je créé un menu digne de ce nom pour naviguer de dashboard en dashboard assez simplement et le tour est joué !

 

Voici quelques captures d’écrans pour vous donner une petite idée de ce que ça donne.

 

Connexions par utilisateur, par rôle et par royaume

 

Etat du système

 

Géolocalisation des IP sources

 

Au final, j’ai sous la main un petit fichier zippé bien pratique et prêt à l’emploi. C’est une bonne base de travail à mettre en place dans le cadre d’un POC ou même en production. J’ai toute une partie “basique” qui n’aura même pas besoin d’être adaptée. Pour ce qui est un peu plus poussé, j’ai  compris le principe et je sais où faire les modifications pour que mes rapports soient pertinents dans n’importe quel environnement. En fonction des demandes, ça prendra plus ou moins de temps mais je suis prêt à relever le défi.

 

Si ça peut vous intéresser, vous savez où me trouver !

Partager :

Auteurs