Récemment, j'ai eu besoin de surveiller les interfaces réseau d'une machine Debian. La manière la plus simple d'y parvenir est d'utiliser SNMP, comme je l'ai brillamment démontré ici. Mon objectif était de configurer un agent SNMPv3, qui est la version la plus sécurisée de ce protocole.
J'ai finalement réussi à le faire en utilisant le paquet snmpd fourni par Net-SNMP. Et cela sera justement le sujet de cet article!
- Configuration :
- Système d'exploitation (OS) : Debian 12 Bookworm
- snmpd (Net-SNMP) : 5.9.3
Installer et configurer SNMPD
- Installer le paquet snmpd et les outils Net-SNMP :
root@host:~# apt update && apt install snmpd snmp
- Vérifier le fonctionnement avec une simple requête snmpwalk :
root@host:~# snmpwalk -OQne -t 10 -v1 -cpublic 127.0.0.1 .1.3.6.1.2.1.1
.1.3.6.1.2.1.1.1.0 = "Linux debian 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64"
.1.3.6.1.2.1.1.2.0 = .1.3.6.1.4.1.8072.3.2.10
.1.3.6.1.2.1.1.3.0 = 0:0:14:54.11
.1.3.6.1.2.1.1.4.0 = "Me <me@example.org>"
.1.3.6.1.2.1.1.5.0 = "debian"
[…]
Créer un utilisateur SNMP
Pour activer SNMPv3, qui nécessite une authentification, nous devons créer un utilisateur SNMP. Nous utiliserons l'outil net-snmp-create-v3-user à cette fin. (Remarque : Il semble n'être disponible que sur les versions récentes de Debian.)
- Arrêter le service snmpd :
root@host:~# systemctl stop snmpd
- À l'aide de la commande net-snmp-create-v3-user, créer un utilisateur SNMP avec les options suivantes :
- -ro : Crée un utilisateur avec des autorisations en lecture seule
- -a : Spécifie l'algorithme d'authentification
- -x : Spécifie l'algorithme de chiffrement
root@host:~# net-snmp-create-v3-user -ro -a SHA -x AES
Enter a SNMPv3 user name to create:
snmpuser
Enter authentication pass-phrase:
SNMPbadPASS
Enter encryption pass-phrase:
[press return to reuse the authentication pass-phrase]
adding the following line to /var/lib/snmp/snmpd.conf:
createUser snmpuser SHA "SNMPbadPASS" AES
adding the following line to /etc/snmp/snmpd.conf:
rouser snmpuser
- Démarrer le service snmpd :
root@host:~# systemctl start snmpd
- Utiliser la commande snmpwalk afin de vérifier que ça fonctionne :
root@host:~# snmpwalk -OQne -v 3 -t 10 -l AuthPriv -u snmpuser -a SHA1 -A SNMPbadPASS -x AES -X SNMPbadPASS 127.0.0.1 -Os 1.3.6.1.2.1.2.2.1
Configurer l'accès réseau
À ce stade, SNMPv3 devrait être opérationnel, mais il ne répondra qu'aux requêtes vers l'adresse IP locale. Si l'on souhaite interroger le service SNMP via le réseau, on devra modifier le fichier de configuration.
- Modifier le fichier /etc/snmp/snmpd.conf et modifier la ligne agentaddress pour inclure l'adresse d'écoute, permettant ainsi à au service snmpd d'accepter des requêtes externes :
agentaddress 127.0.0.1,[::1],192.168.1.10
- Pour des raisons de sécurité et pour activer exclusivement SNMPv3, le fichier /etc/snmp/snmpd.conf devrait être configuré comme suit :
sysLocation area which we call The Twilight Zone
sysContact Me <me@example.org>
sysServices 72
master agentx
agentaddress 127.0.0.1,[::1],192.168.1.10
includeDir /etc/snmp/snmpd.conf.d
rouser snmpuser
- On utilise de nouveau la commande snmpwalk pour vérifier que tout est fonctionnel :
root@host:~# snmpwalk -OQne -v 3 -t 10 -l AuthPriv -u snmpuser -a SHA1 -A SNMPbadPASS -x AES -X SNMPbadPASS 192.168.1.10 -Os 1.3.6.1.2.1.2.2.1