Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
snmp [Le 04/03/2019, 13:33] febcrash [Gestion des MIBs] |
snmp [Le 02/03/2023, 14:17] (Version actuelle) 217.114.205.206 [Installation] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== 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(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. | + | 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 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 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]].// | ||
+ |