PDA

View Full Version : Fiche d'identité (info SNMP)


DJ TonTon
26th January 2007, 16:44
Bonjour,

J'ai installé Oreon 1.3.3 sur une distribution Debian Sarge. Mes premiers tests s'effectuent sur un parc très restreint. J'ai activé le service SNMP sur 2 postes Windows XP Pro, 1 poste XP Familial et 1 Linux (celui du serveur oreon).

Lorsque je sélectionne les mises à jour manuelles des fiches d'identités, mes postes apparaissent bien. Mon soucis c'est que les informations SNMP ne sont pas les mêmes pour tous les postes! Par exemple pour le poste XP Familial toutes les catégories s'affichent mais pour les postes XP j'ai seulement accès à quelques catégories. Idem pour le poste Linux. Mes configurations du service SNMP sont les mêmes sur les 3 XP (rapide et pas très complet...) alors comment se fait-il que les descriptions changent d'un poste à l'autre ? J'ai également appliqué les mêmes configurations pour tous les hôtes dans Oreon.

Ce n'est pas grand chose, mais c'est une de mes grandes questions qui me font cogiter :). Merci.

xspoon
26th January 2007, 17:39
as tu essayé de relancer plusieur fois la mise à jour des informations ?

sinon dans la config des agents snmp windows il faut cocher toutes les cases (physique, application etc)
sur linux, dans snmpd.conf il faut chercher du coté de la definition des accès snmp avec la 'view' all, quelque chose comme ça:

access MyROGroup "" any noauth exact all none none

DJ TonTon
26th January 2007, 17:52
- J'ai relancé régulièrement la MAJ des informations, toujours pareil
- Toutes les cases sont cochées dans les paramètres du service SNMP de Windows
- Sous Linux, dans la configuration de snmpd.conf, la valeur MyROGroup possède les mêmes attributs qu'énoncés dans ta réponse

Merci pour ton aide.

surcouf
26th January 2007, 18:44
Bonjour,

J'ai installé Oreon 1.3.3 sur une distribution Debian Sarge. Mes premiers tests s'effectuent sur un parc très restreint. J'ai activé le service SNMP sur 2 postes Windows XP Pro, 1 poste XP Familial et 1 Linux (celui du serveur oreon).

Lorsque je sélectionne les mises à jour manuelles des fiches d'identités, mes postes apparaissent bien. Mon soucis c'est que les informations SNMP ne sont pas les mêmes pour tous les postes! Par exemple pour le poste XP Familial toutes les catégories s'affichent mais pour les postes XP j'ai seulement accès à quelques catégories. Idem pour le poste Linux. Mes configurations du service SNMP sont les mêmes sur les 3 XP (rapide et pas très complet...) alors comment se fait-il que les descriptions changent d'un poste à l'autre ? J'ai également appliqué les mêmes configurations pour tous les hôtes dans Oreon.

Pourrais-tu être plus précis ?

surcouf
26th January 2007, 18:46
- J'ai relancé régulièrement la MAJ des informations, toujours pareil
- Toutes les cases sont cochées dans les paramètres du service SNMP de Windows
- Sous Linux, dans la configuration de snmpd.conf, la valeur MyROGroup possède les mêmes attributs qu'énoncés dans ta réponse

Merci pour ton aide.

Je ne sais pas quels sont les OID que recherche la fiche d'identité, cependant, peux-tu exécuter la commande snmpwalk suivante avec chacun de tes systèmes ?

$ snmpwalk -v 1 -c public <adresse IP/nom d'hôte> system

DJ TonTon
29th January 2007, 11:15
Bonjour,

Voici le résultat pour chaque système de la commande snmpwalk citée ci-dessus :



Serveur Linux Debian Sarge (OREON) (192.168.1.15)
--------------------------------------------------

SNMPv2-MIB::sysDescr.0 = STRING: Linux oreon 2.6.8-2-386 #1 Thu May 19 17:40:50 JST 2005 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (383341) 1:03:53.41
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)
SNMPv2-MIB::sysName.0 = STRING: oreon
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (configure /etc/snmp/snmpd.local.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (3) 0:00:00.03
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (5) 0:00:00.05
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (6) 0:00:00.06
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (6) 0:00:00.06
End of MIB


XP Familial (192.168.1.101)
--------------------------

SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 79 Stepping 2 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (225851) 0:37:38.51
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: JCV
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 79


XP Pro 1 (192.168.1.10)
-----------------------

SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 6 Model 8 Stepping 10 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (162360) 0:27:03.60
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: COMMERCIAL-1
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 79


XP Pro 2 (192.168.1.102)
------------------------

SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 79 Stepping 2 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free)
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (168640) 0:28:06.40
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: JEREMY
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 79



J'avoue que je n'y comprends pas grand chose, la syntaxe pour le XP Familial, le XP Pro 1 et le XP Pro 2 est la même... Pourtant le XP Pro 1 ne possède pas toutes les entrées. Ah si petite question, est-ce normal que tous mes postes, excepté ce XP Pro 1 qui est dans "Equipements Réseaux" (pour moi c'est logique...), se retrouvent dans la catégorie "Serveurs" ?

Merci.

surcouf
29th January 2007, 11:37
Bonjour,

J'ai installé Oreon 1.3.3 sur une distribution Debian Sarge. Mes premiers tests s'effectuent sur un parc très restreint. J'ai activé le service SNMP sur 2 postes Windows XP Pro, 1 poste XP Familial et 1 Linux (celui du serveur oreon).

Lorsque je sélectionne les mises à jour manuelles des fiches d'identités, mes postes apparaissent bien. Mon soucis c'est que les informations SNMP ne sont pas les mêmes pour tous les postes! Par exemple pour le poste XP Familial toutes les catégories s'affichent mais pour les postes XP j'ai seulement accès à quelques catégories. Idem pour le poste Linux. Mes configurations du service SNMP sont les mêmes sur les 3 XP (rapide et pas très complet...) alors comment se fait-il que les descriptions changent d'un poste à l'autre ? J'ai également appliqué les mêmes configurations pour tous les hôtes dans Oreon.

Voici le résultat pour chaque système de la commande snmpwalk citée ci-dessus :

...

J'avoue que je n'y comprends pas grand chose, la syntaxe pour le XP Familial, le XP Pro 1 et le XP Pro 2 est la même... Pourtant le XP Pro 1 ne possède pas toutes les entrées. Ah si petite question, est-ce normal que tous mes postes, excepté ce XP Pro 1 qui est dans "Equipements Réseaux" (pour moi c'est logique...), se retrouvent dans la catégorie "Serveurs" ?

J'avoue ne pas bien connaître les dernières versions d'Oreon, faute de temps mais quelles sont les informations qui diffèrent entre tes différents serveurs, au niveau de la fiche d'identité (avec capture d'écran à l'appui, si nécessaire) ?

DJ TonTon
29th January 2007, 13:04
J'ai mis en pièce jointe 3 captures d'écran.

Sur le menu à droite on voit les différentes catégories (Serveurs, Equipements Réseaux...). La première capture représente le contenu de la catégorie "Serveurs", la seconde représente toutes les catagories (que j'ai avec 2 postes XP, un Pro et un familial) et la troisième représente le seul poste qui est en "Equipements Réseaux" et dont le nombre de menus est depouillé par rapport aux autres postes. Et je ne trouve pas ca normal que les 2 postes XP soient dans la catégorie "Serveurs". J'espère que mes indications ont été asser claires.

surcouf
29th January 2007, 15:26
J'ai mis en pièce jointe 3 captures d'écran.

Sur le menu à droite on voit les différentes catégories (Serveurs, Equipements Réseaux...). La première capture représente le contenu de la catégorie "Serveurs", la seconde représente toutes les catagories (que j'ai avec 2 postes XP, un Pro et un familial) et la troisième représente le seul poste qui est en "Equipements Réseaux" et dont le nombre de menus est depouillé par rapport aux autres postes. Et je ne trouve pas ca normal que les 2 postes XP soient dans la catégorie "Serveurs". J'espère que mes indications ont été asser claires.

Je comprends mieux tes interrogations mais je ne suis malheureusement pas en mesure de te dire comment Oreon a classé les différents ordinateurs.
Il n'est pas normal que le dernier soit classé comme "Equipement réseaux".
Je regarderais dans le code si je trouve quelque chose de probant mais ce serait mieux si l'un des développeurs pouvaient nous répondre sur ce point.
Pour autant, il faudra sans doute t'armer de patience car, cette semaine, le salon Solutions Linux battra son plein.

DonKiShoot
29th January 2007, 15:55
Oreon classe en fonction de l'adresse mac mais je ne sais pas comment ils sont arrivé à cette technique :confused:

julien60
29th January 2007, 16:07
Bizarre la façon dont c'est classé! Je me suis pausé la même question lorsque j'ai découvert les fiches d'identités. Le mieux serait, comme je l'ai proposé dans un topic dans le forum suggestions, de choisir le type de matériel lors de l'ajout d'un host, qui pourrait donc être exploité par ces fiches d'identités.
J'arrête avec mes idées après on va me trouver lourd ^^

surcouf
29th January 2007, 16:34
Oreon classe en fonction de l'adresse mac mais je ne sais pas comment ils sont arrivé à cette technique :confused:

Ce serait mieux de classer, puisqu'ils font visiblement un grand usage de SNMP, en fonction d'une combinaison des OIDs sysObjectOID, sysDescr et sysServices définis par SNMPv2-MIB[1].
Le dernier, notamment employé par le projet Netdisco[2], correspond précisément au but recherché mais certains agents SNMP (par exemple, pour Net-SNMP par défaut. Il faut le lui préciser à l'aide d'une directive de configuration sinon cette valeur est nulle) le renseignent mal. Généralement, il faudrait que Net-SNMP indique un chiffre tel que 76 ou 79. Cependant, il indique mieux le niveau (layer) de services TCP/IP que l'hôte est capable de fournir.
Pour la petite note, le sysService de l'agent SNMP de Windows varie d'ailleurs en fonction des options que vous activez ou pas (les noms des niveaux rappellent ceux des options).

sysServices OBJECT-TYPE
SYNTAX INTEGER (0..127)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A value which indicates the set of services that this
entity may potentially offer. The value is a sum.

This sum initially takes the value zero. Then, for
each layer, L, in the range 1 through 7, that this node
performs transactions for, 2 raised to (L - 1) is added
to the sum. For example, a node which performs only
routing functions would have a value of 4 (2^(3-1)).
In contrast, a node which is a host offering application
services would have a value of 72 (2^(4-1) + 2^(7-1)).
Note that in the context of the Internet suite of
protocols, values should be calculated accordingly:

layer functionality
1 physical (e.g., repeaters)
2 datalink/subnetwork (e.g., bridges)
3 internet (e.g., supports the IP)
4 end-to-end (e.g., supports the TCP)
7 applications (e.g., supports the SMTP)

For systems including OSI protocols, layers 5 and 6
may also be counted."
::= { system 7 }

C'est pourquoi le développeur de cet outil se base aussi sur sysDescr et sysObjectID (de même, Net-SNMP sous Solaris renseigne mal celui-ci là où il le fait très bien sous Linux...) pour mieux identifier l'équipement.

Là où sysDescr est une chaîne libre laissée au bon usage de l'éditeur de l'agent (donc, seule l'expérience permet de savoir à quoi s'attendre...), sysObjectID permet de savoir à quel éditeur (ou entreprises) nous avons affaire. En effet, il s'agit d'un pointeur vers l'OID correspondant précisément à une branche l'arborescence de l'entreprise.
Si l'on reprend les exemples qu'à donné "DJ TonTon", voici ce que ça donne :

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

Etant donné que la MIB est disponible par défaut, l'OID correspondant est pratiquement traduit par snmpwalk. En fait, il s'agit encore d'une référence à un autre OID qui renvoie à un autre puis un autre et finalement, c'est un OID de NET-SNMP-TC[4] : l'OID 10 correspond à "linux". Comme Net-SNMP est un projet porté sur de nombreuses plate-formes, il existe au moins 17 possibilités.
Le sysDescr nous permet de connaître seulement la version du noyau (ce qui est déjà pas mal car avec de l'expérience, on reconnait facilement Debian sarge) et non pas directement la distribution utilisée.

SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.1

La MIB correpondante n'est pas disponible ou pas active mais avec l'expérience, on reconnait vite le 311, l'OID entreprise de Microsoft.
Je vous aide, c'est WINDOWS-NT-PERFORMANCE::winnt[3]. Là, il ne s'agit que d'un identifiant mais cela permet de connaître la famille du système.
L'OID sysDescr nous en apprendra davantage :

SNMPv2-MIB::sysDescr.0 = STRING: Hardware: x86 Family 15 Model 79 Stepping 2 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free)

Là aussi, question d'expérience, il ne s'agit pas de Windows 2000 mais de Windows XP car la version du premier est la 5.0 et non la 5.1.

J'espère que cette énième leçon sur SNMP vous aura permis d'apprécier toute la dimension de ce protocole "simple". Le protocole l'est (4 ou 5 requêtes max.) mais les informations rendues disponibles rendent l'approche plus complexe.


[1]: http://www.oidview.com/mibs/0/SNMPv2-MIB.html http://net-snmp.sourceforge.net/docs/mibs/SNMPv2-MIB.txt
[2]: http://www.netdisco.net/
[3]: http://www.oidview.com/mibs/311/WINDOWS-NT-PERFORMANCE.html
[4]: http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-TC.txt

DonKiShoot
30th January 2007, 12:25
Rien à ajouter ! J'adore !!!

J'ai bien compris que ce n'était pas simple de reconnaitre un OS, donc une plateforme en utilisant le snmp.

En synthétisant, comment procéder logiciellement (avec quelles requêtes snmp ?) pour distinguer un linux d'un windows d'un cisco ou d'un hp puis encore mieux un dell d'un compaq, un PIX d'un catalyst d'un procurve ou d'un routeur ?

Si il n'y a qu'un fichier ou une table mysql à remplir avec les quelques infos qu'on ne peut pas deviner, je me ferais un plaisir de la remplir en fonction du materiel que j'ai dans ma société.

surcouf
30th January 2007, 14:42
Rien à ajouter ! J'adore !!!

J'ai bien compris que ce n'était pas simple de reconnaitre un OS, donc une plateforme en utilisant le snmp.

Oui mais je vais tempérer ma démonstration : l'usage de l'adresse MAC pour déterminer le constructeur de l'équipement réseau (Attention : dans le cas d'un PC, il s'agit généralement du constructeur de la carte réseau !) n'a rien de saugrenue. En effet, en faisant une petite recherche sur Google, on peut trouver sur des sites[1][2] de recherche de constructeurs ("Vendor") à partir d'une adresse MAC et vice-versa ou encore des listes[3][4] forcément non-exhaustives.
Il ne faut pas non plus perdre du vue que les adresses MAC sont facilement falsifiables, notamment pour les systèmes d'exploitation (Solaris génère lui-même une adresse MAC sans rapport direct avec la carte, par exemple) et que les protocoles usuels pour les obtenir (ARP et RARP) restent, à moins que les routeurs ne soient configurés pour les diffuser, limités au réseau local. Tout ceci limite donc grandement l'efficacité de cette méthode. Comme je l'ai présenté ci-dessus avec SNMP, les méthodes rencontrent toutes des limites, si bien qu'il convient de les additionner pour avoir de meilleures chances.

En synthétisant, comment procéder logiciellement (avec quelles requêtes snmp ?) pour distinguer un linux d'un windows d'un cisco ou d'un hp puis encore mieux un dell d'un compaq, un PIX d'un catalyst d'un procurve ou d'un routeur ?

Si il n'y a qu'un fichier ou une table mysql à remplir avec les quelques infos qu'on ne peut pas deviner, je me ferais un plaisir de la remplir en fonction du materiel que j'ai dans ma société.

Il existe un logiciel nommé Netdisco[5] qui exploite précisément la méthode exposée ci-dessus à ceci près qu'il utilise aussi le protocole CDP. Ce logiciel s'appuie sur un module Perl du même auteur, SNMP::Info[6], qui "hérite" du module Perl SNMP du projet Net::SNMP, ce qui lui donne le moyen de tirer parti des MIB. Ce module transforme en fait les données obtenues via SNMP en objets Perl.


[1]: http://coffer.com/mac_find/
[2]: http://www.gcstech.net/macvendor/
[3]: http://www.cavebear.com/CaveBear/Ethernet/vendor.html
[4]: http://www.netspec.com/helpdesk/vndrcode.html
[5]: http://www.netdisco.net/
[6]: http://snmp-info.sourceforge.net/

DJ TonTon
30th January 2007, 16:38
Super, merci Surcouf pour toutes ces informations. Pour l'instant ce n'est qu'un détail, en soi ce n'est pas très important dans l'utilisation générale d'Oreon. Merci :) .