WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception, Implémentation d'une Base de Données pour la Gestion d'un Organisme et Administration Réseau à distance sur base des outils libres "Cas de Projet Limete Université Cardinal Malula"

( Télécharger le fichier original )
par Blaise LUSIKILA LUAMBASU
Ecole supérieure des métiers de l'informatique et du commerce (ESMICOM) - Licence 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

3.1.2. Tests de l'agent SNMP NET-SNMP

Le test de l'agent SNMP NET-SNMP se fait en utilisant un manager SNMP. Dans le cas du package NET-SNMP, on a accès à des commandes en ligne sous /usr/local/bin permettant d'émettre des requêtes SNMP.

Il convient d'abord de configurer son environnement Linux. Pour accéder aux objets de la MIB d'un agent sous forme symbolique et non sous forme décimale OID, il faut aller lire l'ensemble des fichiers MIB sous /usr/local/share/snmp/mibs :

#

# PATH

#

PATH=$PATH:/usr/local/bin:/usr/local/sbin

#

# MIBS : forces to read all MIB files under /usr/local/share/snmp/mibs

#

MIBS=ALL

#

# exporting all variables

#

export PATH MIBS

 Les principales commandes utiles notées globalement snmpxxx sont :

· snmpget : envoi d'une requête SNMP GET pour obtenir une information sur un objet de la MIB d'un agent SNMP distant.

· snmpset : envoi d'une requête SNMP SET pour mettre à jour la valeur d'un objet de la MIB d'un agent SNMP distant.

· snmpgetnext : envoi d'une requête SNMP GETNEXT et donne aussi la valeur de l'objet suivant de la MIB d'un agent SNMP distant si toutefois il en existe un.

· snmpwalk : cette commande fonctionne comme snmpgetnext mais permet de balayer complètement une branche de la MIB d'un agent SNMP distant.

· snmptranslate : permet de convertir un objet d'une MIB représenté sous sa forme décimale OID en sa forme symbolique et réciproquement.

L'utilitaire snmpconf permet de créer le fichier snmp.conf de façon interactive et conviviale sans en connaître sa structure pour configurer par défaut l'usage des commandes snmpxxx précédentes (choix de la version du protocole SNMP par défaut, communauté...). Le fichier ainsi créé sera à recopier sous /usr/local/share/snmp.

Une fois l'agent SNMP lancé sur sa machine comme précédemment, il est ensuite possible de le tester avec les commandes snmpxxx.

Correspondance OID et nom symbolique :

# snmptranslate 1.3.6.1.2.1.1.3.0

SNMPv2-MIB::sysUpTime.0

Représentation sous forme graphique de la branche system de la MIB par analyse de l'ensemble des fichiers MIB sous /usr/local/share/snmp/mibs  :

# snmptranslate -Tp -IR system

+--system(1)

|

+-- -R-- String sysDescr(1)

| Textual Convention: DisplayString

| Size: 0..255

. . .

 Récupération par SNMPv1  de la valeur courante de l'objet sysUpTime géré par l'agent SNMP de la machine localhost :

# snmpget -v 1 -c tst localhost system.sysUpTime.0

SNMPv2-MIB::sysUpTime.0 = Timeticks: (12908) 0:02:09.08

Récupération de la valeur courante de l'objet sysUpTime avec SNMPv2c :

# snmpget -v 2c -c tst localhost system.sysUpTime.0

SNMPv2-MIB::sysUpTime.0 = Timeticks: (13966) 0:02:19.66

Récupération de la valeur courante des objets sysLocation et sysContact (renseignés dans le fichier snmpd.conf)  :

# snmpget -v 1 -c tst localhost system.sysLocation.0

SNMPv2-MIB::sysLocation.0 = STRING: ENSEIRB, Bordeaux, France

# snmpget -v 1 -c tst localhost system.sysContact.0

SNMPv2-MIB::sysContact.0 = STRING: lusikila <blaise_apakumu@yahoo.fr>

Parcours de la branche system de la MIB de l'agent SNMP :

# snmpwalk -v 1 -c tst localhost system

SNMPv2-MIB::sysDescr.0 = STRING: Linux poire1 2.4.18-3 #1 Thu Apr 18 07:31:07 EDT 2002 i586

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs

SNMPv2-MIB::sysUpTime.0 = Timeticks: (28119) 0:04:41.19

SNMPv2-MIB::sysContact.0 = STRING: lusikila <blaise_apakumu@yahoo.fr>

SNMPv2-MIB::sysName.0 = STRING: poire1

SNMPv2-MIB::sysLocation.0 = STRING: ENSEIRB, Bordeaux, France

. . .

Affection d'une nouvelle valeur à l'objet sysLocation de la MIB de l'agent avec SNMPv1 :

# snmpset -v 1 -c tst localhost system.sysLocation.0 s "coucou"

Error in packet.

Reason: (noSuchName) There is no such variable name in this MIB.

Failed object: SNMPv2-MIB::sysLocation.0

Affection d'une nouvelle valeur à l'objet sysLocation.0 de la MIB de l'agent avec SNMPv2c :

# snmpset -v 2c -c tst localhost system.sysLocation.0 s "coucou"

Error in packet.

Reason: notWritable (that object does not support modification)

Failed object: SNMPv2-MIB::sysLocation.0

En comparant le résultat des 2 dernières commandes, on voit que SNMPv1 ne définit pas en retour de code d'erreur, ce que corrige SNMPv2c. Dans notre cas, on essaye de modifier un objet de la MIB de l'agent SNMP distant accessible en lecture seulement !

La trace tcpdump générée par l'exécution de la commande :

# snmpget -v 1 -c tst localhost sysUpTime.0

est la suivante :

# tcpdump -vv -i lo

tcpdump: listening on lo

15:17:54.733310 poire1.1092 > poire1.snmp: [udp sum ok] |30|26|02|01{ SNMPv1 |04|03C=tst |a0|1c{ GetRequest(28) |02|04R=691700679 |02|01|02|01|30|0e |30|0c|06|08system.sysUpTime.0|05|00} } (DF) (ttl 64, id 0, len 68)

15:17:54.734564 poire1.snmp > poire1.1092: [udp sum ok] |30|29|02|01{ SNMPv1 |04|03C=tst |a2|1f{ GetResponse(31) |02|04R=691700679 |02|01|02|01|30|11 |30|0f|06|08system.sysUpTime.0=|43|03127125} } (DF) (ttl 64, id 0, len 71)

On voit que la communauté (ici tst) qu'il faut considérer comme un mot de passe circule en clair sur le réseau avec SNMPv1 !

Il est à noter que l'on peut aussi générer des TRAPs SNMP en direction d'un manager SNMP d'une machine en utilisant la commande snmptrap. Le démon snmptrapd (sous /usr/local/sbin) peut être utilisé comme collecteur pour traiter les TRAPs SNMP. Il utilise le fichier de configuration snmptrapd.conf à recopier sous /usr/local/share/snmp. Ce fichier de configuration peut être généré en utilisant l'outil snmpconf comme précédemment. On verra l'utilisation des TRAPs SNMP lors du contrôle à distance par SNMP d'un système électronique.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Piètre disciple, qui ne surpasse pas son maitre !"   Léonard de Vinci