-
Notifications
You must be signed in to change notification settings - Fork 0
Labo 5
Pour pouvoir effectuer ce laboratoire, vous avez besoin d’une infrastructure Proxmox fonctionnelle. Vous devez donc avoir un cluster de deux hôtes Proxmox sur lequel il est possible de déployer des serveurs virtuels ayant une connectivité internet.
LibreNMS est une application web déployable de plusieurs façon différentes :
- En installant et configurant les package ad-hoc sur une distribution Linux
- Ubuntu
- Centos
- Debian
- En déployant un container docker sur un serveur docker Linux
- En adaptant l’OVA ou le fichier docker pour le déployer directement sur votre proxmox
De notre côté nous avons choisi de partir sur un machine CentOS et de passer par docker. Pour cela, après avoir installer et configurer votre machine CentOS, vous devez installer docker.
Si vous ne partez pas d’une installation propre nous vous conseillons de désinstaller toutes les dépendances déjà existante de docker :
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engineEnsuite vous devez réinstaller docker :
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginPuis vous devez démarrer Docker Engine sudo systemctl enable --now docker
Et vous pouvez vérifier votre installation : sudo docker run hello-world
Nous nous sommes permis de demander à notre collègue GPT de nous expliquer ce qu’était LibreNMS, de nous donner les points auxquels il faut faire attention et de nous donner un petit manuel d’utilisation que vous retrouverez ici.
Si tout est bon, on peut commencer à entrer dans le vif du sujet : Installer LibreNMS
Vous allez télécharger et dézipper le projet :
mkdir librenms
cd librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
unzip master.zip
cd docker-master/examples/composeUne fois dans le dossier docker-master/examples/compose vous allez modifier le mot de passe mysql dans le fichier .env
Dès que cela sera fait vous pouvez lancer votre container docker sudo docker compose -f compose.yml up -d
Vous pouvez à présent vous rendre sur http://localhost:8000 pour terminer la configuration. (Il vaut mieux utiliser l’adresse ip de la machine plutôt que localhost).
Quand vous serez sur le site vous devrez créer un compte administrateur (username, password, email). Puis vous serez redirigé sur le Dashboard de libreNMS.
Afin de rajouter nos serveurs Proxmox dans LibreNMS, nous devons activer SNMP sur les serveurs proxmox. Pour ce faire vous allez vous rendre sur le terminal de votre serveur et installer SNMP :
apt update
apt install snmp snmpd -yLorsque SNMP sera télécharger vous devrez vous rendre sur le fichier nano /etc/snmp/snmpd.conf.
Vous allez maintenant ajouter / modifier ces lignes :
agentAddress udp:161
createUser <USERNAME> SHA <PASSWORD> AES <ENCRYPTION_PASSWORD>
rouser <USERNAME> priv
sysLocation "Proxmox Server"
sysContact admin@domain.com<USERNAME> : Nom d'utilisateur SNMP (ex. snmpadmin)
SHA : Méthode d'authentification
AES : Méthode de chiffrement
<PASSWORD> : Mot de passe d'authentification
<ENCRYPTION_PASSWORD> : Mot de passe de chiffrement
Il ne reste plus qu'à redémarrer le service
systemctl restart snmpd
systemctl enable snmpdCommande :
snmpwalk -v2c -c public <IP_PROMOX>
Exemple :
snmpwalk -v2c -c public 100.101.241.99 <IP sur le réseau VPN tailscale>
Voici la trace wireshark entre mon ordinateur et le serveur hyp-stu-331

On peut voir ici que le traffic n'est pas crypté et donc on peut lire toutes les informations en claires.
Commande :
snmpwalk -v3 -u <USERNAME> -a SHA -A <PASSWORD> -x AES -X <ENCRYPTION_PASSWORD> -l authPriv <IP_PROXMOX>
Exemple :
snmpwalk -v3 -u snmpadmin -l authPriv -a SHA -A {#Paddington666#} -x AES -X {#Paddington666#} 100.101.241.99
Voici la trace wireshark entre mon ordinateur et le serveur hyp-stu-331

On peut voir ici que le traffic est crypté et donc on ne peut pas lire toutes les informations en claires.
Une fois SNMP configuré sur les deux serveurs il ne vous reste plus qu'à les rajouter dans LibreNMS.
- Connectez-vous à l'interface web de LibreNMS.
- Allez dans
Devices → Add Device
-
Remplissez les champs :
-
Hostname/IP : IP de votre serveur Proxmox.
-
SNMP Version : Choisissez v2c ou v3 selon votre configuration.
-
Si vous avez mis en place SNMPv3, vous devez aussi remplir les champs en fonction de ce que vous avez paramétré dans les serveurs.
- Auth Level
- Auth User Name
- Auth Password
- Auth Algorithm
- Crypto Password
- Crypto Algoritmh
-
Community : Entrez le mot de passe SNMP (ex. public).
-
-
Cliquez sur Add Device.
- Une fois ajouté, vérifiez que les métriques s'affichent correctement.
Vous pouvez aussi modifier votre dashboard. Voici le notre pour le moment :

SNMP (Simple Network Management Protocol) est un protocole qui permet aux administrateurs réseaux de pouvoir manager tous les équipements réseaux en voyant l'état des disques, l'état du réseau, l'état d'usage CPU, température, etc [1]
OID : Object Identifiers Ce sont des identifiants uniques qui pointent vers des objets manageables. C'est une sorte d'adresse permettant d'accéder à une données précises.
Exemple OID 1.3.6.1.4.1.2021.10.1.3.1 → Charge CPU moyenne sur 1 minute
MIB : Management Information Base C'est un peu comme le dictionnaire des OID. Il permet de traduire les OID en information compréhensible.
-
Authentification (SNMPv3)
-
noAuthNoPriv : Pas d’authentification, pas de chiffrement (
⚠️ non sécurisé). - authNoPriv : Authentification, mais pas de chiffrement.
- authPriv : Authentification + chiffrement (recommandé).
-
noAuthNoPriv : Pas d’authentification, pas de chiffrement (
-
Community (SNMPv1/v2c)
- Une "community" est une sorte de mot de passe SNMP utilisé pour l’accès aux périphériques.
- Exemples courants : public (lecture seule), private (écriture).
| Protocole | Sécurité | Chiffrement | Authentification | Performances | Cas d'utilisation |
|---|---|---|---|---|---|
| SNMPv1 | Faible | ❌ Non | ❌ Non | Léger | Petits réseaux, obsolète |
| SNMPv2c | Faible | ❌ Non | ❌ Non | Bonne | Réseaux plus grands, lecture seule/sécurisée |
| SNMPv3 | Élevée | ✅ Oui | ✅ Oui | Légèrement plus lourd | Réseaux sécurisés, entreprises, conformité |
Un Trap SNMP est une alerte envoyée par un périphérique SNMP à un serveur de supervision (comme LibreNMS) lorsqu’un événement spécifique se produit (ex. panne d’un disque dur, surcharge CPU).
[1] Wikipédia, "Simple Network Management Protocol", https://fr.wikipedia.org/wiki/Simple_Network_Management_Protocol, visité le 22/12/2024 à 14h43
[2] Paessler, "SNMP, MIBs and OIDs – an overview", https://www.paessler.com/it-explained/snmp-mibs-and-oids-an-overview, visité le 22/12/2024 à 14h46
[3] Solarwinds, "A Guide to Understanding SNMP", https://www.solarwinds.com/assets/solarwinds/swresources/tech-tip/a_guide_to_understanding_snmp.pdf, consulté le 22/12/2024 à 14h53
[4] Reddit, "librenms snmp traps", https://www.reddit.com/r/LibreNMS/comments/gb2mpr/librenms_snmp_traps/, consulté le 22/12/2024 à 15h02
[5] LibreNMS Docs, "SNMP Trap Handler" , https://docs.librenms.org/Extensions/SNMP-Trap-Handler/, consulté le 22/12/2024 à 15h10
Ecrit par Samuel Lambert & Julien Pollart & Martin Hayot