Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
snmp [Le 15/05/2017, 15:18]
81.27.20.123 [Configuration]
snmp [Le 02/03/2023, 14:17] (Version actuelle)
217.114.205.206 [Installation]
Ligne 3: Ligne 3:
 ---- ----
  
-====== SNMP ou la supervision d'​équipements réseaux ======+====== SNMP (Simple Network Management Protocol) ​ou la supervision d'​équipements réseaux ======
  
 ===== Introduction ===== ===== Introduction =====
  
-==== Qu'est ce que le SNMP ? ====+==== Qu'est-ce que le SNMP ? ====
  
 Le **SNMP** est un protocole qui permet aux administrateurs réseaux de gérer les équipements et de diagnostiquer les problèmes. Le sigle SNMP signifie //Simple Network Management Protocol// et la plupart des switchs, UPS, pare-feux matériels, routeurs, etc. comprennent ce protocole pour les diagnostics. Le **SNMP** est un protocole qui permet aux administrateurs réseaux de gérer les équipements et de diagnostiquer les problèmes. Le sigle SNMP signifie //Simple Network Management Protocol// et la plupart des switchs, UPS, pare-feux matériels, routeurs, etc. comprennent ce protocole pour les diagnostics.
Ligne 13: Ligne 13:
 <note tip>​Quand on dit « la plupart », on parle du matériel que l'on retrouve en entreprise ; pas forcément le routeur fourni par votre fournisseur d'​accès Internet. Pour savoir si votre matériel est compatible avec le SNMP, veuillez consulter les spécifications techniques livrées avec l'​appareil.</​note>​ <note tip>​Quand on dit « la plupart », on parle du matériel que l'on retrouve en entreprise ; pas forcément le routeur fourni par votre fournisseur d'​accès Internet. Pour savoir si votre matériel est compatible avec le SNMP, veuillez consulter les spécifications techniques livrées avec l'​appareil.</​note>​
  
-Le protocole SNMP est un standard défini par l'IETF dans la [[http://​www.ietf.org/​rfc/​rfc1157.txt|RFC 1157]] (mai 1990). Le SNMP est souvent vu comme quelque chose de compliqué et d'​assez confus. Les API permettant d'​interagir avec le protocole englobent tellement de choses qu'au final, on ne s'y retrouve plus. Les livres et la documentation disponibles sur le sujet ont tendance à compliquer les choses et à ne pas les démystifier. C'est ce que je vais essayer de faire dans cet article.+Le protocole SNMP est un standard défini par l'IETF dans la [[https://​www.ietf.org/​rfc/​rfc1157.txt|RFC 1157]] (mai 1990). Le SNMP est souvent vu comme quelque chose de compliqué et d'​assez confus. Les API permettant d'​interagir avec le protocole englobent tellement de choses qu'au final, on ne s'y retrouve plus. Les livres et la documentation disponibles sur le sujet ont tendance à compliquer les choses et à ne pas les démystifier. C'est ce que je vais essayer de faire dans cet article.
  
 ==== Généralités et vocabulaire ==== ==== Généralités et vocabulaire ====
  
-Le protocole SNMP est relativement simple… une fois qu'on a compris. Voyons comment se compose un ensemble d'​éléments communiquant //via// SNMP.+Le protocole SNMP (Simple Network Management Protocol) ​est relativement simple… une fois qu'on a compris. Voyons comment se compose un ensemble d'​éléments communiquant //via// SNMP.
  
-Un périphérique réseau (routeur, switch, pare-feu…) fait tourner un //agent SNMP// qui est en fait un processus //dæmon// qui répond aux requêtes du réseau. L'​**agent SNMP** fournit un grand nombre d'​**identifiant d'​objets** (//Object Identifiers//​ ou **OID**). Un **OID** est une paire clé-valeur unique. L'​**agent SNMP** remplit ces valeurs et fait en sorte qu'​elles soient disponibles. Un **manager SNMP** (ou **Serveur SNMP**) peut effectuer des requêtes aux agents avec ces paires clé-valeur à propos d'​informations spécifiques. Les **OID SNMP** peuvent être lus ou écrits.+Un périphérique réseau (routeur, switch, pare-feu…) fait tourner un //agent SNMP// qui est en fait un processus //daemon// qui répond aux requêtes du réseau. L'​**agent SNMP** fournit un grand nombre d'​**identifiant d'​objets** (//Object Identifiers//​ ou **OID**). Un **OID** est une paire clé-valeur unique. L'​**agent SNMP** remplit ces valeurs et fait en sorte qu'​elles soient disponibles. Un **manager SNMP** (ou **Serveur SNMP**) peut effectuer des requêtes aux agents avec ces paires clé-valeur à propos d'​informations spécifiques. Les **OID SNMP** peuvent être lus ou écrits.
  
-Notons qu'il est rare d'​écrire des informations sur un périphérique SNMP. Le SNMP est surtout utilisé par de nombreuses applications de management pour contrôler l'​état des périphériques réseaux (comme une interface graphique administrative pour les switches). Un système d'​authentification basique existe dans le SNMP ; il permet au manager d'​envoyer un //community name// (qui est en fait un mot de passe en clair) pour autoriser la lecture ou l'​écriture des OID. La plupart des périphériques utilisent le //community name// non sécurisé « public ». Les communications SNMP se font //via// les ports UDP 161 et 162.+Notons qu'il est rare d'​écrire des informations sur un périphérique SNMP. Le SNMP est surtout utilisé par de nombreuses applications de management pour contrôler l'​état des périphériques réseaux (comme une interface graphique administrative pour les switchs). Un système d'​authentification basique existe dans le SNMP ; il permet au manager d'​envoyer un //community name// (qui est en fait un mot de passe en clair) pour autoriser la lecture ou l'​écriture des OID. La plupart des périphériques utilisent le //community name// non sécurisé « public ». Les communications SNMP se font //via// les ports UDP 161 et 162.
  
  
Ligne 48: Ligne 48:
   * SNMP v3 (RFC 3411 à 3418).   * SNMP v3 (RFC 3411 à 3418).
  
-La co-existence ​des trois versions est détaillée dans la RFC 3584. +La coexistence ​des trois versions est détaillée dans la RFC 3584.
  
  
Ligne 57: Ligne 57:
 Pour installer le paquet client SNMP, [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] [[apt>​snmpd]]. Pour installer le paquet client SNMP, [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] [[apt>​snmpd]].
  
 +[[https://​thejoyofstick.com/​blog/​2019/​05/​28/​installing-snmp-mib-files-in-linux-ubuntu-12-04-lts/​|A partir d'​Ubuntu 12.04, il faut aussi installer les MIBs]] en [[:​tutoriel:​comment_installer_un_paquet|installant le paquet]] [[apt>​snmp-mibs-downloader]]
 +et charger les MIBs en commentant la ligne **mibs :** dans le fichier **/​etc/​snmp/​snmp.conf** :
 +<​code>​
 +grep ^mibs /​etc/​snmp/​snmp.conf -q && sudo sed -i '​s/​\(^mibs.*$\)/#​\1/'​ /​etc/​snmp/​snmp.conf
 +</​code>​
  
 ===== Configuration ===== ===== Configuration =====
Ligne 123: Ligne 128:
 </​code>​ </​code>​
  
-==== Gestion des MIBs ====+==== Gestion des MIBs avec tkmib ====
 Pour visualiser les MIBs nous allons installer [[apt://​tkmib]]. Pour le lancement il vous suffit de taper la [[:​commande_shell|commande]] : Pour visualiser les MIBs nous allons installer [[apt://​tkmib]]. Pour le lancement il vous suffit de taper la [[:​commande_shell|commande]] :
   tkmib   tkmib
Ligne 148: Ligne 153:
   mibs +DISMAN-EVENT-MIB   mibs +DISMAN-EVENT-MIB
  
 +==== Gestion des MIBs avec SNMPb ====
  
 +Voir [[https://​blog.cedrictemple.net/​257-snmpb-faire-des-requetes-snmp-avec-un-outil-graphique/​|https://​blog.cedrictemple.net/​257-snmpb-faire-des-requetes-snmp-avec-un-outil-graphique/​]]
 ===== Utilisation ===== ===== Utilisation =====
  
-Pour une utilisation de base du SNMP, vous avez besoin de 2 commandes principales : +Pour une utilisation de base du SNMP, vous avez besoin de 2 commandes principales :
   * ''​snmpwalk''​ : pour sortir des informations par lots.   * ''​snmpwalk''​ : pour sortir des informations par lots.
   * ''​snmpget''​ : pour obtenir une information sur un OID précis.   * ''​snmpget''​ : pour obtenir une information sur un OID précis.
Ligne 168: Ligne 175:
   * ''​192.168.0.232''​ : indique l'​adresse IP du périphérique.   * ''​192.168.0.232''​ : indique l'​adresse IP du périphérique.
  
-Une telle commande retourne quelque chose de similaire à ce qui suit : +Une telle commande retourne quelque chose de similaire à ce qui suit :
 <​code>​ <​code>​
 SNMPv2-MIB::​sysDescr.0 = STRING: 3Com SuperStack 3 SNMPv2-MIB::​sysDescr.0 = STRING: 3Com SuperStack 3
Ligne 191: Ligne 198:
 </​code>​ </​code>​
  
-Cette liste peut être très longue et dépend du périphérique supervisé. Vous constatez que les informations sont classées par MIB suivi du OID. +Cette liste peut être très longue et dépend du périphérique supervisé. Vous constatez que les informations sont classées par MIB suivi du OID.
  
 Dans l'​exemple ci-dessus, nous avons « ''​IF-MIB::​ifOperStatus.117 = INTEGER: down(2)''​ ». Ce qui signifie que l'OID « ''​ifOperStatus.117''​ » (qui correspond à l'​état du port 17 du switch) est repris dans la MIB « ''​IF-MIB''​ » (qui est une MIB standard). Cet OID (clé) est associé à une valeur entière (type ''​INTEGER''​) qui vaut 2 (qui indique que l'​état est ''​down''​). Dans l'​exemple ci-dessus, nous avons « ''​IF-MIB::​ifOperStatus.117 = INTEGER: down(2)''​ ». Ce qui signifie que l'OID « ''​ifOperStatus.117''​ » (qui correspond à l'​état du port 17 du switch) est repris dans la MIB « ''​IF-MIB''​ » (qui est une MIB standard). Cet OID (clé) est associé à une valeur entière (type ''​INTEGER''​) qui vaut 2 (qui indique que l'​état est ''​down''​).
Ligne 203: Ligne 210:
 ==== snmpget ==== ==== snmpget ====
  
-Si vous avez compris ​le principe de ''​snmpwalk'',​ vous comprendrez très rapidement comment fonctionne le ''​snmpget''​. L'​application ''​snmpget''​ permet d'​obtenir l'​information concernant un OID précis. Reprenons notre exemple, imaginons que nous voulons connaître uniquement l'​état du port 22 du switch, il nous suffit d'​entrer la commande suivante :+Si vous avez compris ​ ''​snmpwalk'',​ vous comprendrez très rapidement comment fonctionne le ''​snmpget''​. L'​application ''​snmpget''​ permet d'​obtenir l'​information concernant un OID précis. Reprenons notre exemple, imaginons que nous voulons connaître uniquement l'​état du port 22 du switch, il nous suffit d'​entrer la commande suivante :
  
   snmpget -v1 -c private 192.168.0.232 IF-MIB::​ifOperStatus.122   snmpget -v1 -c private 192.168.0.232 IF-MIB::​ifOperStatus.122
Ligne 216: Ligne 223:
  
  
-===== Note(s) ​=====+===== Note·s ​=====
  
 La gestion des //traps// se fait avec le serveur SNMP et fera l'​objet d'un autre article. La gestion des //traps// se fait avec le serveur SNMP et fera l'​objet d'un autre article.
Ligne 225: Ligne 232:
  
 //​Contributeurs : [[utilisateurs:​ostaquet|ostaquet]],​ [[utilisateurs:​sefran|Franc SERRES]], [[utilisateurs:​Yannis.B|Yannis BRISOT]], [[utilisateurs:​HacKurx|HacKurx]].//​ //​Contributeurs : [[utilisateurs:​ostaquet|ostaquet]],​ [[utilisateurs:​sefran|Franc SERRES]], [[utilisateurs:​Yannis.B|Yannis BRISOT]], [[utilisateurs:​HacKurx|HacKurx]].//​
 +
  • snmp.1494854294.txt.gz
  • Dernière modification: Le 15/05/2017, 15:18
  • par 81.27.20.123