Table des matières
Snmp
Installation
Sur debian et dérivées :
apt-get install snmpd
Sur RedHat et dérivées :
yum install net-snmp
ou :
dnf install net-snmp
Configuration
snmpd
Version 1 et 2c
Pour une configuration rapide, éditer le fichier de configuration suivant :
vim /etc/snmp/snmpd.conf
Ne pas oublier de supprimer et configurer la première ligne non commentée, si elle existe, concernant l'écoute en 127.0.0.1.
Commenter la ligne de la communauté par défaut et ajouter la sienne :
rocommunity masuperbecommunautéetouteneuve
NB : rocommunity = read only community
Version 3
| TODO |
|---|
Firewalld
Si firewalld est activé, par défaut il n'autorise pas les communications nécessaires au service snmpd.
Se référer à l'exemple suivant :
Firewalld : ajouter_un_service
Extend
Il est possible d’exécuter un script via snmp, déposer alors ce script sur le serveur exécutant snmpd, exemple : /etc/snmp/test.sh
Éditer le fichier de configuration, et rechercher les lignes correspondant à “extend” ou “exec” :
vim /etc/snmp/snmpd.conf
Ajouter la ligne correspondante au script souhaité :
extend monscriptdetest /bin/bash /etc/snmp/test.sh localhost
Comprendre:
- extend : on utilise extend, ou extend-sh afin de passer une commande shell
- monscriptdetest : le nom arbitraire à partir duquel on créé l'OID dédiée au script
- /bin/bash /etc/snmp/test.sh locahost : le langage utilisé, l'emplacement du script et les arguments; on peut donc utiliser le langage que l'on souhaite.
Attention : sur les versions de debian, et dérivées, le service snmpd démarre par défaut avec l'utilisateur snmp, créé spécialement à cet effet; sous RedHat, et dérivées, le service démarre avec l'utilisateur root.
Pour éviter que le script manque d'autorisation lors de son exécution il est possible de modifier l'utilisateur qui exécute le service snmpd.
Éditer le fichier suivant :
vim /etc/default/snmpd
La ligne à modifier peut varier selon les versions et la distribution mais les options à modifier sont “-u root -g root” :
# snmpd options (use syslog, close stdin/out/err). SNMPDOPTS='-Lsd -Lf /dev/null -u root -g root -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid'
Il est aussi possible d'augmenter les privilèges de l'utilisateur snmp, dans tous les cas, rester prudent et ne pas autoriser l’exécution de ce script en anonyme.
Redémarrer snmpd :
systemctl restart snmpd
Pour récupérer toute la liste des OIDs de tous les scripts extend :
snmpwalkd -v2c -c masuperbecommunautéetouteneuve monserveurdistant NET-SNMP-EXTEND-MIB::nsExtendObjects
