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
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
| TODO |
|---|
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
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:
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