NAS Synology – Installer NetAlertX dans un conteneur Docker pour surveiller son réseau local
I. Présentation
Dans ce tutoriel, nous allons apprendre à installer l'application NetAlertX (Pi.Alert) sur un NAS Synology. L'installation sera effectuée dans un conteneur Docker, via Container Manager.
NetAlertX est une application gratuite et open source dont l'objectif est de surveiller votre réseau local dans le but de référencer tous les appareils connectés. Que ce soit un appareil connu ou inconnu (intrusion ?), il sera détecté par NetAlertX. Ainsi, vous pouvez recevoir une notification lorsqu'un nouvel appareil se connecte pour la première fois ou si un appareil tombe en panne (connecté puis déconnecté).
Nous avons mis en ligne un article de présentation et de configuration complet à son sujet. Voici les liens vers cet article et vers le GitHub du projet :
- Surveillez votre réseau avec NetAlertX et détectez les nouveaux appareils
- GitHub du projet NetAlertX
Ici, nous aborderons la phase de déploiement sur un NAS Synology à l'aide de Container Manager.
II. Déployer NetAlertX avec Docker
Avant toute chose, vous devez installer l'application "Container Manager" sur votre NAS, si ce n'est pas déjà fait. Puis, vous devez créer un dossier pour ce conteneur. Pour ma part, il s'agit du répertoire "netalertx" créé sous "docker".
Dans ce répertoire nouvellement créé, vous devez créer les trois sous-répertoires suivants :
- log
- db
- config
Ils seront utilisés par l'application pour stocker des données (journaux, configuration, base de données).
Ensuite, ouvrez "Container Manager" puis cliquez sur "Projet" afin de créer un nouveau projet en cliquant sur le bouton nommé "Créer".
Vous devez donner un nom à ce projet, sélectionner le répertoire créé précédemment et indiquer le code de configuration Docker Compose permettant de déployer l'image Docker de l'application. Ce qui donne :
Voici le code Docker Compose (aidez-vous des commentaires dans le fichier pour la compréhension de la config) :
services:
netalertx:
image: jokobsk/netalertx:latest # Nom de l'image Docker à utiliser
container_name: netalertx # Nom du conteneur Docker
healthcheck: # Vérifier état de santé du conteneur (attention au port)
test: curl -f http://127.0.0.1:15000/ || exit 1
mem_limit: 1g # Limite RAM de 1 Go pour le conteneur
security_opt:
- no-new-privileges:true # Option de sécurité contre l'élévation de privilèges
volumes:
- /volume1/docker/netalertx/config:/app/config:rw # Volume pour "config" (configuration)
- /volume1/docker/netalertx/db:/app/db:rw # Volume pour "db" (base de données)
- /volume1/docker/netalertx/log:/app/front/log:rw # Volume pour "log" (journaux)
environment:
TZ: Europe/Paris # Fuseau horaire, ici Paris
PORT: 15000 # Port à utiliser sur la machine locale (adapter le healthcheck en fonction)
HOST_USER_ID: 1032 # UserID à utiliser (n'utilisez pas "root")
HOST_USER_GID: 100 # UserID à utiliser (n'utilisez pas "root")
# ALWAYS_FRESH_INSTALL: true # Réinitialise l'application (effacer toutes les données - désactivé ici)
network_mode: host # Mode "host" obligatoire pour cette application
restart: on-failure:5 # Restart en cas de problème avec le conteneur ; 5 tentatives pour relancer
Dans le cas présent, le port sur lequel sera joignable l'application, est le port 15000. Veillez à vérifier également les chemins vers les dossiers, sous l'instruction "volumes".
Le conteneur sera exécuté à partir de l'utilisateur "docker", créé par mes soins sur le NAS. Il s'agit d'un utilisateur non privilégié qui ne dispose d'aucune permission spéciale sur le NAS, si ce n'est le droit de lecture et écriture dans le répertoire "docker".
Nous avions abordé la création de cet utilisateur dans l'article de présentation globale de Container Manager. De plus, vous devez être en mesure de récupérer l'UID de ce compte, qui est susceptible de varier d'un NAS à un autre. Voici deux liens utiles :
- NAS Synology - Guide de prise en main à Container Manager (Docker)
- NAS Synology - Récupérer l'UID d'un utilisateur
Quand la configuration est prête, poursuivez jusqu'à la fin et lancez la création du projet... Patientez pendant le téléchargement de l'image Docker et la création du conteneur associé.
Dès à présent, vous pouvez accéder à l'application NetAlertX de cette façon :
- http://<adresse IP de votre NAS>:15000
Vous avez désormais accès à l'application NetAlertX grâce à votre NAS !
III. Conclusion
Voilà, vous venez de déployer l'application NetAlertX sur votre NAS Synology ! Dès maintenant, elle va commencer à détecter les hôtes sur le réseau "192.168.1.0/24" puisque c'est sa configuration par défaut. Référez-vous à notre tutoriel sur la configuration de NetAlertX pour prendre en main cette solution.
Par la suite, vous pouvez publier l'application à l'aide du reverse proxy de DSM et d'un certificat TLS. Pour cela, si vous avez besoin d'aide, référez-vous à ces deux tutoriels :
- Utiliser un nom de domaine synology.me sur son NAS Synology
- NAS Synology - Publier une application avec le reverse proxy
Qu'en pensez-vous ? Nous attendons votre réaction en commentaire !
Bonjour Florian. Super tuto comme d’habitude! Un grand merci.
J’ai un souci. Après création du projet, le container se lance et est bien au vert. Par contre impossible de me connecter avec site inaccessible. Sur ce NAS, j’ai également un conteneur adguard qui tourne. J’ai vérifié mon uid et gid;
Le NAS semble refuser la connexion. As tu une idée?
Merci
Bonjour,
Le port du conteneur NetAlertX a-t-il été autorisé dans le firewall de DSM ?
Avez-vous essayé de vous connecter en http au lieu de https ?
J’ai un Ds3018xs qui était en DSM 7.1 avec docker installé et Portainer . Uniquement 4 containers deployés: nextcloud , Rustdesk, et portainer. Au vu de l’article sur container manager ( ou Docker 2.0) , je me suis décidé à migrer en 7.2.2 pour utiliser container manager avec comme essai le container netalertx. En utilisant le projet comme indique dans ce tuto avec le fichier compose.yaml, je reussis bien à créer un container Netalertx qui est actif mais je vois que ce container utilise un réseau bridge et non hote. Du coup impossible de l’atteindre par http sur l’adresse du Nas et ce quelque soit le port utilisé et pare-feu NAS désactivé . J’ai du faire deux ou trois installations après scratch pour vérifier. A la fin de guerre lasse, je suis passé par le bon vieux Portainer des chaumières et j’ai déployé le stack avec les paramètres indiqués dans le tuto . Et cela marche enfin. Je vais tester avec d’autres exemples de précédent tuto. la migration pourrait elle être la cause ?
Bonjour
Merci pour ce tuto, j’ai installé Netalertx sur mon syno DS120j tout fonctionne malgré ma configuration en RAM plutôt légère , voila une appli de surveillance réseau qui va rester à demeure sur ce Nas.
Super, installation simple et avec le reverse proxy, in y accede avec le certificat let’s encrypt. Reste à découvrir l’ensemble des fonctionnalités. Belle découverte!
Bonjour, j’ai un problème quand je lance netalertx un message s’affiche, je suis ce qu’il dit de faire comme ci-dessous.
[Upgrade] : App upgraded 🚀 Please clear the cache:
Click OK below
Clear the browser cache (shift + browser refresh button)
Clear app cache with the 🔄 (reload) button in the header
Go to Settings and click Save
Check out new features and what has changed in the 📓 release notes.
Mais cela ne marche pas, quelqu’un aurez la solution merci.
Magnifique !
Ca marche bien sur mon DS923+ ! (à titre perso)
Il a fallu que je révise et adapte le fichier yaml car mon dossier « DOCKER » se trouve sur le volume 2 du NAS, mais c’est passé nickel.
Reste à explorer l’outil et tester les plugins.
Merci !!