Vous êtes sur la page 1sur 14

Chapitre 2.

Le Service SNMP (Simple Network Management Protocol)

I. Service Syslog.

Syslog est un protocole définissant un service de journaux d'événements d'un


système informatique. C'est aussi le nom du format qui permet ces échanges.
Syslog a été développé dans les années 1980 par Eric Allman dans le cadre du
projet Sendmail1, et n'était initialement prévue que pour Sendmail. Il s'est avéré si utile
que d'autres applications ont commencé à l'utiliser. Syslog est depuis devenu la solution
de journalisation standard sur les systèmes Unix et Linux2, il y a également une variété
d'implémentations syslog sur d'autres systèmes d'exploitation (Windows notamment3)
et est généralement trouvé dans les périphériques réseau tels que
les commutateurs ou routeurs.
I.1. Définition du mot log :
Les logs serveur sont une source de données particulièrement précieuse pour les SEO. Ils
permettent d’étudier le comportement d’un serveur ( Google, yahoo,..) sur un site internet et
d’agir en conséquence. Après avoir évoqué les bases de l’analyse de logs, nous verrons
comment mettre en place facilement un monitoring des logs avec Elasticsearch, Logstash et
Kibana, des solutions 100% gratuites et open source.
I.2. Présentation du protocole Syslog

En tant que protocole, Syslog se compose d'une partie cliente et d'une partie serveur. La
partie cliente émet les informations sur le réseau, via le port UDP 514. Les serveurs
collectent l'information et se chargent de créer les journaux.

L'intérêt de Syslog est donc de centraliser les journaux d'événements, permettant de


repérer plus rapidement et efficacement les défaillances d'ordinateurs présents sur un
réseau.

I.3. Le format Syslog

Un journal au format syslog comporte dans l'ordre les informations suivantes : la date à
laquelle a été émis le log, le nom de l'équipement ayant généré le log (hostname), une

21
information sur le processus qui a déclenché cette émission, le niveau de priorité du log,
un identifiant du processus ayant généré le log et enfin un corps de message.

Certaines de ces informations sont optionnelles.

Exemple :

Sep 14 14:09:09 machine_de_test dhcp service[warning] 110 corps du message.

Niveau de gravité
Les niveaux de gravité Syslog, appelés Severity level en anglais sont au nombre de huit
représentés par un chiffre de 0 (Emergency) à 7 (Debug) :

Codes de gravité

Code Gravité Mot-clé Description

emerg
0 Emergency Système inutilisable.
(panic)

1 Alert alert Une intervention immédiate est nécessaire.

2 Critical crit Erreur critique pour le système.

3 Error err (error) Erreur de fonctionnement.

warn Avertissement (une erreur peut intervenir si aucune action


4 Warning
(warning) n'est prise).

5 Notice notice Événement normal méritant d'être signalé.

6 Informational info Pour information.

7 Debugging debug Message de mise au point.

22
II. Service SNMP : Présentation et Historique du SNMP

La construction d'un réseau de travail est importante, mais la surveillance de sa santé


est aussi importante que sa construction. Heureusement, nous avons des outils pour
rendre la vie de l'administrateur plus facile et SNMP est l'un d'entre eux. SNMP se
présente dans la plupart des réseaux indépendamment de la taille de ce réseau. Et
comprendre comment SNMP fonctionne est vraiment important et que ce que nous
allons apprendre dans ce cours.

II.1. Les principes,

SNMP se compose de 3 éléments:


+ SNMP Manager (parfois appelé Network Management System - NMS): un logiciel
s'exécute sur le périphérique de l'administrateur réseau (dans la plupart des cas, un
ordinateur) pour surveiller le réseau.
+ Agent SNMP: un logiciel s'exécute sur les périphériques réseau que nous voulons
surveiller (routeur, commutateur, serveur ...)
+ Management Information Base (MIB): est la collection d'objets gérés. Ces
composants s'assurent que l'échange de données entre le gestionnaire et l'agent
reste structuré. En d'autres termes, MIB contient un ensemble de questions que le
gestionnaire SNMP peut demander à l'agent (et l'agent peut les comprendre). La MIB
est communément partagé entre l'agent et le gestionnaire.

Par exemple, dans la topologie ci-dessus, vous souhaitez surveiller un routeur, un


serveur et un commutateur multicouche. Vous pouvez exécuter l'agent SNMP sur chacun
d'eux. Ensuite, sur un PC, vous installez un logiciel SNMP Manager pour recevoir des
informations de surveillance. SNMP est le protocole qui s'exécute entre le gestionnaire
et l'agent. La communication SNMP entre le gestionnaire et l'agent se fait sous forme de

23
messages. Le processus de surveillance doit se faire via une MIB qui est une base de
données normalisée et contient des paramètres / objets pour décrire ces dispositifs de
réseau (comme les adresses IP, les interfaces, l'utilisation de l'UC, ...). Par conséquent, le
processus de surveillance devient maintenant le processus de GET et SET l'information
de la MIB.
SNMP a plusieurs versions, mais il existe trois versions principales:
SNMP version 1
SNMP version 2c
SNMP version 3

SNMPv1 est la version originale et est très héritée de sorte qu'il ne devrait pas être
utilisé dans notre réseau. SNMPv2c a mis à jour le protocole d'origine et a offert
quelques améliorations. Une des améliorations remarquables est l'introduction des
messages INFORM et GETBULK.
Les deux SNMPv1 et v2 ne se concentrent pas beaucoup sur la sécurité et ils fournissent
la sécurité basée sur chaîne de la communauté seulement. Communauté chaîne est
vraiment juste un mot de passe texte clair (sans cryptage). Toutes les données envoyées
en texte clair sur un réseau sont vulnérables au reniflement et à l'interception des
paquets. Il existe deux types de chaînes de communauté dans SNMPv2c:

+ Lecture seule (RO): donne un accès en lecture seule aux objets MIB qui est plus sûr et
préféré à d'autres méthodes.
+ Lecture-écriture (RW): permet d'accéder en lecture et en écriture aux objets MIB.
Cette méthode permet au gestionnaire SNMP de modifier la configuration du routeur /
commutateur géré; faites donc attention à ce type.
La chaîne de communauté définie sur le Gestionnaire SNMP doit correspondre à l'une
des chaînes de communauté sur les Agents afin que le Gestionnaire accède aux Agents.
SNMPv3 fournit des améliorations significatives pour résoudre les faiblesses de sécurité
existant dans les versions antérieures. Le concept de chaîne communautaire n'existe pas
dans cette version. SNMPv3 fournit une communication beaucoup plus sécurisée en
utilisant des entités, des utilisateurs et des groupes. Ceci est réalisé en mettant en œuvre
trois nouvelles fonctionnalités majeures:
+ Intégrité du message: s'assurer qu'un paquet n'a pas été modifié en transit.

24
+ Authentification: en utilisant le hachage de mot de passe (basé sur les algorithmes
HMAC-MD5 ou HMAC-SHA) pour s'assurer que le message provient d'une source valide
sur le réseau.
+ Privacy (Cryptage): en utilisant le cryptage (cryptage DES 56-bit, par exemple) pour
chiffrer le contenu d'un paquet.
Remarque: Bien que SNMPv3 offre une meilleure sécurité, mais SNMPv2c est encore
plus courante. Cisco a pris en charge SNMPv3 dans leurs routeurs depuis IOS version
12.0.3T.

II.2 Message FLOW

Les messages SNMP sont utilisés pour communiquer entre le gestionnaire SNMP et les
agents. SNMPv1 prend en charge cinq messages SNMP de base:
+ SNMP GET
+ SNMP GET-NEXT
+ SNMP GET-RESPONSE
+ SNMP SET
+ SNMP TRAP
En général, les messages GET sont envoyés par le gestionnaire SNMP pour récupérer les
informations des agents SNMP tandis que les messages SET sont utilisés par le
gestionnaire SNMP pour modifier ou affecter la valeur aux agents SNMP.

Remarque: GET-NEXT récupère la valeur de l'objet suivant dans la MIB.

Le message GET-RESPONSE est utilisé par les agents SNMP pour répondre aux messages
GET et GET-NEXT.

Contrairement aux messages GET ou SET, les messages TRAP sont lancés à partir des
agents SNMP pour informer le gestionnaire SNMP de la survenance d'un événement. Par
exemple, supposons que vous souhaitez être alarmé lorsque l'utilisation du processeur
de votre serveur dépasse 80%. Mais il serait très ennuyeux si l'administrateur doit
utiliser activement le message GET pour vérifier l'utilisation du CPU de temps en temps.
Dans ce cas, le message TRAP est très approprié à cet effet car l'administrateur ne serait

25
informé que de la CPU elle-même lorsque cet événement se produit. La figure ci-dessous
montre la direction des messages SNMP:

Depuis SNMPv2c, deux nouveaux messages ont été ajoutés: INFORM et GETBULK.

INFORM: Un désavantage du message TRAP n'est pas fiable. SNMP communique via
UDP de sorte qu'il n'est pas fiable parce que lorsque les agents SNMP envoie TRAP
message au gestionnaire SNMP, il ne peut pas savoir si ses messages arrivent à SNMP
Manager. Pour modifier ce problème, un nouveau type de message, appelé INFORM,
a été introduit à partir de SNMPv2. Avec le message INFORM, le gestionnaire SNMP
peut maintenant reconnaître que le message a été reçu à sa fin avec une unité de
données de protocole de réponse SNMP (PDU). Si l'expéditeur ne reçoit jamais une
réponse, l'INFORM peut être renvoyé. Ainsi, les INFORM sont plus susceptibles
d'atteindre leur destination prévue.

GETBULK: L'opération GETBULK récupère efficacement de grands blocs de données,


telles que plusieurs lignes dans une table. GETBULK remplit un message de réponse
avec autant de données demandées qu'il convient.

Get : Message envoyé par le superviseur à l’agent pour obtenir des informations.
Set : Message envoyé par le superviseur à l’agent pour reconfigurer les agents
Get Bulk : Message envoyé par l’agent au superviseur pour l’informer d’une
situation.

Remarque: Il n'y a pas de nouveaux types de messages sur SNMPv3 par rapport à
SNMPv2c.

26
II.3. Configuration

Dans la dernière partie, nous allons passer par une configuration SNMP simple de
sorte que vous pouvez avoir un examen plus attentif à la façon SNMP fonctionne.
SNMPv2c est encore plus populaire que SNMPv3 donc nous allons configurer
SNMPv2c.
1. Configurer une chaîne de communauté
Router(config)#snmp-server community 9tut ro
Dans ce cas, notre chaîne de communauté nommée «9tut». Le ro représente la méthode
en lecture seule.
2. Configurer l'adresse IP d'un récepteur d'hôte (SNMP Manager) pour SNMPv2c
TRAP ou INFORM

Router(config)#snmp-server host 10.10.10.12 version 2c TRAPCOMM

"TRAPCOMM" est la chaîne de communauté pour TRAP.


3. Enable the SNMP Traps

Router(config)#snmp-server enable traps

Si nous ne voulons pas activer tous les messages d'interruption, nous pouvons spécifier
quels pièges nous voulons être avisés. Par exemple, si vous souhaitez uniquement
recevoir des traps sur le type de notification de lien vers le haut / bas, utilisez cette
commande à la place:

Router(config)#snmp-server enable traps link cisco

Bien sûr, nous devons configurer un gestionnaire SNMP sur un ordinateur avec ces
chaînes de communauté afin qu'elles puissent communiquer.

II.4. Avantages et inconvénients

II.4.1. SNMPv1

Avantages

· L'avantage majeur dans le fait d'utiliser SNMP est qu'il est de conception simple. Il
est donc aisé de l'implémenter sur un réseau, puisqu'il ne nécessite pas une longue
configuration et qu'il est de petite taille.

27
· Un autre atout de SNMP est qu'il est très répandu aujourd'hui. Presque tous les
grands constructeurs de matériel hardware inter-réseaux, tels que les
commutateurs ou les routeurs, implémentent le support SNMP dans leurs produits.
· L'expansion est un autre privilège de SNMP. De par sa simplicité de conception, il
est facile de mettre à jour le protocole pour qu'il réponde aux besoins des futurs
utilisateurs.
· Enfin, SNMP est basé sur le protocole de transport UDP, ce qui nécessite moins de
ressources et de connexions simultanées qu'avec TCP.

Inconvénients

La puissance de SNMP à administrer un réseau n'est plus à démontrer, mais il faut


avouer que ce protocole souffre de quelques défauts :

- A chaque réponse reçue correspond une requête. Le transfert de données à travers le


réseau s'avère donc assez important, ce qui surcharge ce dernier par rapport à ce
qu'il aurait été en cas de non administration.
- Ce protocole n'est pas très pratique pour ramener une grosse quantité de données
comme une table de routage par exemple.
- Les alarmes ne sont pas acquittées et un agent n'est jamais sûr de bien avoir averti sa
station d'administration.
- L'authentification reste très simple et donc non sécurisée. Le mot de passe et les
données de contrôle sont envoyés sans chiffrement sur le réseau.
- SNMP ne permet pas de "commander" un agent, cette manipulation ne peut se faire
qu'en modifiant une entrée de sa MIB.
- SNMP ne supporte pas la communication de station d'administration à station
d'administration. Il est donc impossible à une station d'administration de faire des
requêtes à un périphérique administré par une autre station en passant par son
intermédiaire.

II.4.2. SNMPv2

Devant le succès de SNMP, il a vite semblé nécessaire de développer un successeur


qui corrigerait ses nombreuses faiblesses, notamment en termes de sécurité.
Une version améliorée a été proposée sous le nom SNMPv2. Elle apporte des
mécanismes d'authentification et de chiffrement ainsi que des méthodes de consultation
des informations réseaux plus efficaces.

Domaine d'application

SNMPv2 est conçu pour faciliter la gestion de n'importe quelle ressource, pas
seulement de ressources réseaux. SNMPv2 peut donc être utilisé pour gérer des
applications, des systèmes et communiquer entre gestionnaires.
Grâce à l'ajout des fonctions de communication de gestionnaire, SNMPv2 peut être aussi
utilisé en gestion distribuée.

SNMPv2 propose un cadre concis et flexible pour décrire les informations en


promouvant l'extensibilité dans la définition de MIBs.

28
Taille, vitesse et efficacité

SNMPv2 reste "simple" pour permettre le développement de petites et rapides


implémentations. Le format des messages de type trap n'est plus différent des autres
messages afin de simplifier les routines d'interprétation des messages.

Le changement majeur dans cette catégorie est l'ajout de la commande get bulk pour
l'échange de grandes quantités d'informations. La commande get bulk est une requête
de plusieurs get next successifs. Auparavant, on était obligé de faire une succession de
get next pour lire une table, avec SNMPv2 une seule commande et réponse peuvent
maintenant suffire pour cela.

Sécurité et privautés

SNMPv2 permet de garantir l'authentification des messages et/ou le chiffrement des


messages. Ce système est très riche et permet de définir l'accès à chaque variable, le type
de sécurité et de protocole utilisé pour chaque transaction. Il est ainsi possible de
spécifier qui peut faire quelle opération sur quelle variable et avec quel degré de
sécurité : non sécurisé, authentifié ou chiffré.

Déploiement et compatibilité

SNMPv2 a été conçu pour être utilisé sur TCP/IP, OSI et d'autres architectures de
communication. SNMPv2 permet aussi de communiquer avec des plates-formes
supportant le protocole SNMPv1.

SNMPv2 va certainement compliquer l'image de la gestion réseau pour la plus part


des utilisateurs. Certaines personnes attendent que SNMPv2 devienne un standard,
d'autres veulent profiter immédiatement des avantages de SNMPv2 et enfin, comme
toujours, d'autres refusent radicalement tout changement ... en attendant OSI... Ceci
conduira tôt ou tard à des problèmes d'interopérabilité.

L'évolution de SNMPv1 vers SNMPv2 est une étape importante dans l'évolution de
SNMP. Le champ d'application couvert maintenant par SNMP s'est largement étendu.
Toutefois, il faut bien se rappeler que SNMP est un standard d'échange d'informations
de gestion. Ceci n'est qu'une partie du problème de la gestion réseau. En ce qui concerne
l'interface utilisateur, il reste encore beaucoup à faire. Il y a bien sur la présentation des
informations mais aussi leur interprétation.

Si SNMPv2 poursuit son évolution vers un protocole de gestion simple et performant,


il reste encore du chemin à parcourir avant de disposer de vrais outils de gestion réseau.

II.4.3. SNMPv3

Les améliorations de SNMPv3

Le contrôle d'accès pour les versions antérieures à SNMPv3 est approximatif et la


confidentialité inexistante. SNMPv3, quant à lui, résout le problème de la sécurité et de
la modularité. Les nouveautés apportées par SNMPv3 sont les suivantes :

29
Sécurité :
· Authentification et chiffrement.
· Autorisation et contrôle d'accès.
Administration :
· Nommage des entités.
· Gestion de la compatibilité.
· Destinations des notifications.
· Configuration à distance.

30
Administration des services réseaux

Université Djillali Liabès de Sidi Bel Abbes


Faculté de Génie Electrique
Département de Télécommunications
Master Académique 1
Spécialité : Télécommunications
Option : Réseaux & Télécommunications

TD N°2 - Services DNS


Exercice

1.1 Rappeler le rôle d’un serveur DNS.


1.2 On ouvre un navigateur Web à l’URL ci-dessous :
http://www.univ-sba.edu/rep/fichier.html
(a) Quels seront les protocoles de service utilisés par le navigateur ?
(b) Quels seront les messages échangés entre notre machine et les autres serveurs impliqués ?

1.3 On suppose que le serveur DNS interrogé par le navigateur est celui de la zone p22.dz, quels seront
alors les serveurs
DNS qui seront interrogés par le client en supposant qu’à chaque domaine correspond une zone
d’autorité ?

1.4 On suppose que le serveur DNS utilisé par la machine est en panne. Comment l’utilisateur peut-il
tout de même
récupérer le fichier de la question précédente ?

1.5 Soit l’extrait du fichier de zone de univ-sba.edu placé sur la machine dns.univ-sba.dz.

univ-sba.edu. NS dns
dns A 10.1.0.1
www A 10.1.0.2
mail A 10.1.0.3
max.etud A 10.2.0.100
anna.etud A 10.2.0.200

Ce fichier se trouve sur le serveur faisant autorité sur la zone univ-sba.edu qui contient les domaines
univ-sba.edu et etud.univ-sba.edu. Il contient principalement les adresses IP des machines de cette zone.
Chaque ligne de ce fichier contient un enregistrement ayant la forme suivante :

<nom> <type > < v a l e u r >

Le nom identifie une machine ou un domaine. Il peut être absolu (terminé par un point) ou relatif (par
rapport au nom de la zone). Plusieurs enregistrements peuvent être associés à un nom. On les différencie
par un type. La valeur de l’enregistrement dépend alors du type. Dans notre exemple il n’y a que deux
types : A pour définir une adresse IP et NS (Name Server) pour définir un serveur DNS d’une zone.

(a) Quels sont les noms complets des machines dans la zone univ-sba.dz dont le serveur connaît
les adresses IP ?

1
Administration des services réseaux

(b) On souhaite que le domaine etud.univ-sba.edu soit délégué à un autre serveur DNS, appelé
dns.etud.univ-sba.edu et d’adresse IP 10.2.0.1. Autrement dit, on souhaite découper la zone univ-
sba.edu et créer une sous-zone etud.univ-sba.edu. Comment doit-on procéder ?
(c) Quel sera alors la réponse du serveur dns.univ-sba.edu si on l’interroge sur la machine
anna.etud.univ-sba.edu ?