Description
snmp est le client SNMP par défaut sous OpenBSD, intégré dans le système de base depuis 6.6 !
Il est bien sûr nécessaire qu’un agent soit installé, configuré sur la machine à interroger. Sous OpenBSD, c’est le service natif snmpd .
Documentation
La documentation se fait au-travers du manpage, tels que :
Utilisation
Premier aspect qui “saute aux yeux” est que snmp est fourni avec un ensemble de sous-commandes, qui ont leurs propres options.
Pour information : les OID sont des identifiants d’objets.
Description des sous commandes
snmp getpour récupèrer le varbind OID depuis un agent SNMP. Il est possible de spécifier plusieurs OID.snmp getnextpour récupèrer le varbind qui suit l’OID requis. Il est aussi possible d’en spécifier plusieurs.snmp walkrécupère toutes les branches d’un OID.snmp bulkgetrécupère les 10 prochains varbind suivant chaque OID.snmp bulkwalkrécupère tous les varbind qui sont des branches de l’OID.snmp setpermet de définir un ou plusieurs varoid, ainsi que son format de type de données.snmp trapenvoie un message de capture à un agent.snmp mibtreepermet de faire un dump (une sauvegarde) de l’arborescence des objets compilés au format MIB.
Les deux sous commandes bulk*, ainsi que trap ne sont fonctionnelles
qu’à partir de SNMP v2.
Pour info, la sous commande get est aussi utile pour récupèrer les
messages d’erreurs.
SNMP v1
Oui, c’est possible ; mais du fait que c’est une version “historique”, qu’il n’est plus recommandé de l’utiliser, passons à la suite…
SNMP v2
Il n’y a pas de réelle sécurité avec SNMPv2. Elle se base principalement
sur l’option community et les deux options read-*.
Exemple :
$ snmp walk -v 2c -c public $(hostname) sysDescr
Cet exemple nous montre l’interrogation d’un agent sur le protocole v2c
faisant partie de la communauté public.
Un petit mot sur l’option community, ne cherchez pas à la faire fonctionner
avec SNMPv3, elle a été supprimée du protocole.
SNMP v3
Les options principales sont :
-Aspécifie le mot de passe utilisateur de l’agent à interroger.-aspécifie le protocole de chiffrement lié à l’option-A.- Par défaut, l’option 
-aest paramétrée surMD5.
Attention, l’option équivalente pour le service snmpdhmacest, elle, basée surhmac-sha1. Donc, dans le cas d’un agent SNMPd fonctionant sous OpenBSD configuré par défaut à interroger, il faudra veiller à spécifierSHA1. 
- Par défaut, l’option 
 -lspécifie le niveau de sécurité. Par défaut, la valeur estnoAuthNoPriv.authNoPrivest requise par l’une des deux options-Aou-k.authPrivest requise par l’une des deux options-Kou-X.
-uspécifie le nom de l’utilisateur-vspécifie la version du protocole SNMP utilisé-Xspécifie le mot de passe de confidentialité de l’utilisateur-xspécifie le protocole de chiffrement de confidentialité. Les options sontdesouaes.
Ces options sont utiles voire nécessaires pour faire de l’authentification dite forte .
Il y a bien sûr d’autres options possibles :
- certaines ne sont pas nécessaires d’être généralement spécifiées,
c’est le cas de 
-E,-e,-n,-Z. - les options 
-K,-k(ces deux dernières options sont l’équivalent des options-Aet-Xmais encodées sous forme hexadécimale). - certaines sont spécifiques à l’usage des sous commandes 
bulk*,walk. - pour finir, il est possible de cibler les protocoles réseaux que sont
udp,tcp, (et leur équivalent IPv6 :upd6ettcp6) ouunix. Les adresses IPv6 doivent être mises entre crochets{ }. 
Lire le manpage snmp pour en savoir plus sur l’utilité des ces options.
Ci-dessous, retrouvez quelques exemples d’utilisation avec le protocole SNMPv3. Il est bien entendu que nous n’abordons pas la partie de la configuration de l’agent interrogé. Sous OpenBSD , la configuration d’un agent SNMP se fait par le biais du service SNMPd .
Dans chaque cas, les paramètres utilisés sont liés à ceux configurés dans le service SNMPd.
Sans authentification
Exemple :
$ snmp walk -u "test" -v 3 $(hostname) sysDescr
Dans cet exemple, nous interrogeons l’agent avec un nom d’utilisateur
nommé test, sans aucun niveau de sécurité.
Authentification simple
Exemple :
$ snmp walk -A "secret007" -a SHA -l authNoPriv -u "uauth" -v 3 192.168.1.3 sysdescr
Ici, nous interrogeons l’agent ayant pour adresse 192.168.1.3 avec un
nom utilisateur uauth , une clé d’authentification secret007 et un
niveau de sécurité spécifié à authNoPriv.
Authentification forte
Quelques mots sur l’authentification forte : elle est à favoriser IMPÉRATIVEMENT !
Exemple :
$ snmp walk -A "zx4pyrfyeu5x5c3kxqirhtsxksbmawju" -a SHA-512 -l authPriv -u "uenc" -v 3 -X "XHVBzYUpP8dKns75BaSwq6t7SUgF6oMz" -x aes $(hostname) sysdescr
Dans cet exemple, nous interrogeons localement l’agent,
- avec un utilisateur nommé 
uenc, - une clé d’authentification “
zx4pyrfyeu5x5c3kxqirhtsxksbmawju” basée sur le protocole de chiffrementSHA-512, - un niveau de sécurité sur 
authPriv, - le mot de passe de l’utilisateur “
XHVBzYUpP8dKns75BaSwq6t7SUgF6oMz” basé sur le protocole de chiffrementaes. 
Dépannage
Erreur : usmStatsDecryptionErrors.0
Le protocole de chiffrement que vous utilisez n’est pas celui attendu
par l’agent interrogé. Corrigez la valeur de votre option -x.
Erreur : usmStatsUnsupportedSecLevels.0
Le niveau de sécurité que vous cherchez à utiliser n’est pas celui attendu
par l’agent interrogé. Corrigez la valeur de votre option -l.
Erreur : usmStatsWrongDigests.0
Le protocole de chiffrement que vous utilisez n’est pas celui attendu
par l’agent interrogé. Corrigez la valeur de votre option -a.
Message : *** = No Such Object available on this agent at this OID
Vous essayez de parcourir un arbre avec la sous commande get,
n’est-ce pas !? 
Alors, soit vous recommencez en :
- utilisant la sous commande 
walk - précisant un OID particulier
 
Message : Received report:
Vous venez de parcourir un arbre avec la sous commande walk, et vous
avez pour retour juste ce message Received report: sans rien de plus.
Utilisez la sous commande get à la place, cela vous permettra d’obtenir
le message d’erreur adéquat.
Message : snmp: Invalid privacy protocol specified after -3x flag:
Le niveau du protocole de sécurité que vous avez spécifié est incorrect.
Corrigez la valeur de votre option -l.
Message : snmp: ***: Unknown object identifier
Vous avez spécifié un OID inconnu. Vérifiez et corrigez l’OID recherché.