Contexte
NetBox est un outil d’inventaire open source reposant sur un concept simple : être la “Source of Truth” d’une organisation.
Il permet notamment de centraliser les informations concernant l’ensemble du parc informatique, comme par exemple :
- les machines virtuelles,
- les équipements réseau (commutateurs, routeurs),
- le câblage réseau,
- les tunnels VPN,
- ou encore les adresses IP.
Afin d’améliorer à la fois le confort d’utilisation et la sécurité, NetBox dispose de nombreux plug-ins.
Dans ce cas précis, l’objectif est d’installer le plug-in netbox-otp-plugin, qui permet d’ajouter une double authentification (2FA) pour les utilisateurs.Cette mesure contribue notamment à répondre aux exigences du point 8.5 de la norme ISO 27001, relatif à la sécurisation des accès.
Environnement technique
Dans notre cas :
- NetBox est installé via Docker
- sur une machine virtuelle sous Ubuntu 24.04
L’architecture repose donc sur NetBox exécuté dans des conteneurs Docker, comme illustré dans le schéma d’infrastructure.

Mise en place du plug-in
L’installation du plug-in nécessite l’ajout et la modification de plusieurs fichiers dans l’installation netbox-docker.
La documentation officielle de NetBox étant relativement claire, les étapes suivantes ont été appliquées :
1. Ajout des dépendances du plug-in
Dans le répertoire netbox-docker, création du fichier :
plugin_requirements.txt
Contenu du fichier :
netbox-otp-plugin
2. Configuration du plug-in
Ajout de la configuration correspondante dans le fichier :
configuration/plugins.py
afin d’activer le plug-in dans NetBox.
3. Création du Dockerfile pour les plug-ins
Création du fichier :
Dockerfile-Plugins
Ce fichier permet d’indiquer à Docker d’installer les dépendances supplémentaires nécessaires aux plug-ins.
4. Modification de la configuration Docker
Modification du fichier :
docker-compose-override.yml
afin d’indiquer à Docker d’utiliser le Dockerfile-Plugins lors de la construction du conteneur.
5. Reconstruction et redémarrage des conteneurs
Une fois les modifications effectuées, les commandes suivantes sont exécutées :
docker compose build
docker compose up
Ces commandes permettent de reconstruire l’image Docker puis de relancer les conteneurs NetBox avec le plug-in installé.
Problèmes rencontrés
Lors de l’installation, un problème est apparu lors de la connexion à NetBox après l’activation du plug-in.
Le système redirigeait vers une page d’erreur lors de l’authentification.
Après analyse, il s’est avéré que :
- un fichier de dépendances limitait la version maximale de NetBox à 4.4
- alors que notre instance utilisait NetBox 4.5.2
Cette incompatibilité provoquait donc une erreur lors du chargement du plug-in.
La solution a été trouvée grâce à une issue GitHub du projet, qui recommandait de spécifier explicitement l’utilisation des fichiers de dépendances adaptés aux plug-ins dans le Dockerfile-Plugins.
Après cette correction, le plug-in a pu être chargé correctement.
Fonctionnement du plug-in
Une fois le plug-in installé :
- La première connexion d’un utilisateur se fait normalement, sans double authentification.
- Une fois connecté, l’utilisateur accède à un nouvel onglet nommé « OTP Plugin ».
- Dans cet onglet, il peut ajouter un jeton d’authentification (généralement via une application d’authentification comme Google Authenticator ou équivalent).
- Après l’activation du jeton, toutes les connexions suivantes nécessitent la double authentification.
Ainsi, un utilisateur ne pourra plus se connecter sans fournir :
- son mot de passe
- et son code OTP (One-Time Password).
Sécurisation des permissions
Par défaut, le plug-in présente un problème de sécurité potentiel.
En effet, n’importe quel utilisateur peut créer ou supprimer la double authentification d’un autre utilisateur.
Dans un scénario d’attaque, si un compte utilisateur était compromis, un attaquant pourrait :
- désactiver la double authentification de tous les comptes
- puis tenter une élévation de privilèges.
Pour corriger ce problème, il est nécessaire de restreindre les permissions.
Deux autorisations doivent donc être configurées dans :
Administration → Permissions
Cette correction est également documentée dans une issue GitHub du projet.
Ainsi, seules les personnes autorisées (administrateurs) pourront gérer la double authentification des autres utilisateurs.


Gestion de projet :

Compétences sollicités :
- Travailler en mode projet
- Mettre à disposition des utilisateurs un service informatique
- Répondre aux incidents et aux demandes d’assistance et d’évolution
No responses yet