Description
OpenBSD intègre par défaut dans le système de base snmpd qui est le démon du service SNMP.
- OpenBSD : 6.6
- Service : snmpd
Documentation
La documentation se fait au-travers des différents manpages, tels que :
Configuration
La configuration du serveur snmpd se fait, à minima, au-travers d’un seul fichier de configuration, à créer : /etc/snmpd.conf
.
Il existe trois versions du protocol ; la v1 est l’historique à ne plus utiliser ; la v2 apporte des prémices de sécurité ; la v3 est la plus sécurisante, néanmoins, il faut utiliser les niveaux de sécurité et de chiffrement les plus forts. (Pour info, dans certaines conditions, la v3 est aussi faillible et sujette à vulnérabilités).
Après avoir écrit le fichier de configuration, il faut donner les droits d’exécution adéquates et utilisateur au fichier de configuration :
Code : sh
Configuration Globale
Plusieurs options peuvent être paramétrées :
filter-routes
(yes|no): permet au noyau de filter les messages de mise à jour des routes dans le socket.listen on
address [tcp|udp]: spécifie l’adresse locale qui doit écouter les messages SNMP entrants. Il est possible de la spécifier plusieurs fois. Les deux protocoles TCP et UDP sont gérés.read-only
: spécifie la communauté autorisée en lecture seule. Par défaut, la valeur estpublic
read-write
(community string | disabled) : Soit spécifie la communauté autorisée en lecture et écriture, soit désactive l’écrite définitivement. Par défaut, la valeur estprivate
seclevel
: spécifie le niveau le plus bas de sécurité que snmpd(8) accepte. Par défault, la valeur estnone
. Si l’une des deux autres optionsauth
ouenc
est choisie, snmpd(8) n’acceptera que les requêtes SNMPv3.enc
oblige à ce que les messages soient chiffrés et une authentification valide, autrement ils seront supprimés.- Il existe aussi l’option
socket
, les différentes optionssystem
et celles relatives àtrap
. Je renvoie au manpage ;)
Les deux options read_*
ne servent QUE pour une configuration SNMP v2.
Macros
Des macros peuvent être définies. Considérez-les comme des variables. On ne peut utiliser des mots clés réservés. Elles commencent forcément par une lettre, un chiffre ou le symbole ‘_
’ suivi de tout autre caractère.
Configuration des utilisateurs
Avec SNMPv3, Il est possible de définir plusieurs utilisateurs par le biais de l’option user
, tel que :
user
name authkey key auth hmac enckey key enc cipherauthkey
est requis pour authentifier les messages en spécifiant une clé. Si la clé est omise, pas d’authentification.auth
hmac permet de cibler l’algorithme HMAC à utiliser. Par défaut, la valeur esthmac-sha1
. La valeur la plus forte esthmac-sha512
.enckey
key est la clé de chiffrement utilisé pour chiffrer et déchiffrer les messages dans un soucis de confidentialité. Sans, le compte utilisateur n’acceptera jamais l’entrée des messages ou ne chiffrera pas les messages sortants.enc
cipher est l’algorithme utilisé. Par défaut, sa valeur estdes
. Sa valeur la plus forte estaes
.
Il faut bien comprendre que le nom de l’utilisateur, les caractères donnant la valeur des clés key
sont des choix purement arbitraires. À vous de les spécifier…
Configuration des OID
Les OID sont les identifiants des objets. Je renvoie au manpage, si besoin de les gérer.
Utilisation
- Le service se nomme logiquement :
snmpd
- L’option de test de configuration :
-n
Ainsi la commande snmpd -n
permettra de s’assurer de la validité de l’ensemble de la configuration, à tout moment.
À chaque modification du fichier de configuration , il faudra relancer le service ad hoc.
SNMP v2
Pour débuter, commençons par :
Code :
À minima, nous n’avons besoin de rien de plus. C’est très basique et permet de tester/s’assurer du bon fonctionnement, de la bonne compréhension.
Testons la réponse :
Code : sh
Ce sont des exemples d’interrogation et réponses.
SNMP v3
Sans sécurité
Commençons avec un exemple sans sécurité :
Code :
Après le rédémarrage du service :
Code : sh
Utilisateur authentifié
Code :
Après le rédémarrage du service :
Code : sh
Authentification forte
Configurons le serveur par un exemple fort :
Code :
Après le redémarrage du service :
Code : sh
Gestion du service
- activation :
rcctl enable snmpd
- démarrage :
rcctl start snmpd
Après avoir activé et démarré le service, il est possible de vérifier le fonctionnement du service, tel que :
Code : sh
Voilà, pour la partie serveur !
Et les clients ?
Les clients
Depuis OpenBSD 6.6, le client natif est snmp
Pour information, il y a sur chaque système OpenBSD, dans le répertoire /usr/share/snmp/mibs/
l’ensemble de fichiers MIB qui renferment toutes informations utiles :
Code : sh
Il peut être utile de les “donner à manger” aux différents clients des autres systèmes de surveillance/métrologie/monitoring, tel Nagios , Munin , etc…