Nous souhaitons savoir comment récupérer l'information du nombre de sessions root ouvertes sur un serveur Debian (SRV-WEB, 10.10.20.2) et monitorer l'information depuis un serveur de supervision (ex: Nagios, 10.10.10.4) avec SNMPv3.
apt update
apt install snmp snmpd -y
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
Créez un nouveau fichier /etc/snmp/snmpd.conf contenant uniquement ces lignes essentielles pour SNMPv3 :
# Autoriser uniquement SNMPv3 sécurisé
agentAddress udp:161
# Création utilisateur SNMP v3 avec authentification (SHA) et chiffrement (AES)
createUser monUtilisateur SHA "MonAuthPassword" AES "MonPrivPassword"
# Définir droits d'accès pour l'utilisateur
rouser monUtilisateur priv
# Limiter l'accès SNMP uniquement depuis le serveur NAGIOS (10.10.10.4)
com2sec -Cn myContext monUtilisateur 10.10.10.4
systemctl restart snmpd
systemctl enable snmpd
Créez un script shell sur le serveur SRV-WEB, par exemple /usr/local/bin/root_sessions.sh :
#!/bin/bash
who | grep -c "^root "
Rendez ce script exécutable :
chmod +x /usr/local/bin/root_sessions.sh
Éditez votre fichier de configuration SNMP (/etc/snmp/snmpd.conf) et ajoutez-y la ligne suivante :
extend rootSessions /usr/local/bin/root_sessions.sh
Cette commande active l'extension SNMP, permettant d'exécuter ce script via SNMP.
Redémarrez ensuite le service SNMP pour appliquer la modification :
systemctl restart snmpd
Depuis votre serveur Nagios (10.10.10.4), vérifiez que l'information SNMP est accessible à distance :
snmpwalk -v3 -u monUtilisateur -l authPriv \
-a SHA -A MonAuthPassword \
-x AES -X MonPrivPassword \
10.10.20.2 NET-SNMP-EXTEND-MIB::nsExtendOutputFull
Vous devriez obtenir un résultat similaire à :
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."rootSessions" = STRING: X
Créez ensuite un nouveau service Nagios XI avec la commande suivante pour récupérer spécifiquement la valeur du nombre de sessions root ouvertes :
/usr/local/nagios/libexec/check_snmp -H 10.10.20.2 -P 3 -U monUtilisateur \
-a SHA -A MonAuthPassword \
-x AES -X MonPrivPassword \
-L authPriv -o 'NET-SNMP-EXTEND-MIB::nsExtendOutputFull."rootSessions"'
Cette commande récupère directement le nombre de sessions ouvertes en tant que root via SNMPv3.