MAS32 Docker librenms OUTED - IlanRuiz/Cours-TechES GitHub Wiki

Docker librenms

Installation de docker

sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

validation

input:

sudo docker run hello-world

output:

deb@deb:~$ sudo docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

...

https://docs.docker.com/engine/install/debian/

Installation docker compose

sudo apt install docker-compose-plugin

validation

input

docker compose version

output

deb@deb:~$ docker compose version
Docker Compose version v2.24.2

Installation librenms

sudo wget https://github.com/librenms/docker/archive/refs/heads/master.zip
sudo unzip master.zip
cd docker-master/examples/compose/
sudo docker compose -f compose.yml up -d

validation

Par défaut l'accès au site se fait en http via l'IP de la machine hôte avec le port 8000

input

http://10.10.10.168:8000

output image-20240207134159742

Nameserver

Ajouter un enregistrement dns ou une entrée dans le fichier hosts

Exemple avec le fichier hosts

...
# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost
	10.10.10.168	librenms.mas32.local

Se connecter à l'interface web via le nom inscrit sous hosts

Note: Mon infrastructure du laboratoire utilise un routeur Mikrotik qui fait du PAT. ce qui fait que je n'ai pas besoin de spécifer le port 8000 dans l'url.

Ensuite se rendre sous Global settings > System > Server

Appliquer le nom et l'url

image-20240131175648928

Validation

input

http://librenms.mas32.local

output

image-20240207134159742

Ajout clients

Debian

sudo apt install snmpd snmp libsnmp-dev
sudo nano /etc/snmp/snmpd.conf

Ajouter les informations suivantes:

agentAddress udp:127.0.0.1:161,udp:<IP-CLIENT>:161
rocommunity <COMMUNITY> <IP-SERVER-LIBRENMS>
sudo sytemctl restart snmpd

Windows 10 pro

Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"
Add-WindowsCapability -Online -Name "WMI-SNMP-Provider.Client~~~~0.0.1.0"

Commande de verification d'installation

Get-Service -Name snmp*

Aller dans les services et trouver service snmp sous l'onglet security

image-20240131194933857

Autoriser les ports 161 et 162 dans le par-feu

netsh advfirewall firewall add rule name="SNMP UDP Port 161 In" dir=in action=allow protocol=UDP localport=161

netsh advfirewall firewall add rule name="SNMP UDP Port 161 Out" dir=out action=allow protocol=UDP localport=161

netsh advfirewall firewall add rule name="SNMPTRAP UDP Port 162 In" dir=in action=allow protocol=UDP localport=162

netsh advfirewall firewall add rule name=" SNMPTRAP UDP Port 162 Out" dir=out action=allow protocol=UDP localport=162

Assurer vous que l'ICMP est autorisé

Ajout du device ntp

Sur le menu principale, aller sous services > Add service

Ajouter les informations suivantes

image-20240207135014408

Adapter la configuration en conséquence

Ecoute NTP

Debian

Aucune configuration supplémentaire n'est requise. Il faut simplement que le service ntp soit installé et actif sur la machine ciblé.

Windows

Pour pouvoir remonter les informations au serveur librenms, un agent est requis sur les machines windows.

MK agent:

Une fois installé, autoriser le port 6556 dans le parfeu

netsh advfirewall firewall add rule name="Allow MK agent communications" dir=out action=allow protocol=TCP localport=6556

Confiugration conteneur

Il faut modifier le conteneur docker en conséquence pour qu'il puisse écouter le port 6556.

⚠️ **GitHub.com Fallback** ⚠️