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 |
3.1.2. Tests de l'agent SNMP NET-SNMPLe 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. |
|