Académique Documents
Professionnel Documents
Culture Documents
Présentés par :
Monsieur Moussa KANE
Mademoiselle Salamata NDIAYE
Le 12Encadreurs
Mai 2018 à Thies
Monsieur Lamine DIENG
Monsieur Pape Manoumbé DIENG
Monsieur Moustapha SARR NDIAYE
ISEP-THIES : Gestion des Logs
Page vierge
SOMMAIRE
I. CONTEXTE ET PROBLEMATIQUE
II. Présentation des outils de solution
III. Installation d'ELK
IV. ELK dans la production
V. Volet Sécurité : Qu’apporte l’analyse des logs sur le plan sécurité
VI. RESULTATS
DEDICACES
REMERCIEMENTS
SI : système d’information
IP : internet Protocol
OS : operating system
GO : gigats octet
SIEM :
Avant-propos
L’institut supérieur d’enseignement professionnel (ISEP) est un centre d’excellence créé en 2012 à
vocation régionale qui est sous la tutelle du Ministère de l’Education Nationale et est rattachée à
l’université de Thiès. L’ISEP a pour mission de dispenser un enseignement supérieur et des activités de
recherche en vue de préparer directement les étudiants aux fonctions d’encadrement dans la production,
la recherche appliquée et les services ; organiser des enseignements et des activités de recherche visant
au perfectionnement permanent, à l’adaptation et à la participation, à l’évolution scientifique et même
littéraire pour certaines filières , mais aussi procéder à des expertises dans le cadre de la formation à
l’intention des entreprises publiques et privées. Elle est constituée de cinq départements à savoir :
Systèmes et Réseaux Informatiques
Création Multimédia
Exploitation Agricole
Métiers Du Rail
Tourisme et Loisirs
Ce dernier délivre, à l’issue de deux ans de formation, un Diplôme de technicien supérieur Disep option
Administration en systèmes et réseau informatique. Avec l'adoption du système d’approche par
compétence (ACP) l’Institut Supérieur d’Enseignement Professionnel autorise à ce que les étudiants
ayant terminé les deux années de formation obtiennent leurs diplômes intitulé le « Disep » après une
soutenance de leur projet opérationnel (P.O) devant un jury, dont les thèmes sont soit proposés par
l’administration ou par les étudiants ; ces thèmes en fin de compte doivent être validé sous l’accord de
l’administration, à la suite duquel se tient un stage de fin d’étude, d’une durée de deux mois au sein
d’une entreprise.
Sa vocation première est de former, tant sur le plan théorique que pratique, de futurs cadres : Techniciens
Supérieurs dans tous les domaines cités précédemment.
L’objectif visé est de faciliter l’intégration de ses étudiants dans le milieu environnemental de
l’entreprise et de les mettre face aux fréquentes épreuves de la vie professionnelle. Il permettra donc à
l’apprenant de mettre en pratique les nombreuses connaissances théoriques acquises au cours de deux
années de formation.
ORGANIGRAMME DE L’ISEP-THIES
Conseil d’administration
Conseil académique
Direction Conseil de gestion
Contrôle de gestion
Cellule interne d’Assurance Qualité
Audit interne
Services
Fonctions de Services médico Direction des
Agence comptable Administratifs et
financiers services sociaux et sportifs études
Comités et
Conseillers Secrétariat
commissions
Dépense -
Service des Service de
Visa Service des ressources Centre Laboratoire
Ressources la Scolarité
Informatiques médical Central
Documentaires centrale
Recouvremen
t Centres
Accueil d’Innovation,
Rapportage Information Filières et d’Application
Comptabilité Imprimerie Programme
Orientation et de
Acquisitions Reprographie s de
Inscription Transfert
Personnel enseignant Recouvrement Numérisation formation
Personnel gestionnaire Suivi
Archivage
Personnel technique
Personnel de service
Voyages, Missions Service
d’Appui au
Placement
des
Logistique Apprenants
Réseaux Social, Médical
Patrimoine Visites
Multimédia Habitat,
Maintenance Immersions
Applications Restauration
Entretien Séjours, Stages
Maintenance Sport, Loisirs
Sécurité Culture
Insertion
INTRODUCTION
Il n’existe pas de système parfaitement sécurisé. Même si vous débranchez votre ordinateur et
l’entreposez dans un hangar, il y aura toujours une personne capable de le rebrancher. Les
vulnérabilités sont donc inhérentes aux systèmes informatiques. Mais, s’il n’est pas possible de toutes
les supprimer, on peut néanmoins les surveiller. En parlant de surveillance ici, nous faisons référence à
deux réalités. La première est l’analyse en temps réel de l’utilisation qui est faite du système : cette
opération permet de détecter une attaque, voire de l’empêcher, et d’alerter les administrateurs en cas
de problème. La seconde est l’étude des traces laissées par l’exploitation d’une vulnérabilité : cela peut
permettre de comprendre la méthode employée par l’attaquant, de mettre en place des contre-mesures
ou même de mieux sécuriser l’application.
La sécurité des systèmes d’information (SSI) ou plus simplement sécurité informatique, est
l’ensemble des moyens techniques, organisationnels, juridiques et humains nécessaires à la mise en
place de moyens visant à empêcher l'utilisation non-autorisée, le mauvais usage, la modification ou le
détournement du système d'information.
Pour mieux assurer la sécurité du système d'information, il nous faut un moyen technique qui nous
permet d’interagir avec le système pour pouvoir rassembler toutes les informations en temps réel. Pour
ce faire l’étude des journaux d’événement autrement dit les logs est un moyen efficace. Il existe
diffèrent type de journaux (journaux applicatives et journaux systèmes).
Le concept de la centralisation des logs consiste simplement à mettre sur un même serveur, une même
plateforme, l’ensemble des logs des systèmes, des applications, des routeurs, et des services des machines
environnantes.
Pour le bon déroulement de ce travail nous allons en première partie expliquer ce que c’est la
centralisation des logs, en deuxième partie présenter la solution ELK et son installation et enfin
expliquer comment centraliser les logs des différentes provenances et le fonctionnement de la stack
elk.
PREMIERE PARTIE
I. CONTEXTE ET PROBLEMATIQUE
A. Contexte
Les entreprises déploient de plus en plus de solutions informatiques qu’il faut savoir
administrer, pour cela les logs en sont le principal outil. En effet, les logs sont très
importants pour les entreprises car ils permettent l'analyse en profondeur des services mis
en place. Le problème est qu’ils génèrent des logs que nous devons utiliser afin
d’administrer le système. Trouver le bon log devient évidemment un réel problème
lorsque l’on ne sait même pas où chercher.
B. Problématique
Les logs, sont donc indispensables dans toutes applications afin d’analyser, savoir ce qu’il
se passe et intervenir lors des différents problèmes (configurations, réseaux,
permissions…). Lorsque dans une infrastructure, plusieurs applications sont en marche, la
recherche de logs adéquats au problème devient très longue.
Où peut-on trouver les logs ? Bien entendu les logs de chaque application ne se trouvent
pas au même endroit.
Ai-je la permission d’accès ? Les différentes applications ne sont pas créées par une seule
et même personne, les permissions sont différentes, un administrateur peut ne pas avoir
accès à chaque fichier.
Il faut obligatoirement utiliser sous linux les commandes grep, cut, sort, tail afin de
rechercher la bonne information qui pourra aider à trouver le problème, ces commandes
sont très efficaces mais aussi très lassantes si on passe la journée à vouloir dépanner
différentes applications.
Pour répondre à ce besoin, nous souhaitons regrouper tous les journaux pour pouvoir les
exploiter plus simplement. Nous allons donc travailler sur une solution permettant une
gestion centralisée des journaux de plusieurs services, ainsi qu’un moteur de recherche
pour identifier les entrées des journaux en cas de problèmes.
Un log, aussi appelé journal d’événement, est la notification d’un événement qui est plus ou
moins important, envoyé par une application, un système, un service ou une machine sur le
réseau. La résolution des pannes nécessite, en général, d’étudier les logs des applications,
équipements réseaux ou autres, ils permettent donc de comprendre ce qu’il s’est passé et de
pouvoir retracer les actions d’un système. Ils sont donc très importants en informatique, car ils
peuvent donner des explications sur une ou plusieurs erreurs, sur un crash ou une anomalie.
Ils nous permettent de comprendre certains fonctionnements d’un système par exemple, ils
retracent la vie d’un utilisateur, d’un paquet ou d’une application sur le réseau et peuvent
aussi notifier une action quelconque. Les logs sont donc indispensables pour bien comprendre
d’où proviennent certains dysfonctionnements. Il existe diffèrent type de journaux (journaux
applicatives et journaux systèmes).
2. La centralisation
Les logs sont produits par tous types de systèmes, d’applications et d’équipements sur le réseau. En
général, les logs sont stockés par défaut dans le dossier « /var/log » sous Linux.
Le fait de centraliser les logs permet de sécuriser le réseau, d’avoir la meilleure gestion du système
d’information possible et d’avoir une vue d’ensemble de tous les éléments importants sur le réseau.
Certains messages sont anodins, tandis que d’autres peuvent être très importants, c’est pour cela que la
centralisation va faciliter la recherche et l’analyse, qui pourront ainsi être à la fois très précises et
concises sur les activités de plusieurs systèmes, car tout se trouvera au même endroit. De plus, la
centralisation sera utile pour détecter les événements anormaux sur le réseau ou sur les systèmes de
tout type en utilisant les logs.
Ils pourront retracer le parcours d’une attaque plus facilement car ils seront d’une part tous
regroupés et d’autre part exportés de la zone d’effet de l’attaquant, il sera donc difficile pour le
pirate de supprimer les logs pour effacer ses traces.
La centralisation permet également de garantir la pérennité des logs, il est nécessaire de ne pas
les stocker sur un système en production qui peut tomber à tout instant car s’il devient
injoignable, la récupération des logs devient plus compliquée alors que, s’ils sont exportés sur
une machine disponible, la vitesse de récupération de ces derniers sera beaucoup plus rapide et
le problème sera traité plus facilement.
Avoir une vue d’ensemble d’éléments cruciaux à la bonne gestion d’un SI pour y mener des
traitements tels que :
IDS : Certains types d’IDS (Intrusion Detection System ou systèmes de détection d’intrusion)
se servent des journaux d’événement pour détecter des comportements anormaux sur le réseau
ou sur les systèmes surveillés. Ceux-ci n’utilisent donc pas l’écoute du réseau pour effectuer
leur surveillance mais bien les logs, on appelle alors ces IDS des log-based IDS (IDS basé sur
les logs). Des exemples connus de tels systèmes sont Fail2ban et DenyHosts par exemple.
Forensic, plus largement l’analyse d’attaque ou d’intrusion : on peut décrire le forensic de la
façon suivante : “c’est une méthode d’investigation matérielle ou virtuelle basée sur
l’extraction de données brutes ou altérées de manière à construire une chronologie
événementielle, à établir une logique séquentielle ou à reconstituer un ensemble cohérent de
données pour en tirer une explication contextuelle. ” (source : post d’un membre
d’Hackademics). C’est une définition exacte dans le cadre qui nous intéresse même si les
notions d’enquête et de moyen légal de récupération de données sont ici oubliées. Quoi qu’il
en soit, les logs vont être d’une grande aide lorsque ceux-ci nous permettent de retracer le
parcours, les actions et les dégâts d’un attaquant sur un ensemble de systèmes. Ceux-ci étant
facilité d’abord parce que les logs sont centralisés, mais également, car ils sont exportés de la
zone d’effet de l’attaquant qui a alors plus de difficulté à les supprimer pour effacer ses traces.
Recherche / statistique : La centralisation des logs va permettre d’effectuer des recherches très
précises sur l’activité de plusieurs systèmes tout en étant sur une machine. Les opérations de
recherche et de statistique s’en trouvent donc facilitées, car tout est sur la même plate-forme.
En cas de crash ou de suppression des logs
Diagnostiquer un crash : Il peut être très utile de savoir précisément ce qu’il s’est passé
lorsqu’un système devient complètement injoignable (après un crash sévère par exemple). Si
les logs qui permettent de diagnostiquer la panne se trouvent sur ladite machine, ils sont
difficilement atteignables (on peut toujours extraire les disques, les lires sur un autre
périphérique, etc.). Dans le cas où les logs sont exportés sur une machine dont la disponibilité
est assurée, il est alors possible de rapidement récupérer les derniers événements systèmes de
la machine endommagée pour diagnostiquer plus facilement.
Garantir la survie des logs à une suppression : une des étapes post-intrusion lors d’une attaque
informatique est l’effacement des traces que le pirate a pu laisser. On passe alors, en partie,
par la suppression des logs et historiques qui peuvent donner des indications sur les actions
menées pendant l’intrusion et possiblement sur une identité réseau (IP, adresse MAC, OS,
etc.). Lorsque les logs sont stockés en local, les logs qui sont supprimés sont alors
difficilement récupérables, lorsqu’ils sont également envoyés sur une autre machine, il est
possible de récupérer des informations. Notons que la suppression, ou perte, des logs peut
également arriver dans d’autres contextes plus proches de la vie quotidienne d’un SI telle que
la perte d’un disque, d’une partition dédiée aux logs, la mauvaise manipulation d’un
administrateur systèmes pressé…
DEUXIEME PARTIE
Loin d’avoir fait le tour des outils qui vous permettront de mettre en place la centralisation des logs dans
vos parcs informatiques, mais il y en a un très grand nombre, que ce soit pour la centralisation en elle-
même, pour l’indexation, le stockage ou le traitement (sécurité, graphique…). Il s’agit là d’un élément
central de la sécurité d’un système d’information qui doit être pensé dès qu’il se met à grandir. Pour
notre cas on va travailler avec ELK.
B. Présentation général d’ELK
Le moins que l’on puisse dire sur ELK c’est qu’il a fait un sacré bonhomme de chemin. Il faut dire que
hormis SEC (un outil de corrélation d'événements pour le traitement avancé des événements qui peut
être utilisé pour la surveillance des journaux d'événements, pour la gestion de réseau et de sécurité,
pour la détection de fraude et pour toute autre tâche impliquant une corrélation d'événements.), il n’y
avait pas grand-chose de disponible dans le monde Open Source pour ce genre de travail.
Et puis le rapprochement naturel qui s’est opéré avec Elasticsearch et Kibana amène aujourd’hui le
projet vers de nouvelles ambitions. Devenir une des pierres angulaires de la Business
Intelligence… Rien moins que ça !
Source : www.googleimage.com
Elasticsearch
S’il y a un élément qui prend une importance primordiale dès lors que l’on souhaite analyser, stocker
des messages, évènements systèmes ou applicatifs, c’est la base de données utilisée. Les bases de
données traditionnelles (SGBD) ont montré, comme dans le cadre du stockage des métriques, leurs «
limites » pour travailler sur les volumes imposés par ce genre de pratique.
Elasticsearch n’est pas à proprement parlé une base de données mais un moteur d’indexation, de
recherche et d’analyse de données. Et c’est certainement là que Jordan Sissel, auteur de Logstash a fait
une bonne pioche. Car du coup, son projet bénéficie des fonctionnalités intrinsèques à Elasticsearch
comme :
d’événements stockés en base. La possibilité d’effectuer toutes les recherches via une API
REST donc pas de client dédié nécessaire.
Ceci n’est pas une liste exhaustive des qualités de Elasticsearch mais simplement celles qui ont le plus
marquées dans son utilisation. Notre « rivière » dans le contexte gestion de logs, c’est Logstash !
Logstash
Ce qui est particulièrement frappant aujourd’hui est de constater la diversité des usages que font les
gens de Logstash, ce qui atteste de la polyvalence du projet en matière de traitement sur les
messages et autres événements.
C’était jusqu’à peu la seule solution à ma connaissance qui permettait de construire des systèmes de
gestion de logs structurés et normalisés pour Unix et Windows.
Ce genre de chose est désormais également possible avec Rsyslog qui lui aussi sait désormais envoyer
ces messages vers Elasticsearch. Bel exemple de convergence technologique !
Logstash fonctionne sur un principe simple, un peu comme un routeur de messages. Il est possible de
parler de chaînes de liaisons entre ces différents composants.
Source : googleimage.com
Tous les différents éléments que nous allons détailler sont implémentés sous forme de plugins, ce qui
rend très « facile » d’ajouter des possibilités à Logstash. La liste de ces plugins ne cesse d’ailleurs de
croître.
Les entrées
Logstash accepte à peu près tout ce qui peut être représenté sous forme de chaîne de caractères en
entrée. Texte, nombre, date…. La liste des entrées disponibles est impressionnante et couvre des
plugins particuliers pour Collecte, Graphite, websocket, les interruptions SNMP et même l’IRC.
Il est tout à fait possible d’envisager un jour un plugin permettant de récupérer les données
depuis Check my Website pour les envoyer vers une instance Logstash.
Des plugins plus génériques sont bien sûr disponibles comme Syslog, AMQP pour recevoir des
messages depuis ce genre de bus messages…
Les encodeurs/décodeurs
Les « codecs » sont arrivés pour pouvoir normaliser et packager un ensemble de filtres (à découvrir ci-
dessous).
Il existe de nombreux codecs dont Graphite pour encoder, décoder le format natif des
métriques Graphite ou encore NetFlow, qui permet lui l’encodage, décodage des flux NetFlow, très
utilisé (mais pas assez) pour la supervision réseau.
Les filtres
Les filtres permettent de triturer tout message arrivant dans Logstash. Par triturer, on entend découper
un message en plusieurs parties et inversement, formater les dates, normaliser le nom des champs mais
pas seulement. Au programme, des filtres pour créer des sommes de contrôles, extraire des
nombres, supprimer des messages avant stockage et bien sûr Grok.
Grok est sûrement l’un des plus puissants et permet de structurer n’importe quel message, comme des
logs Apache 2 par exemple. Sa force réside dans sa capacité à construire des expressions complexes à
partir d’expressions régulières plus simples.
Les sorties
Une fois que Logstash a opéré sur les messages, ceux-ci peuvent désormais être « routés » vers les
plugins de sortie qui permettent d’envoyer les messages vers un bon paquet d’outils tierces, en plus de
la sortie « naturelle » de Logstash; à savoir Elasticsearch.
Kibana
Kibana a démarré comme un projet d’interface à Logstash. C’est aujourd’hui l’interface officielle
d’Elasticsearch.
Vous pouvez donc l’utiliser pour visualiser, rechercher parmi les messages de logs et autres
événements système mais n’est pas du tout limité à ça. Kibana vous permet de requêter et visualiser
n’importe quelles données contenues dans Elasticsearch.
Néanmoins l’exploitation des masses d’informations contenues dans ces fichiers reste très limitée et
fastidieuse tant qu’on a à faire à des fichiers texte sous forme brute. C’est là que des outils tels que
Kibana (couplé à ElasticSearch) permettent d’aller vraiment plus loin en offrant des interfaces de
recherche efficaces ainsi que la possibilité de produire des tableaux de bord permettant de suivre
l’activité d’un système. Ce type d’outils destinés aussi bien aux administrateurs systèmes qu’aux
développeurs ou aux experts métiers a pris un essor important ces dernières années.
Source : ttps://www.google.sn/search?q=Architecture+de+la+pile+ELK&tbm
NB : Nous avons utilisé pour notre cas un système ubuntu14.04 pour faire tous nos installations
B. Installation d'Elasticsearch
1. Installation de Java
La commande suivante permet de connaitre la version de java du système installé :
java –version
Dans notre cas on a comme version du java7 donc pour l’installer il faut :
Ensuite, nous avons besoin d’installer les paquets de transports avant de procéder à
l’installation d’ElasticSearch.
Apres l’insertion de la clef d’importation il nous faut faire une mise à jour des paquets avant
d’installer elasticsearch. Pour ce faire on fait :
C. Installation de Logstash
1. Installation
Pour installer les paquets logstash il suffit simplement de taper la commande suivante :
apt-get install logstash
2. Configuration de Logstash
Pour configurer le logstash on crée un fichier dans le répertoire /etc/logstash/conf.d. Ce fichier
comporte 3 parties : input, filter et output
Filter : Qui sert à analyser les données et les transformer indépendamment du format ou
de la complexité
Output permet de faire redirectionner les logs d’entrées vers logstash ou dans la console
Traitement en output
Traitement en filter
Avantages : Moins de filtres à mettre en place, administration plus facile et mieux organisée.
Inconvénients : Filtrage sur un grand nombre de logs en même temps, ce qui demande plus de
mémoire.
Inconvénients : Pratique pour de très faibles quantités de données. Impossible ici de mettre en
place de manière globale du fait des multitudes de pilotes ayant chacun un ou plusieurs formats
de logs différents
Exemple de filtre :
D. Installation de Kibana
1. Installation
Une fois stockés plusieurs logs il nous faut un outil avec une interface graphique p our mieux avoir
une vue globale de l’ensemble des événements. Pour ce faire on installe kibana avec la commande
suivante :
apt-get install kibana
TROISIEME PARTIE
Le volume de données générées par les systèmes d’informations augmente de façon quotidienne, et
l’exploitation de ces données est un enjeu pour beaucoup d’entreprises. Donc il doit être
nécessairement faire appel à une procédure qui permet d’avoir une vue beaucoup plus explicite et plus
simple que l’on appelle kibana. Peu importe le format sous lequel est stockée l’information: fichier de
logs, base de données, autre média… la finalité est toujours d’extraire certaines données et de les
synthétiser dans un graphique ou un dashboard Kibana s’appuie sur toute la puissance d’ElasticSearch
pour manipuler simplement et efficacement l’ensemble de ses données. Ce dernier s’appuie
directement sur un système d’indexation c’est-à-dire analyser des données soumises, pour produire
un format qui facilite une recherche rapide, comme l’index d’un livre permet de retrouver du contenu
sur base d’un mot clé de même un moteur de recherche pour faire rechercher des données dans l’index
sur base de requêtes plus ou moins structurées une interface de visualisation pour donner du sens à des
données, une utilisation brute des résultats est fastidieuse, surtout si le volume est important. L’outil de
visualisation permet de produire des graphiques dynamiques, des visualisations ou des rapports sur
base des données retournées par le moteur de recherche.
./bin/elasticsearch
NB : Pour rediriger les logs d’un logiciel, d’un OS ou d’une application dans le pipeline logstash on
doit créer, pour chaque service, un script dans logstash.
a. Récupération des logs de type syslog machine local et distante (ssh, kernel, auth,
syslog)
Une fois démarré le service logstash avec la commande en dessus il laisse automatiquement les logs
défilés vers le console grâce à la sortie (output codec=>rubydebug)
La figure ci-dessous montre les différents types de log qui sont générés par notre système.
GLPI (Gestion Libre de Parc Informatique) est une application open-source full-web pour gérer
l’ensemble des problématique d’un parc informatique de la gestion de l’inventaire, des composantes
matérielles ou logicielles du parc à la gestion de l’assistance aux utilisateurs. Dans notre cas on ne
s’intéresse pas à glpi pour son utilité de gérer la gestion d’inventaire d’un parc informatique mais en
guise d’exemple pour contrôler les logs des applications, comment trouvés leur erreurs et les résoudre.
Et pour ce faire il nous faut installer l’application glpi. Avant d’installer GLPI , il faut installer
l’environnement LAMP (Linux , Apache, Mysql, Php)
Apache2 est un serveur http qui gère des applications web (glpi, ldap, webmin…..) mais aussi de les
mettre en interaction direct vers l'internet (site web html, php, etc...). Dans notre cas pratique, on va
utiliser le glpi et l’interagir directement avec notre serveur apache2.
On sait qu’à chaque exécution d’une application ça laisse générer automatiquement des traces derrière.
La meilleur solution est de récupérer tous ces journaux et les mettre quelques part pour que quand
notre application bug ou voir même présente certaines anomalie c’est à parti du fichier log qu’il faut
aller voir pour identifier les erreurs.
Pour faire un lien entre apache2 et glpi il faut déplacer tout simplement les paquets de glpi vers
(/var/www/html/) de telle sorte qu’à chaque démarrage de notre application web, ça laisse passer
automatiquement des traces vers notre serveur apache2
Installation d’apache2:
Ici toutes les erreurs auquel rencontre notre application seront redirigé vers /home/salla-
kane/logs/error.log et les access vers /home/salla-kane/logs/access.log
Wget https://github.com/glpiproject/glpi/releases/download/0.90.1/glpi-0.90.1.tar.gz
Lorsqu'on gère un parc de serveur qui comprend malheureusement des serveurs Windows, on souhaite
centraliser leurs logs, voir même recevoir des alertes en fonction du contenu. C'est simple à faire sous
Linux avec rsyslog, avec lequel on transmet les syslogs vers la destination voulu. Par contre dans le
monde Windows il n'y a pas de serveur syslog natif.
Le logiciel libre nxlog permet de faire exactement la même chose que rsyslog, sans interface
graphique. NXLog Community Edition est un outil de gestion de journaux open source disponible
gratuitement. Il est disponible pour différentes plateformes, y compris Windows et GNU / Linux.
L'édition communautaire de NXLog est utilisée par des milliers de personnes à travers le monde, des
petites entreprises en démarrage aux grandes entreprises de sécurité. Sa flexibilité lui permet d'être
utilisé dans diverses configurations et peut être utilisé à la fois comme un agent de collecteur de
journaux et comme un serveur de journal.
On commence par ajouter un nouvel input à logstash toutes les confs de logstash se gèrent
dans /etc/logstash/conf.d/ :
On redémarre logstash puis on vérifie que l’input nxlog est bien actif avec un petit netstat :
Pour la configuration de nxlog c’est simple, après avoir installé sur la machine cliente Windows le
logiciel nxlog on passe dans le fichier de configuration qui se trouve dans : C:\Program Files
(x86)\nxlog\conf et on renseigne l’adresse ip du machine serveur et le port 514 qui est le pour accéder
à rsyslog et le format json.
Teste : après les configurations on redémarre les services logstash voici les logs Windows qui passe
sur le serveur logstash.
Nous allons étudier l'intérêt de la centralisation des logs et surtout la manière de faire pour
les systèmes Cisco (Routeurs, Switch, ...). Vous trouverez ainsi la procédure à suivre en ligne de
commande sous Cisco pour envoyer tout ou partie de vos logs sur un serveur distant
On a utilisé gns3 pour réussir l’exportation de log des routeurs avec une simple architecture en guise
d’exemple.
@routeur : 192.168.231.136
@serveur : 192.168.231.130
Comme on a une interconnexion entre notre routeur et notre serveur sur lequel les logs seront bientôt
stockés, étant donné que la configuration que nous présentons se fait en ligne de commande, on va
commencer par ouvrir un terminal. Une fois sur celui-ci, on va passer en mode enable.
Il est important de noter que l'horodatage, c'est à dire l'heure que vont avoir les journaux exportés, a
une importance particulière dans le système de centralisation des logs. Il permet en effet de retracer
précisément les logs entre plusieurs machines, c'est pour cela que la première chose à faire est de
mettre notre machine à la bonne date et la bonne heure :
Résultat
Puis on configure les différents paramètres propres à l'envoi des logs, on commence par l'IP du serveur
distant :
Figure 33 : IP du serveur
Puis on peut préciser le log facility qui va nous permettre, sur le serveur distant, de trier les logs, par
exemple :
Une chose importante à faire également est de configurer le log-level à partir duquel on prendra le soin
d'envoyer les logs. Pour différentes raisons comme la performance, on peut ne pas vouloir envoyer la
totalité des logs au serveur distant, on va alors choisir d'envoyer les logs à partir d'un certain niveau de
criticité. On retrouve généralement ces niveaux de logs :
7 - debbuging
6- informational
5 - notifications
4 - warnings
3 - errors
2 - critical
1 - alerts
0 - emergencies
Vous l'aurez compris, le loglevel "0" est le cas le plus critique et "7" est le cas le plus bavard où
beaucoup de logs sont produits, nous allons alors envoyer les logs de 6 à 0, on fixe donc la valeur
à "informational».
Notre système Cisco va maintenant commencer à envoyer ses logs au serveur distant. On va pouvoir
récapituler la configuration présente en retournant en mode enable puis en saisissant "show logging" :
Il nous faut maintenant, pour tester notre export de log Cisco, provoquer la journalisation d'évènement.
On verra alors dans le fichier configuré dans Rsyslog pour recevoir les fichiers à log-facility 4 les logs
de notre routeur Cisco
Maintenant que les logs sont collectés, puis transformées et enfin stockées dans Elasticsearch, il ne
reste plus qu’à les exploiter pour construire des tableaux de bord. Le tableau de bord que nous allons
construire affichera les informations de géolocalisation sur une carte, le top des urls, et l’activité sur le
site. Kibana a été installé à la racine du site web par défaut. Il est donc accessible à l’url suivante :
http://localhost/nomduserveur
Dans un premier temps, nous allons configurer dans quel index Elasticsearch nous allons récupérer
nos logs. Rappelez-vous, nous avons stocké nos logs dans un index dont le pattern était : « logstash-
local-salla-moussa- {+YYYY.MM.dd} »ce qui veut dire que Logstash créera un nouvel index chaque
mois. Nous allons reporter ce pattern dans Kibana en ouvrant les options du tableau de bord. Une fois
l’index enregistré, nous pouvons commencer à créer des panels de restitution. Pour cela, nous avons
besoin de créer des lignes rows qui vont contenir nos panels. Une fois la ligne créée, nous allons lui
ajouter des panels.
Maintenant, nous allons ajouter un panel permettant de connaitre la position de nos utilisateurs. Pour
cela, nous allons utiliser le panel better-map qui s’appuie sur les coordonnées produites par le plugin
geoip. Ajoutez le champ geoip. Location dans le champ field et enregistrer le panel. La carte s’affiche
avec les points de connexion indiquant le nombre de requêtes reçues.
Kibana nous affiche un histogramme contenant les 5 urls les plus accédés sur la période sélectionnée.
Nous allons utiliser notre panel goal qui permet d’afficher les logs des utilisateurs (salitandiaye,
madamefaye, mbayang, ndeyefatou) sous forme de diagramme circulaire
Pour mieux interpréter ces différents types de graphiques il faut aller juste sur le paramètre message
puis enchainer par l’élément bar
Recenser toutes les alertes du serveur de log (date, heure, numéro d’alerte,
machine concernée, priorité de l'alerte)
Pour notre cas pratique parmi les logs centralisés on a pris comme exemple un message d’erreurs
(WARNING). C’est à dire que l’utilisateur (NDEYE FATOU) est averti pour ne pas confronter à
certains problèmes. Le message s’affichant dans kibana nous dit qu’il est impossible d’enregistrer le
fichier car sa taille dépasse la limite autorisée. La solution ici est que l’espace source doit être
inférieure à celle de la destination.
Pour notre deuxième exemple la même machine est confrontée à un problème d’espace insuffisant
Démarrer , Panneau de configuration , Afficher par petites icônes , Système , Paramètres Système
Avancés , Clic sur le bouton "Paramètres" dans Performances , Onglet "Avancé" , Clic sur le bouton
"Modifier" dans Mémoire virtuelle , Décocher la case "Gestion automatique du fichier d'échange pour
les lecteurs" , Clic sur le volume qui doit contenir votre fichier "Page File" (généralement C:)
,Sélectionnez "Taille gérée par le système" (ou "Taille personnalisée" et saisir vos nombres) , Clic sur
le bouton "Définir" , Ok , Ok , Ok , Fermer et redémarrer.
Il est essentiel pour toute entreprise ou organisation de concevoir et de mettre en œuvre des dispositifs
de sécurisation fiables pour mettre leurs SI et leur contenu à l’abri de personnes malveillantes ou
d’intrusions inopportunes. Les risques d’espionnage industriels et de piratage informatique sont en
effet réels.
VI. RESULTATS
A. Objectifs réalisés
Nous avons pu centraliser plusieurs logs de sources différents dans un seul serveur. Il s’agit des
logs de machine:
Linux
Windows
Pour avoir une vue globale sur tous les informations de notre système et mieux pouvoir les analysés
B. Evolutions possibles
Du stockage et du traitement de gros volumes de données (Big Data) dans la pile élastique qui
est la prochaine évolution d’ELK
Amélioration du monitoring pour une facilité de pouvoir des erreurs comme des anomalies
Détection de bug dans les applications Big Data…)
CONCLUSION
Pour valider notre fin de formation, il est obligatoire pour nous de présenter des P.O (projet
opérationnel) dont l’étude ici porte sur la sécurité informatique particulièrement des SI (système
d’informations) et notre choix se concentre sur l’étude des logs, centralisation des logs dans un serveur :
titre de notre sujet.
On a eu à voir ensemble ce qu’est la centralisation des logs et la solution ELK pour le mettre en place.
Aussi on a pu comparer notre solution avec d’autres solutions existantes et comment l’utilisé de manière
général.
En somme compte tenus des multiples avantages qu’offre la solution « open source » ELK, notre
problématiques d’avoir une vue d’ensemble des logs de tout machines et serveurs de l’ISEP-THIES des
bureaux et des applications virtuelle afin de faciliter le monitoring des différents services s’est enfin
réalisé.
WEBOGRAPHIE
https://www.elastic.co/fr/
https://www.supinfo.com/articles/single/2498-elk-installation-configuration
https://image.slidesharecdn.com/dploiementelkenconditionsrelles
https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_pr%C3%A9vention_d%27
intrusion
https://www.ladissertation.com/Sciences-et-Technologies/Sciences-de-la-Vie-
de-la-Terre/Serveur-De-Centralisation-Des-Logs-36913.html
https://desaille.fr/monitoring-avec-elk/
http://blog.d2-si.fr/2016/08/23/bonnes-pratiques-elastic-stack/
http://lesaventuresdeyannigdanslemondeit.blogspot.sn/2014/02/couplage-
nxlog-et-stack-elasticsearch.html
https://openclassrooms.com/courses/proteger-son-serveur-avec-fail2ban
https://blog.zenika.com/2016/02/15/consolider-les-logs-docker-dans-un-elk/
https://www.information-security.fr/fr/centralisation-des-logs-un-outil-pour-
la-securite/
http://www.ragingcomputer.com/2014/02/sending-windows-event-logs-to-
logstash-elasticsearch-kibana-with-nxlog
https://fr.wikipedia.org/wiki/Historique_(informatique)
http://www.wancore.fr/ref/analyse-des-logs-de-securite.html
Maintenant que c'est fait, descendez jusqu'à la partie concernant les jails (prisons). Comme vous
pouvez le constater, une prison est un bloc de 5 lignes concernant un service en particulier
Figure : teste
Source : auteur du projet