Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierIT-Connect

NAS Synology – Prise en main de Container Manager pour créer des conteneurs Docker

10 juin 2024 à 18:00

I. Présentation

Vous souhaitez apprendre à utiliser l'application "Container Manager" disponible sur les NAS Synology ? Vous êtes au bon endroit, car dans ce tutoriel, nous allons effectuer un tour d'horizon de cette application permettant d'exécuter des containers Docker !

II. Synology : qu'est-ce que Container Manager ?

Le centre des paquets du système d'exploitation DSM contient une application nommée "Container Manager". Depuis environ un an et suite à la mise en ligne de DSM 7.2, il s'agit du nouveau de l'application "Docker". Son objectif est de vous permettre de créer et d'exécuter des containers Docker sur votre NAS Synology, ce qui ouvre de nombreuses possibilités, tout en consommant peu de ressources.

Vous pouvez créer vos propres containers à partir du référentiel d'images Docker où il y a des milliers d'images différentes. Ainsi, vous pouvez exécuter sur votre NAS diverses applications, au sein de containers isolés du système DSM. D'ailleurs, nous avions déjà mis en ligne des tutoriels pour déployer certaines applications :

Avant de commencer, vérifiez si votre modèle de NAS Synology est compatible avec le paquet "Container Manager" en consultant cette page :

III. Tour d'horizon de l'interface Container Manager

A. Installation de Container Manager

La première étape consiste à installer le paquet "Container Manager" car il n'est pas préinstallé sur DSM. Vous pourrez le trouver dans le "Centre de paquets".

Il suffit de cliquer sur "Tous les paquets", de rechercher le terme "container" pour localiser l'application "Container Manager", puis de cliquer sur le bouton "Installer".

Ensuite, l'application "Container Manager" sera accessible dans le menu principal de DSM.

B. Découverte de l'interface

L'interface de "Container Manager" contient un ensemble de sections accessibles dans un menu vertical présent sur la gauche. Lorsque l'application est lancée, nous arrivons dans la "Vue d'ensemble", qui est un tableau de bord proposant un aperçu global sur l'état de vos containers et les ressources consommées.

Pour le reste, voici à quoi correspondent les autres entrées présentes dans le menu latéral :

  • Projet

La section "Projet" est directement liée à l'utilisation de Docker Compose. Cet outil va faciliter le déploiement d'un nouveau conteneur grâce à un fichier de configuration au format YAML.

Autrement dit, vous importez le fichier "docker-compose.yml" dans Container Manager et vous validez pour lancer le téléchargement de l'image du conteneur, ainsi que la création et la configuration du conteneur en lui-même. Ceci vous évite de créer le conteneur pas-à-pas en suivant l'assistant de Synology. Désormais, j'ai pris l'habitude d'utiliser cette méthode pour déployer une nouvelle application conteneurisée sur un NAS Synology.

Il est important de préciser que cela améliore la gestion et la portabilité des conteneurs Docker. En effet, ce fichier de configuration contient toutes les informations relatives à l'exécution de ce conteneur : version de Docker nécessaire, image, mode du réseau, stockage, etc. De plus, un projet peut correspondre à une application multi-conteneurs.

  • Conteneur

La section "Conteneur" contient la liste de tous les conteneurs présents sur votre NAS Synology, ainsi que leur statut. C'est également ici que vous pouvez créer un nouveau conteneur à l'aide de l'assistant graphique de DSM, obtenir des détails sur un conteneur, modifier sa configuration, etc....

En passant par la section "Conteneur", vous effectuez la création manuelle d'un conteneur en faisant abstraction sur le fait de pouvoir utiliser Docker Compose (via la section "Projet"). Avant que l'application Docker devienne Container Manager, c'était la seule option.

  • Image

La section "Image" contient la liste de toutes les images Docker présentes sur votre NAS Synology. À chaque fois, plusieurs informations sont indiquées : nom de l'image, la version, la taille de l'image et l'heure de création de l'image Docker (ce qui ne correspond pas à la date et l'heure à laquelle vous avez effectué le téléchargement).

La première colonne indique le statut : quand c'est bleu, c'est que l'image est utilisée, c'est-à-dire associée à un conteneur, alors que quand c'est blanc, elle n'est pas utilisée.

  • Registre

La section "Registre" donne accès à la liste des images que vous pouvez télécharger sur votre NAS et exploiter ensuite dans des conteneurs Docker. Par défaut, Container Manager s'appuie sur le dépôt officiel "Docker Hub", mais en cliquant sur le bouton "Paramètres", vous pouvez ajouter des dépôts privés. Le nombre d'étoiles indique la popularité de l'image, c'est donc un indicateur important.

  • Réseau

La section "Réseau", comme son nom l'indique, donne accès à la gestion du réseau pour les conteneurs. Par défaut, Docker sur Synology est accompagné par deux réseaux : "host" et "bridge", mais il est possible d'en créer d'autres.

En mode "bridge", les conteneurs peuvent communiquer avec le réseau local sur lequel est connecté le NAS tout en étant isolé. Tous les conteneurs connectés à un même réseau bridge peuvent également communiquer entre eux. Docker s'occupe de faire le pont entre le réseau du conteneur et le réseau local. Il s'agit du type de réseau par défaut.

Un conteneur connecté en mode "host" partage directement le réseau de l'hôte Docker, c'est-à-dire du NAS. Le conteneur utilise l'adresse IP de l'hôte directement. Il n'y a pas un réseau virtuel permettant d'interconnecter plusieurs conteneurs comme avec le mode "bridge". En complément, nous avons le pilote "macvlan" qui permet au conteneur d'avoir son adresse MAC ainsi que son adresse IP, et ainsi d'être visible sur le réseau local comme un hôte à part entière (cette configuration est utile dans certains cas, notamment si le conteneur hébergeur un serveur PXE).

  • Journal

La section "Journal" contient l'historique des actions effectuées via l'interface de "Container Manager" : téléchargement d'une image, création d'un conteneur, création d'un projet, démarrage ou arrêt d'un conteneur, etc... Il est possible de filtrer le journal par sévérité (Infos, avertissements, erreurs).

IV. La gestion des données des conteneurs Docker

Chaque conteneur déployé a besoin de pouvoir stocker ses données. Je vous recommande de créer un sous-dossier par conteneur dans le répertoire "docker" créé par Container Manager. Par exemple, si vous souhaitez déployer "Homer" dans un conteneur, vous créez un répertoire "homer" sous "docker" et dans la configuration du conteneur Homer, il faudra pointer vers ce répertoire.

Voici un exemple :

Ceci vous permettra d'organiser données associées à vos conteneurs Docker déployés sur votre NAS Synology. Dans le répertoire du conteneur, il pourra y avoir d'autres dossiers (data, config, etc...) en fonction des besoins du conteneur en lui-même.

V. Créer un utilisateur dédié pour exécuter les conteneurs Docker

Lors de la configuration d'un conteneur Docker, notamment à partir d'une configuration Docker Compose, il est très fréquent de devoir préciser avec quel utilisateur nous souhaitons exécuter le conteneur.

Pour des raisons de sécurité, évitez d'exécuter le conteneur avec un compte utilisateur qui est administrateur du NAS. À la place, utilisez un compte utilisateur dédié pour Docker, par exemple, nommé "docker" et qui aura des permissions de lecture et écriture sur le répertoire "docker" et son contenu. C'est tout. Il n'aura pas accès aux autres applications, ni même à l'interface de DSM.

Remarque 1 : dans cet exemple, le compte "docker" sera membre du groupe "users" présent par défaut et nous lui refuserons l'accès à toutes les applications de façon explicite. Vous pouvez aussi créer un groupe "docker" et configurer les permissions sur le groupe, puis ajouter l'utilisateur "docker" uniquement à ce groupe à la place de "users".

Remarque 2 : toutes les images et les scénarios ne permettant pas de spécifier l'utilisateur avec lequel vous souhaitez exécuter le conteneur. En effet, cela dépend des privilèges requis par le conteneur.

Pour créer ce nouveau compte utilisateur, suivez la procédure suivante :

1 - Cliquez sur "Panneau de configuration" puis "Utilisateur et groupe".

2 - Cliquez sur le bouton "Créer" à partir de l'onglet "Utilisateur".

3 - Indiquez un nom, par exemple "docker", ainsi qu'une description et un mot de passe (que vous stockez dans votre coffre-fort de mots de passe). Cochez également l'option "Ne pas autoriser l'utilisateur à changer le mot de passe du compte".

4 - Ajoutez l'utilisateur au groupe "users" (ou à votre groupe "docker" si vous l'avez créé en amont).

5 - Attribuer les permissions de lecture et écriture sur le dossier partagé "docker" à cet utilisateur.

6 - Passez l'étape correspondante à la gestion du quota.

7 - Refusez l'accès, de façon explicite, à toutes les applications. Cet utilisateur n'a aucune raison d'avoir accès à l'interface DSM ou à d'autres fonctions.

8 - Poursuivez jusqu'à la fin pour créer l'utilisateur.

Voilà, le compte utilisateur pour Docker a été créé ! Il ne restera plus qu'à récupérer l'UID et le GID pour les spécifier dans un conteneur qui doit être exécuté avec ce compte. Pour cela, référez-vous à ce tutoriel :

Voici un exemple pour le mappage du répertoire de données dans un conteneur, ainsi que de l'utilisation de l'utilisateur "docker" pour exécuter un conteneur Docker :

VI. Déployer un premier conteneur

Pour que vous puissiez faire vos premiers pas avec le déploiement d'un conteneur Docker sur un NAS Synology, nous allons faire simple et déployer un conteneur basé sur l'image "httpd". Ceci correspond à un serveur web Apache2.

Nous allons créer un répertoire nommé "httpd" dans "docker". Puis, dans le répertoire "httpd", nous allons créer le répertoire "websites" qui sera destiné à stocker les données de notre site web statique. Notre conteneur sera basé sur l'image "httpd" visible sur l'image ci-dessous.

Désormais, nous allons pouvoir créer ce nouveau conteneur Apache2. Suivez les étapes suivantes :

1 - À partir de l'interface "Container Manager", cliquez sur "Projet" puis sur le bouton "Créer".

2 - Nommez ce projet "apache2_httpd" puis indiquez "/docker/httpd" comme chemin.

Vous devez également indiquer le contenu de votre fichier "docker-compose.yml". Pour déployer un serveur Apache à partir de l'image la plus récente ("image: httpd:latest") dans un conteneur nommé "httpd-website", voici le code à utiliser :

version: '3.9'
services:
  apache:
    image: httpd:latest
    container_name: httpd-website
    ports:
    - '9090:80'
    volumes:
    - /volume1/docker/httpd/websites:/usr/local/apache2/htdocs

Il y a également deux directives pour effectuer le mappage du port et du stockage :

  • Le conteneur sera accessible sur le port 9090 en externe, tandis que le port interne est 80 (http).
    ports:
    - '9090:80'
  • Le répertoire "/usr/local/apache2/htdocs" du conteneur et correspondant à la racine du serveur Web, sera mappé avec le répertoire "/volume1/docker/httpd/websites" du NAS.
    volumes:
    - /volume1/docker/httpd/websites:/usr/local/apache2/htdocs

Ce qui donne :

Remarque : pour obtenir le fichier de configuration Docker Compose d'une application, consultez la documentation officielle de l'application en question. En général, il y a des instructions puisque ce type de configuration tend à se démocratiser.

Vous pouvez continuer jusqu'à la fin et valider.

Container Manager va télécharger l'image associée à notre projet et construire le conteneur associé.

Une fois que ce sera terminé, le conteneur Apache2 sera actif et accessible. Le statut global du projet est visible dans "Projet", tandis que le statut du conteneur "httpd-website" est visible dans "Conteneur". Cette section permet d'afficher le statut par conteneur, car un projet peut regrouper plusieurs conteneurs. Dans la section "Image", celle correspondante au conteneur Apache2 a bien été téléchargée.

À partir de "Projet", si vous cliquez sur le nom du projet, vous pouvez obtenir des informations très intéressantes :

  • Conteneurs : la liste des conteneurs associés à ce projet avec le statut correspondant
  • Statistiques : les ressources consommées (CPU, RAM, réseau)
  • Configurations YAML : le code du fichier docker-compose.yml de ce projet. Vous pouvez l'éditer quand le projet (et donc les conteneurs) est arrêté.
  • Paramètres : publier ce conteneur via l'application Web Station de DSM. Pour avoir des paramètres avancés, il faut cliquer sur le conteneur via le menu "Conteneur", sans passer par "Projet".

Désormais, nous allons tenter d'accéder à la page d'accueil de notre serveur web Apache2.

À partir d'un navigateur, il est possible d'accéder à notre serveur web Apache2. Il suffit de saisir l'adresse IP du NAS, suivie par le numéro de port 9090. Actuellement, il n'y a aucun fichier, donc la page web affiche la directive "Index of /".

Dans le répertoire "websites" de votre NAS, vous pouvez déposer un ou plusieurs fichiers.

Par exemple, voici un fichier nommé "index.html" avec le code suivant :

<html>
<body>
<h1>Demo IT-Connect</h1>
</body>
</html>

Le fichier "index.html" a été copié dans le répertoire "/docker/httpd/websites". Désormais la page retournée est différente :

Notre conteneur Apache2 est opérationnel !

VII. Conclusion

J'espère que cet article d'introduction à Container Manager vous permettra de bien prendre en main la gestion des conteneurs Docker ! C'est une fonctionnalité très utile du système DSM et qui ouvre la porte à l'hébergement de nombreuses applications sur votre NAS ! Il y a beaucoup à dire et chaque conteneur peut avoir ses particularités, donc il y aura probablement des articles complémentaires à celui-ci, ainsi que des articles spécifiques pour déployer diverses applications.

N'hésitez pas à commenter cet article si vous avez des questions ou des idées d'amélioration.

The post NAS Synology – Prise en main de Container Manager pour créer des conteneurs Docker first appeared on IT-Connect.

NAS Synology – Comment auto-héberger Stirling PDF, la boite à outils PDF ultime ?

4 juin 2024 à 18:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à installer et à configurer la solution Stirling PDF à l'aide d'un conteneur Docker. Stirling PDF est une puissante boite à outils gratuite et open source pour gérer et manipuler vos fichiers PDF localement.

Accessible à partir d'un navigateur Web, cette solution va vous permettre d'effectuer des actions diverses et variées sur vos fichiers PDF, tout en gardant la maitrise de vos données. En effet, avec Stirling PDF, tout fonctionne entièrement sur votre machine locale, garantissant la confidentialité et le contrôle de vos données. Ceci pourra éviter que vos utilisateurs s'appuient sur des outils en ligne, au risque qu'il y ait une fuite de données par la même occasion.

Voici quelques-unes des fonctionnalités disponibles :

  • Fusionner ou diviser des documents PDF
  • Extraire des pages d'un document PDF
  • Réorganiser ou pivoter les pages d'un document PDF
  • Convertir des fichiers sources en PDF (image vers PDF, HTML vers PDF, Markdown vers PDF, etc.)
  • Convertir un fichier PDF dans un autre format (PDF vers image, PDF vers Word, PDF vers HTML, etc.)
  • Compresser un document PDF
  • Extraire les images ou ajouter une image
  • Modifier les métadonnées d'un document PDF
  • Signer un document PDF (avec un certificat numérique ou une image de signature)
  • Ajouter ou supprimer le mot de passe d'un PDF
  • Ajouter un filigrane sur un document PDF
  • Visionneuse de documents PDF
  • Reconnaissance de caractères (OCR)
  • Etc...

Toutes ces fonctionnalités sont gratuites puisque cette application est libre et open source. Il intègre de nombreuses fonctionnalités dont certaines parfois réservées à des outils premium (payants).

Stirling PDF - Fonctionnalités

Stirling PDF peut être installé sur une machine Windows, en local, car des exécutables sont proposés sur le GitHub officiel. Ceci implique l'installation de Java sur la machine. Pour ma part, je préfère m'orienter vers un déploiement dans un conteneur Docker, sur un NAS Synology, afin de mettre à disposition l'application à X utilisateurs. Ceci est d'autant plus pertinent que l'application est accessible à partir d'un navigateur, via l'URL de votre choix.

Pour en savoir plus ou télécharger l'exécutable pour Windows, consultez le GitHub du projet :

Sur le même sujet :

II. Installer Stirling PDF sur un NAS Synology

Pour effectuer l'installation sur un NAS Synology, nous allons utiliser l'application "Container Manager" (Docker) afin de pouvoir utiliser un fichier de configuration Docker Compose. Ceci vous permet d'utiliser cette configuration facilement pour déployer le conteneur sur d'autres plateformes.

Tout d'abord, nous allons créer l'arborescence de dossiers pour accueillir les données de Stirling PDF. Sous le répertoire "docker", voici les répertoires à créer :

  • stirling-pdf
    • trainingData
    • extraConfigs

Le répertoire "trainingData" est utile uniquement si vous envisagez d'utiliser la fonction liée à l'OCR.

Ce qui donne :

Ensuite, lancez l'application "Container Manager" (Docker) sur votre NAS Synology. Créez un nouveau projet :

  • Projet > Créer

Commencez par donner un nom au projet, par exemple "stirling-pdf". Puis, indiquez le chemin correspondant au dossier précédemment créé, à savoir "/docker/stirling-pdf".

Puis, sélectionnez "Créer un fichier docker-compose.yml" afin de pouvoir personnaliser le déploiement de ce projet basé sur l'image Docker "frooodle/s-pdf" dans sa dernière version (vis-à-vis du tag "latest"). Voici un aperçu du code de configuration Docker Compose :

Pour cet exemple, je vais utiliser la configuration Docker Compose suivante :

version: '3.3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    ports:
      - '8080:8080'
    volumes:
      - /volume1/docker/stirling-pdf/trainingData:/usr/share/tessdata #Required for extra OCR languages
      - /volume1/docker/stirling-pdf/extraConfigs:/configs
#      - /location/of/customFiles:/customFiles/
#      - /location/of/logs:/logs/
    environment:
      - DOCKER_ENABLE_SECURITY=true
      - SECURITY_ENABLE_LOGIN=true
      - SECURITY_INITIALLOGIN_USERNAME=pdf
      - SECURITY_INITIALLOGIN_PASSWORD=IT-Connect
      - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
      - LANGS=fr_FR

Quelques explications s'imposent :

  • Le conteneur sera accessible sur le port "8080" puisqu'il est mappé sur le port "8080:8080" (port externe côté NAS : port interne dans le conteneur). Vous pouvez adapter cette valeur (premier numéro de port) si besoin, parce qu'un seul conteneur peut occuper chaque port.
  • Sous "volumes", indiquez les chemins vers les répertoires "trainingData" et "extraConfigs" créé précédemment. Les répertoires "customFiles" et "Logs" sont facultatifs. Ici, ces deux lignes sont commentées.
  • La directive "SECURITY_ENABLE_LOGIN=true" sert à activer la page de connexion sur Stirling PDF. Autrement dit, il conviendra de s'authentifier avant d'accéder à l'application. Ceci implique aussi de configurer la directive "DOCKER_ENABLE_SECURITY=true".
  • La directive "SECURITY_INITIALLOGIN_USERNAME=pdf" sert à créer un utilisateur par défaut nommé "pdf"
  • La directive "SECURITY_INITIALLOGIN_PASSWORD=IT-Connect" sert à attribuer le mot de passe "IT-Connect" à l'utilisateur par défaut.
  • La directive "INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false" sert à indiquer qu'il ne faut pas télécharger l'application Calibre sur Stirling PDF. Elle permet la conversion de PDF vers/depuis un livre et la conversion HTML avancée. Activez cette option si besoin.
  • La directive "LANGS=fr_FR" sert à précise la langue pour la bibliothèque de polices personnalisées à installer pour la conversion de documents. Dans tous les cas, l'interface de l'application sera disponible en plusieurs langues, dont le français.

Ci-dessous, un aperçu en tant qu'image.

Une fois que c'est fait, poursuivez jusqu'à la fin de l'assistant pour lancer la création du projet. L'image Docker va être téléchargée et le conteneur configuré puis exécuté.

L'application Stirling PDF est désormais exécutée au sein du conteneur Docker. Stirling PDF est une application assez gourmande en RAM, probablement à cause de son lien étroit avec Java. Sur mon NAS, le conteneur consomme entre 400 et 700 Mo de RAM, ce qui n'est pas neutre.

Dans la suite de cet article, nous verrons comment utiliser et configurer Stirling PDF.

III. Découverte de Stirling PDF

A. Première connexion

L'accès à l'application s'effectue à partir d'un navigateur Web. Il suffit de préciser l'adresse IP ou le nom de domaine du NAS, suivi du port "8080", comme ceci :

http://192.168.1.148:8080/

Si vous avez activé l'authentification, vous devez vous connecter avec le compte créé par défaut (selon les informations définies dans le Docker Compose).

Voilà, vous êtes connecté à Stirling PDF ! Vous pouvez profiter de l'ensemble des outils intégrés à cette fabuleuse boite à outils !

Tuto Stirling PDF

Que faire ensuite ?

B. Gestion des utilisateurs

Avant d'évoquer les outils en eux-mêmes, je vous recommande de changer le mot de passe du compte utilisateur créé par défaut. Vous pouvez aussi créer d'autres utilisateurs. Pour accéder à la gestion de votre compte, cliquez sur "Paramètres" en haut à droite (icône en forme de roue crantée) puis cliquez sur "Paramètres du compte".

Ici, vous pourrez changer le nom d'utilisateur et le mot de passe du compte.

Si vous descendez tout en bas de la page, vous pourrez cliquer sur le bouton "Paramètres d'administration - Voir et ajouter des utilisateurs". Ceci vous permet de créer d'autres comptes utilisateurs, avec différents niveaux de permissions : administrateur, utilisateur, etc.

Libre à vous de créer un ou plusieurs comptes. L'intérêt étant principalement de gérer l'accès à l'application. À ma connaissance, Stirling PDF n'a pas vocation à permettre à chaque utilisateur de gérer une bibliothèque de documents PDF.

À tout moment, vous pourrez créer, modifier ou supprimer des utilisateurs.

C. Utilisation des outils

Nous n'allons pas passer en revue l'ensemble des outils, car l'interface est simple d'utilisation et il y a énormément de possibilités. Il vous suffit de choisir l'outil de votre choix à partir du menu principal, ou de la page d'accueil. Vous pouvez aussi utiliser la fonction de recherche pour gagner du temps, ainsi que mettre certains outils en favoris.

Tuto Stirling PDF

La fonction "Fusionner plusieurs PDF" vous permet, comme son nom l'indique, de fusionner (concaténer) plusieurs documents PDF en un seul fichier.

Il y a également un outil multifonction qui donne accès à quelques fonctions basiques dans une même interface. Vous chargez un fichier, et ensuite, vous pouvez intervenir des pages, effectuer des rotations de pages, etc... Selon vos besoins.

À vous d'explorer les différents outils au fur et à mesure que les besoins se présenteront.

D. Aller plus loin dans la configuration

Est-ce qu'il y a des paramètres de configuration supplémentaires ? La réponse est oui. La configuration de Stirling PDF s'appuie sur un fichier au format YAML nommé "settings.yml". Il est situé à cet emplacement :

/docker/stirling-pdf/extraConfigs/settings.yml

Il permet de configurer l'application plus en profondeur. Nous pouvons définir un nom personnalisé pour l'application, mais aussi configurer l'authentification OAuth2. Ceci peut s'avérer utile pour s'appuyer sur un service tiers pour l'authentification des utilisateurs (Google, GitHub, KeyCloak).

Nous constatons aussi la présence de deux options ayant pour objectif de protéger l'interface de connexion des attaques par brute force. En effet, il y a un verrouillage de comptes activé par défaut : 5 mauvaises tentatives d'authentification à suivre vont engendrer le verrouillage d'un compte pendant 2 heures.

  loginAttemptCount: 5 # lock user account after 5 tries
  loginResetTimeMinutes: 120 # lock account for 2 hours after x attempts

Voici un aperçu de ce fichier de configuration que vous pouvez modifier selon vos besoins :

Stirling PDF - Fichier de configuration

Pour aller plus loin, vous pouvez aussi publier l'application sur un nom de domaine à l'aide du reverse proxy de DSM :

IV. Conclusion

D'une part, nous avons appris à installer Stirling PDF dans un conteneur Docker à partir d'un NAS Synology, et d'autre part, nous avons vu comment configurer et utiliser rapidement cette boite à outils PDF.

Stirling PDF est une excellente application qui a totalement sa place dans les entreprises, car elle répond à de nombreux besoins des utilisateurs. Le déploiement est relativement rapide et il n'y a aucun coût de licence à prévoir !

Qu'en pensez-vous ?

The post NAS Synology – Comment auto-héberger Stirling PDF, la boite à outils PDF ultime ? first appeared on IT-Connect.

Windows 11 24H2 – Ce qui change pour accéder aux partages sur un NAS (en SMB)

30 mai 2024 à 14:00

I. Présentation

La sortie de Windows 11 24H2 est proche et certains changements effectués par Microsoft pourraient perturber l'accès à des fichiers partagés sur les NAS. En effet, la configuration par défaut des accès réseau basés sur l'utilisateur du protocole SMB a été renforcée.

Ceci va impacter l'accès aux données hébergées sur des partages de fichiers, notamment sur les NAS, que ce soit des modèles de chez Synology, Asustor, QNAP ou encore TerraMaster. Microsoft a mis en ligne un article à ce sujet pour avertir ses utilisateurs. Nous allons évoquer ces changements ainsi que les solutions possibles.

II. Windows 11 24H2 : ce qui change avec le protocole SMB

A. Les modifications apportées par Microsoft

Microsoft a apporté deux changements importants dans la configuration des connexions SMB sur Windows 11 24H2. L'objectif étant de renforcer la sécurité de Windows et de lutter contre certaines attaques associées au protocole SMB (dont le "SMB relay").

  • Par défaut, la signature SMB sera requise et obligatoire pour toutes les connexions. Dans le cadre d'une connexion SMB, où le client est représenté par le PC Windows 11 et le serveur par le NAS (ou un autre périphérique), si le serveur SMB ne prend pas en charge la signature des échanges, alors la connexion échouera.

"Nous ne savons pas faire la différence entre un NAS qui n'a pas activé la signature SMB et un serveur malveillant qui ne veut pas que la signature SMB soit activée.", voilà une phrase qui résume bien l'intérêt d'avoir la signature SMB activée, et le problème de ne pas l'utiliser.

  • Le basculement vers l'accès invité, appelé "guest fallback", lors de la connexion à des partages SMB sera désactivé sur Windows 11 Pro. L'accès invité sert à se connecter sur un partage réseau en tant qu'invité, c'est-à-dire de façon anonyme, sans avoir besoin de préciser un identifiant et un mot de passe. Cette possibilité va être désactivée.

À ce sujet, Microsoft précise : "La signature SMB est disponible dans Windows depuis 30 ans mais, pour la première fois, elle est désormais requise par défaut pour toutes les connexions. La fonction d'invité est désactivée dans Windows depuis 25 ans et la fonction SMB guest fallback est désactivée depuis Windows 10 dans les éditions Enterprise, Education et Pro for Workstation."

Ces changements concernent principalement les connexions SMB sortantes depuis votre appareil Windows 11 vers d’autres serveurs SMB. Autrement dit, lorsque votre appareil Windows 11 se connecte à un autre serveur, notamment un partage réseau situé sur un NAS.

B. Les erreurs que vous pouvez rencontrer

Microsoft a précisé un ensemble de messages d'erreur et de codes d'erreur que vous pouvez rencontrer avec Windows 11 24H2 lors de l'accès à un NAS. Voici les messages en question.

Si la signature SMB n'est pas prise en charge par le NAS.

  • 0xc000a000
  • -1073700864
  • STATUS_INVALID_SIGNATURE
  • The cryptographic signature is invalid / La signature cryptographique n'est pas valide

Si le NAS exige une connexion en tant qu'invité (ce qui est plus rare).

  • You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network / Vous ne pouvez pas accéder à ce dossier partagé car les règles de sécurité de votre entreprise bloquent l'accès des invités non authentifiés. Ces stratégies permettent de protéger votre ordinateur contre les périphériques dangereux ou malveillants présents sur le réseau.
  • 0x80070035
  • 0x800704f8
  • The network path was not found / Le chemin d'accès au réseau n'a pas été trouvé
  • System error 3227320323 has occurred / L'erreur système 3227320323 s'est produite

Que faire pour résoudre ces erreurs ?

III. Comment configurer son NAS ?

Nous n'allons pas voir comment autoriser l'accès invité, car je considère que le risque de sécurité est trop important, autant pour votre appareil Windows 11 que pour les données hébergées sur votre NAS. Néanmoins, nous allons nous intéresser à la signature SMB.

Vous avez deux solutions :

  • Configurer le NAS pour activer la signature SMB et ainsi permettre la connexion des appareils Windows 11 24H2 tout en renforçant la sécurité des accès.
  • Configurer l'appareil Windows 11 24H2 pour ne pas rendre la signature SMB obligatoire, ce qui d'avoir une configuration identique à celle de Windows 11 23H2 et les versions antérieures.

A. Activer la signature SMB sur un NAS Synology

La signature SMB est prise en charge par le système DSM des NAS Synology. Il s'agit d'une fonctionnalité supportée dans DSM 6.2 et les versions supérieures (bien que pas située au même endroit dans toutes les versions). Voici où trouver cette option dans DSM 7.2.

Connectez-vous à DSM et accédez au "Panneau de configuration" afin de parcourir l'interface de cette façon :

1 - Cliquez sur "Services de fichiers".

2 - Cliquez sur l'onglet "SMB".

3- Cliquez sur le bouton "Paramètres avancés".

4 - Configurez l'option "Activer la signature serveur" de façon à choisir le mode "Défini par le client". La valeur par défaut est "Désactiver". Ceci permettra d'accepter les connexions des appareils Windows 11 24H2, tout en continuant d'autoriser les clients qui ne supportent pas la signature SMB, ou pour lesquels, elle n'est pas activée. Dans un second temps, il pourrait être utile de sélectionner le mode "Forcer".

Il ne vous reste plus qu'à cliquer sur "Sauvegarder" pour valider.

Ce simple changement va permettre aux appareils Windows 11 24H2 de se connecter à un partage de fichiers situés sur un NAS Synology, via le protocole SMB. À condition, bien entendu, de s'authentifier avec un nom d'utilisateur et un mot de passe. La configuration du NAS, c'est-à-dire du serveur SMB, est l'option à privilégiée.

Remarque : la signature SMB est prise en charge sur d'autres marques de NAS. L'idée générale reste la même, donc "il suffira" de naviguer dans les menus pour trouver une option équivalente à celle présentée ici.

B. Activer ou désactiver la signature SMB sur Windows 11

Pour activer ou désactiver la signature SMB sur Windows 11, il convient d'éditer la stratégie de sécurité locale ou d'utiliser PowerShell. Cette action doit être effectuée uniquement si le NAS, ou en tout cas le serveur SMB, ne supporte pas la signature SMB.

Voici la marche à suivre à partir de l'interface graphique :

  • Appuyez sur Win + R, tapez "gpedit.msc"et appuyez sur Entrée.
  • Dans l’arborescence, accédez à Configuration de l’ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Options de sécurité.
  • Double-cliquez sur le paramètre nommé "Client réseau Microsoft : communications signées numériquement (toujours)", ou "Microsoft network client: Digitally sign communications (always)", en anglais.
  • Sélectionnez "Désactivé" et cliquez sur "OK".

Ce qui donne :

Windows 11 24H2 - Désactiver signature SMB

Remarque : ce paramètre est configurable dans une stratégie de groupe (GPO) Active Directory afin de modifier la configuration sur un ensemble d'appareils.

Si vous souhaitez opérer en ligne de commande, vous pouvez utiliser les commandes suivantes pour configurer la signature SMB à l'aide de PowerShell. Commencez par ouvrir une console PowerShell en tant qu'administrateur.

La commande ci-dessous sert à indiquer si votre PC est actuellement configuré pour exiger ou non la signature SMB. Si la valeur retournée "true", c'est que c'est le cas. Sinon, la valeur "false" sera retournée.

Get-SmbClientConfiguration | fl requiresecuritysignature

Ensuite, pour désactiver la signature SMB, utilisez cette commande. Appuyez sur "T" puis sur "Entrée" pour valider.

Set-SmbClientConfiguration -RequireSecuritySignature $false

Pour activer la signature SMB, voici la commande à utiliser :

Set-SmbClientConfiguration -RequireSecuritySignature $true

Ce changement va permettre à votre appareil Windows 11 24H2 de se connecter à un partage SMB, en faisant une croix sur la signature SMB.

IV. Conclusion

Voilà, nous venons de traiter cette problématique intéressante et qui devrait perturber de nombreux utilisateurs, que ce soit les particuliers ou les professionnels. En effet, les NAS sont très répandues et nous sommes susceptibles de les croiser aussi bien dans une baie informatique que dans un salon...

Ce qui est évoqué dans cet article, en prenant le cas d'un NAS, s'applique aussi pour Windows Server. En fait, la signature SMB doit être activée sur Windows Server pour que l'appareil Windows 11 24H2 puisse se connecter à un partage de fichiers. Ce cas de figure sera abordé dans un autre article.

La configuration évoquée ici est celle attendue dans la version stable de Windows 11 24H2. De mon côté, j'ai installé une machine Windows 11 24H2 en version "Preview" et la signature SMB n'était pas forcée : j'ignore pourquoi. Si vous faites des tests de votre côté, n'hésitez pas à faire un retour en commentaire.

Enfin, voici le lien vers l'article Microsoft :

The post Windows 11 24H2 – Ce qui change pour accéder aux partages sur un NAS (en SMB) first appeared on IT-Connect.

NAS QNAP – CVE-2024-27130 : un exploit PoC a été publié pour cette faille de sécurité zero-day

21 mai 2024 à 08:47

Des chercheurs en sécurité ont effectué un gros travail de recherche de vulnérabilités sur le système QTS utilisé par les NAS QNAP. Ils sont parvenus à identifier 15 failles de sécurité, plus ou moins sérieuse ! Faisons le point !

Les chercheurs en sécurité de WatchTowr Labs ont mis en ligne un rapport au sujet de 15 vulnérabilités qu'ils ont découvertes dans le système QTS de QNAP. Enfin, il ne s'agit pas du seul système analysé puisqu'ils ont également analysé les versions QTS Hero et QuTS Cloud.

Pour le moment, 11 vulnérabilités ne sont toujours pas corrigées, et certaines sont encore sous embargo, alors que QNAP a été averti entre le 8 décembre 2023 et le 8 janvier 2024. Voici la liste des CVE patchées par QNAP : CVE-2023-50361, CVE-2023-50362, CVE-2023-50363 et CVE-2023-50364.

La faille de sécurité CVE-2024-27130

L'une de ces failles de sécurité, associée à la référence CVE-2024-27130, mérite une attention particulière. Cette vulnérabilité de type "stack buffer overflow" présente dans la fonction "No_Support_ACL" du fichier "share.cgi" permet à un attaquant d'exécuter du code à distance sur le NAS QNAP. Néanmoins, l'exploitation n'est pas simple, car l'attaquant doit pouvoir se connecter au NAS QNAP, avec un compte lambda, de façon à manipuler la fonction de partage de fichiers.

À ce jour, cette faille de sécurité est connue publiquement et elle n'a pas été corrigée par QNAP alors qu'elle a été reportée au fabricant de NAS le 3 janvier 2024 : une belle faille de sécurité zero-day.

À chaque fois, QNAP a demandé un délai supplémentaire à WatchTowr Labs. Mais, désormais, le temps presse... Les chercheurs en sécurité de WatchTowr Labs quant à eux, ont mis en ligne un exploit PoC pour cette même vulnérabilité : il est disponible sur ce GitHub. Tous les détails techniques sont fournis pour indiquer comment l'exploiter, bien qu'elle ne soit pas corrigée.

En exploitant cette faille, les chercheurs de WatchTowr Labs sont parvenus à créer un compte nommé "watchtowr" sur le NAS et à l'ajouter au fichier "sudoers" pour lui permettre d'élever ses privilèges sur le NAS.

Désormais, le correctif de QNAP est attendu, que ce soit pour cette vulnérabilité ou toutes les autres non corrigées pour le moment.

Source

The post NAS QNAP – CVE-2024-27130 : un exploit PoC a été publié pour cette faille de sécurité zero-day first appeared on IT-Connect.

NAS Synology – Surveillez votre connexion Internet avec Speedtest Tracker

19 mai 2024 à 18:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à déployer l'application Speedtest Tracker sur un NAS Synology, à l'aide d'un conteneur Docker ! Cette application sert à effectuer un suivi d'une connexion Internet grâce à l'exécution de tests de débit réguliers via le service Speedtest by Ookla.

Chaque test de débit sera enregistré dans une base de données, ce qui permettra d'avoir des graphes et un historique des performances de votre connexion à Internet. Vous pouvez planifier les tests de débit et configurer des seuils d'alertes afin d'être notifié par e-mail en cas de problème de performances. Ceci est configurable pour le débit montant et le débit descendant, mais aussi pour le temps de réponse (ping) s'il est trop élevé. Au-delà des alertes par e-mail, vous pouvez être notifié sur Discord, Telegram, etc... via un système de Webhook.

Aujourd'hui, nous allons apprendre à installer Speedtest Tracker sur un NAS Synology grâce à la création d'un conteneur Docker dans Container Manager.

II. Installer l'application Speedtest Tracker sur son NAS

Avant de créer le conteneur, nous allons préparer un répertoire pour stocker ses données. Au sein du répertoire "docker", nous allons créer le répertoire "speedtest-tracker" afin de maintenir la logique habituelle : un répertoire par conteneur.

Ce qui donne :

Ensuite, dans le répertoire "speedtest-tracker", créez un répertoire nommé "data" qui servira à stocker les données du conteneur. De plus, sous le répertoire "data", créez un dossier nommé "keys" qui servira à stocker le certificat TLS et sa clé privée. Ceci vous permet de charger votre propre certificat si vous le souhaitez, sinon, c'est un certificat auto-signé qui sera stocké ici.

/docker/speedtest-tracker
                      ---- data
                      ------- keys

Lorsque les répertoires sont créés, vous pouvez lancer l'application Container Manager (Docker) pour créer un nouveau conteneur à partir d'un code de configuration Docker Compose.

Dans "Container Manager", cliquez sur "Projet" puis sur "Créer". Nommez ce projet "speedtest-tracker" puis indiquez le répertoire "/docker/speedtest-tracker" comme chemin pour ce conteneur. Autrement dit, l'option "Chemin" doit avoir pour valeur "/docker/speedtest-tracker". Comme ceci :

En ce qui concerne la "Source", choisissez l'option "Créer un fichier docker-compose.yml". Une zone de texte apparaît : qu'allons-nous écrire ici ? Nous allons récupérer le code du fichier "docker-compose.yml" disponible sur le site officiel du projet pour ensuite l'adapter.

Il y a plusieurs options pour stocker les données de l'application : SQLite, MySQL et PostgreSQL. Ici, nous allons choisir l'option "SQLite" qui est la plus légère, mais vous pouvez adapter le fichier Docker Compose, si besoin.

Voici le code à copier-coller par défaut :

version: '3.4'
services:
    speedtest-tracker:
        container_name: speedtest-tracker
        ports:
            - 8080:80
            - 8443:443
        environment:
            - PUID=1000
            - PGID=1000
            - DB_CONNECTION=sqlite
        volumes:
            - /path/to/data:/config
            - /path/to-custom-ssl-keys:/config/keys
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped

Désormais, nous allons devoir modifier plusieurs options :

  • Les deux valeurs sous "volumes" pour faire le mappage vers les répertoires "data" et "data/keys" créés précédemment.
  • Les deux valeurs nommées "PUID" et "PGID" car il s'agit des identifiants uniques correspondants au compte utilisateur à utiliser pour exécuter le conteneur. Ici, l'utilisateur "docker" de mon NAS est spécifié en indiquant son UID "1027" et son GID "100".

Voici un lien utile si vous ne savez pas quoi indiquer pour "PUID" et "GUID" :

Vous pouvez aussi adapter les numéros de ports pour les connexions HTTP et HTTPS. Ici, les ports externes 8081 (le port 8080 est déjà utilisé sur mon NAS) et 8443 sont utilisés.

Ce qui donne le fichier suivant :

version: '3.4'
services:
    speedtest-tracker:
        container_name: speedtest-tracker
        ports:
            - 8081:80
            - 8443:443
        environment:
            - PUID=1027
            - PGID=100
            - DB_CONNECTION=sqlite       
        volumes:
            - /volume1/docker/speedtest-tracker/data:/config
            - /volume1/docker/speedtest-tracker/data/keys:/config/keys
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped

Une fois le fichier Docker Compose prêt, vous pouvez continuer jusqu'à la fin pour créer le conteneur.

L'image "lscr.io/linuxserver/speedtest-tracker" sera téléchargée à partir du Docker Hub et utilisée pour exécuter le conteneur.

Voilà, le conteneur Docker "speedtest-tracker" est actif !

En principe, vous pouvez vous connecter à l'application avec votre navigateur :

https://<adresse IP du NAS>:8443

Vous devriez arriver sur la page de connexion à l'application :

Pour vous connecter, utilisez les informations suivantes :

Bienvenue sur Speedtest Tracker !

III. Utilisation et configuration de Speedtest Tracker

A. Modifier le mot de passe du compte admin

La première des choses à effectuer, c'est personnaliser le compte administrateur créé par défaut afin de modifier son nom et son mot de passe. Cliquez sur "Users" à gauche dans l'interface de Speedtest Tracker, puis cliquez sur le nom "Admin".

Un formulaire sera visible et vous permettra de personnaliser le nom, l'adresse e-mail et le mot de passe. Ceci est important pour sécuriser l'accès à votre application. Par ailleurs, via le bouton "New User", vous pouvez créer un nouveau compte admin ou utilisateur lambda.

B. Effectuer un test de débit

Retournez sur le "Dashboard" afin de cliquer sur le bouton "Run speedtest", puis, "Ookla speedtest" pour lancer un test de débit ! Patientez un peu, puis actualisez la page pour visualiser le résultat de ce speed test ! Il sera immédiatement visible dans le tableau de bord, dans les graphes, et aussi en détail en cliquant sur "Results" dans le menu de gauche.

C. Planifier un test de débit

Pour planifier un test de débit, vous devez cliquer sur "General" sous "Settings". Cette section de l'application donne accès à tous les paramètres de configuration, y compris la possibilité de définir le fuseau horaire, ainsi que la planification d'un speedtest.

  • Speedtest schedule : planifiez un test de débit, en utilisant le format "crontab" de Linux. L'exemple ci-dessous permet de lancer un test de débit toutes les 4 heures. Attention à ne pas effectuer des tests de débit trop fréquent, car si le serveur Speedtest est trop sollicité, il peut être banni par les opérateurs.
0 */4 * * *
  • Prune results older than : supprimez les résultats plus anciens que X jours. Si vous indiquez "0", les anciens tests ne seront jamais supprimés.
  • Speedtest servers : sélectionnez un ou plusieurs serveurs à utiliser pour effectuer le test de débit. Si vous ne sélectionnez rien, Speedtest sélectionnera le meilleur serveur à chaque fois.

Ce qui donne :

D. Configurer les seuils d'alertes

La section "Thresholds" située dans le menu de gauche permet de configurer différents seuils d'alertes : débit montant, débit descendant et temps de réponse au ping. Ceci permettra de recevoir des notifications par e-mail (ou par un autre moyen de communication) en cas d'incidents, selon les seuils définis par vos soins.

Ici, les seuils d'alertes sont positionnés à 500 Mbps pour le débit montant et le débit descendant, et à 100 ms pour le temps de réponse au ping. En principe, sur une connexion en fibre optique (FTTH), le temps de réponse au ping ne dépasse pas 20 ms. Adaptez ces valeurs en fonction de votre type de connexion et du niveau de service attendu (sur de l'ADSL, le ping sera plus élevé).

E. Configurer les notifications par e-mail

Pour finir, nous allons voir comment configurer les notifications par e-mail. La configuration est un peu plus complexe, car nous allons devoir configurer les variables d'environnement de notre conteneur.

Vous devez modifier le fichier ".env" situé à la racine du dossier "data" de votre conteneur. L'éditeur de texte de DSM ne permettra pas de l'éditer en ligne, à moins de changer le nom du fichier : passez de ".env" à ".txt", par exemple. Une fois la modification terminée, il conviendra de remettre le nom d'origine.

Dans ce fichier, vous devez configurer le serveur SMTP à utiliser pour envoyer les e-mails en définissant un ensemble de variables :

MAIL_MAILER=smtp
MAIL_HOST=smtp.mail.fr
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=SuperMotDePasseCompteEmail
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="Speedtest Tracker - NAS"  

Ici, le serveur "smtp.mail.fr" sera utilisé, sur le port 465 avec une connexion TLS. L'authentification sera effectuée à l'aide du compte "[email protected]" dont le mot de passe est "SuperMotDePasseCompteEmail". L'adresse e-mail de l'expéditeur est "[email protected]" et le nom utilisé "Speedtest Tracker - NAS".

Pour obtenir de l'aide supplémentaire pour la configuration de ces variables, vous pouvez lire cette page de la documentation.

Voici un exemple :

Une fois les modifications effectuées :

  • Enregistrez le fichier.
  • Redonnez-lui son nom d'origine (.env).
  • Arrêtez le projet "speedtest-tracker" dans Container Manager.
  • Démarrez le projet "speedtest-tracker" dans Container Manager.

Voilà, les informations pour le SMTP doivent être prises en compte. Si elles sont correctes, l'envoi d'e-mail fonctionnera.

Pour finir, vous devez activer les notifications par e-mail. Rendez-vous sur "Notifications" sous le menu "Settings" de l'interface web.

Cochez l'option "Enable mail notifications", ainsi que celle nommée "Notify on threshold failures" afin de recevoir une alerte par e-mail en cas de problème (selon les seuils configurés). L'option "Notify on every speedtest run" permet de recevoir un e-mail à chaque fois qu'un test de débit est exécuté. Pensez à ajouter un ou plusieurs destinataires dans la partie inférieure via le bouton "Add to recipients".

Cliquez sur "Test mail channel" pour effectuer un test : vous devriez recevoir un e-mail !

Par la suite, si une alerte est déclenchée, vous allez recevoir une notification. Voici un exemple :

Remarque : il y a un bug actuellement, car le bouton "View Results" présent dans l'e-mail renvoie vers une adresse en localhost, donc cela n'aboutit pas.

IV. Conclusion

L'application Speedtest Tracker est une application que vous pouvez auto-héberger sur un NAS ou un autre serveur afin de surveiller votre connexion Internet ! Sur un NAS, à son domicile, cette application a totalement sa place ! En entreprise, elle peut être utilisée aussi, notamment en l'absence de système de supervision plus complet.

Le tableau de bord est très sympa et le fait d'avoir un historique des tests de débit permet de suivre dans le temps les performances de sa connexion à Internet. Ceci est plus pertinent, plutôt que d'effectuer un test de débit de temps en temps.

Pour aller plus loin, je vous recommande de publier cette application avec le reverse proxy de DSM, ce qui permettra d'avoir un certificat TLS et d'utiliser un nom de domaine. Référez-vous à ce tutoriel :


The post NAS Synology – Surveillez votre connexion Internet avec Speedtest Tracker first appeared on IT-Connect.

NAS Synology – Comment installer un serveur PXE iVentoy dans un conteneur Docker

15 mai 2024 à 18:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à déployer iVentoy dans un container Docker sur un NAS Synology, à l'aide de l'application Container Manager. Ceci va permettre d'avoir un serveur PXE sur notre NAS Synology ! iVentoy prend en charge des images ISO Windows, Linux, etc.

Pour en savoir plus sur le serveur PXE iVentoy, consultez cet article :

Avant de commencer, veuillez installer le paquet "Container Manager" (Docker) sur votre NAS Synology. Ici, un NAS sous DSM 7.2 est utilisé.

II. Installer iVentoy sur un NAS Synology

A. Créer un répertoire pour le conteneur iVentoy

Nous allons commencer par créer un répertoire dédié pour ce conteneur, ainsi que plusieurs sous-répertoires nécessaires pour transférer des données à l'application. Ainsi, dans le répertoire "docker", nous allons créer un répertoire nommé "iventoy". Au sein de celui-ci, trois autres répertoires sont à créer : "data", "iso", "log".

Ce qui donne l'arborescence suivante :

B. Copier les fichiers "data" d'iVentoy

Au sein du répertoire "data" que nous venons de créer, nous devons stocker deux fichiers : "iventoy.dat" et "mac.db". Sans cela, le conteneur ne fonctionnera pas. Où faut-il récupérer ces fichiers ? Bonne question ! Vous devez télécharger la dernière version d'iVentoy sur GitHub :

Dans l'archive obtenue, vous pourrez trouver un dossier nommé "data" avec ces deux fichiers. Il vous suffit de les envoyer vers le NAS. Comme ceci :

En complément, dans le dossier "iso", vous pouvez copier-coller les images ISO des systèmes d'exploitation que vous souhaitez déployer par le réseau avec iVentoy.

C. Créer le conteneur iVentoy

Désormais, nous allons pouvoir créer le conteneur iVentoy à partir de Container Manager. Cliquez sur "Projet" puis créez un nouveau projet.

Nommez ce projet "iventoy" et sélectionnez le chemin "/docker/iventoy" correspondant au répertoire racine créé précédemment. De plus, sélectionnez la valeur "Créer un fichier docker-compose.yml" pour l'option "Source" puisque nous allons utiliser une configuration Docker Compose.

Que faut-il indiquer ici ? Comme point de départ, nous allons utiliser la configuration Docker Compose disponible sur cette page GitHub. Mais, nous devons modifier cette configuration, car elle n'est pas adaptée pour Synology.

Nous devons personnaliser cette configuration, notamment car iVentoy doit communiquer en direct avec notre réseau local. En effet, comme il joue le rôle de serveur DHCP et serveur PXE, il doit être joignable par les hôtes du réseau.

Pour la couche réseau de ce conteneur, nous allons utiliser le pilote macvlan de Docker pour répondre à ce besoin : notre conteneur iVentoy aura une adresse IP statique sur notre réseau local. Un réseau nommé "macvlan" sera créé dans Container Manager.

Voici le code complet et, à la suite, des explications supplémentaires :

---
version: '3.9'
services:
  iventoy:
    image: ziggyds/iventoy:latest
    container_name: iventoy
    restart: always
    privileged: true #must be true
    ports:
      - 26000:26000
      - 16000:16000
      - 10809:10809
      - 67:67/udp
      - 69:69/udp
    volumes:
      - /volume1/docker/iventoy/iso:/app/iso
      - /volume1/docker/iventoy/data:/app/data
      - /volume1/docker/iventoy/log:/app/log
    environment:
      - AUTO_START_PXE=true # optional, true by default
    networks:
      macvlan:
        ipv4_address: 192.168.1.170
volumes:
  iso:
    external: true
  data:
    external: true
networks:
  macvlan:
    name: macvlan
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: "192.168.1.0/24"
          ip_range: "192.168.1.192/28"
          gateway: "192.168.1.254"

Pour vous aider à comprendre cette configuration Docker Compose, voici quelques indications.

Ce conteneur doit être exécuté en mode privilégié, ce qui explique la présence de cette ligne :

    privileged: true #must be true

La section "volumes" sert à mapper les répertoires du conteneur avec ceux présents sur notre NAS. Le répertoire "iso" créé précédemment devra être utilisé pour stocker les images ISO que vous souhaitez utiliser dans iVentoy.

    volumes:
      - /volume1/docker/iventoy/iso:/app/iso
      - /volume1/docker/iventoy/data:/app/data
      - /volume1/docker/iventoy/log:/app/log

Le conteneur sera connecté au réseau "macvlan" et il aura l'adresse IP "192.168.1.170". Adaptez en fonction de votre réseau local.

    networks:
      macvlan:
        ipv4_address: 192.168.1.170

Cette partie de la configuration vise à créer le réseau "macvlan" dans Docker. Il est associé au sous-réseau "192.168.1.0/24", à la passerelle par défaut "192.168.1.254" . Nous attribuons aussi la plage d'adresses IP "192.168.1.192/28" (soit 14 adresses IP) au conteneur. Pour rappel, la version FREE d'iVentoy est, de toute façon, limitée à 20 adresses IP.

networks:
  macvlan:
    name: macvlan
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: "192.168.1.0/24"
          ip_range: "192.168.1.192/28"
          gateway: "192.168.1.254"

Une fois que vous avez adapté cette configuration à votre environnement, poursuivez jusqu'à la fin pour créer le conteneur Docker.

Synology - Créer container Docker pour iVentoy

Le conteneur iVentoy est actif, nous allons pouvoir tenter une connexion à l'interface web !

Configuration container iVentoy pour Docker sur Synology

D. Accéder à l'interface web d'iVentoy

Pour accéder à l'interface de gestion d'iVentoy, nous devons spécifier l'adresse IP du conteneur, ainsi que le numéro de port (26000 pour la GUI Web).

http://192.168.1.170:26000/

Nous avons bien accès à l'interface d'administration. Si vous ne parvenez pas à accéder à l'interface d'iVentoy, vérifiez la configuration de votre pare-feu Synology, ainsi que votre fichier Docker Compose.

Il ne reste plus qu'à effectuer la configuration d'iVentoy avant de faire notre premier test de déploiement ! Pour cela, référez-vous à notre précédent tutoriel sur iVentoy, si vous avez besoin d'aide.

III. Conclusion

En suivant ce tutoriel, vous êtes en mesure de mettre en place un serveur PXE iVentoy sur votre NAS Synology grâce à un conteneur Docker ! Libre à vous de l'installer sur un NAS ou sur une machine Linux ou Windows puisque iVentoy est léger et qu'il peut être déployé sur différents systèmes.

The post NAS Synology – Comment installer un serveur PXE iVentoy dans un conteneur Docker first appeared on IT-Connect.

NAS Synology : comment obtenir l’UID et le GID d’un utilisateur ?

2 mai 2024 à 07:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à récupérer l'UID et le GID d'un utilisateur sur un NAS Synology. Vous allez me dire : pourquoi faire ? Et bien, sachez que ceci est utile lorsque l'on utilise un NAS Synology pour exécuter des containers Docker et que l'on souhaite faire tourner un container avec un compte utilisateur spécifique.

II. Rappels sur les notions de UID et GID

Avant de vous expliquer comment récupérer l'UID et le GID sur un NAS, voyons déjà à quoi correspondent ces deux valeurs.

L'UID pour User Identifier est un numéro unique associé à chaque utilisateur d'un système Linux. Il permet d'identifier l'utilisateur sans utiliser le nom et ne peut pas être modifié. Cette information est stockée dans le fichier "/etc/passwd".

Le GID pour Group Identifier est un numéro unique associé à chaque groupe d'un système Linux. Le GID permet d'identifier un groupe sans utiliser le nom et ne peut pas être modifié. Cette information est stockée dans le fichier "/etc/group".

Si un utilisateur ou un groupe est supprimé puis recréé, il n'aura pas le même UID / GID, car ce numéro est incrémenté à chaque fois.

Remarque : le compte super-utilisateur "root" hérite toujours de l'UID "0" et du GID "0".

III. Récupérer l'UID et le GID d'un utilisateur

Pour récupérer l'UID et le GID d'un utilisateur, nous devons utiliser la ligne de commandes SSH.

La première étape consiste à se rendre dans "Panneau de configuration", puis "Terminal & SNMP" afin de cocher l'option "Activer le service SSH". Ensuite, validez, et à la fin de l'opération, vous pouvez décocher cette option pour éviter d'exposer ce service inutilement si vous n'en avez pas l'usage.

Synology - Activer le service SSH

Désormais, nous devons nous connecter en SSH à notre NAS. Vous pouvez utiliser une application telle que PuTTY, mais ce n'est pas obligatoire. Si vous utilisez Windows 10 ou Windows 11, il y a un client SSH natif pour vous permettre de vous connecter à votre NAS.

Ouvrez une invite de commande et saisissez la commande "ssh" selon le modèle suivant :

ssh <nom d'utilisateur>@<adresse ip>

Par exemple, pour se connecter sur le NAS avec l'adresse IP "192.168.1.200" avec le compte "itconnect" :

ssh itconnect@192.168.1.200

Si vous avez besoin de préciser un numéro de port spécifique (autre que le port 22), ajoutez cette option en ajustant le numéro de port :

ssh itconnect@192.168.1.200 -p 222

Saisissez votre mot de passe et vous devriez avoir accès au shell du système DSM. Attention, le compte que vous utilisez pour vous connecter doit être membre du groupe "administrators" de DSM (c'est le cas du compte créé nativement lors de l'installation du NAS).

Une fois que vous avez accès à votre NAS en ligne de commande, vous devez utiliser la commande "id".

  • Pour récupérer l'UID et le GID du compte avec lequel vous êtes connecté en SSH :
id
  • Pour récupérer l'UID et le GID d'un autre compte existant sur votre NAS (exemple avec le compte nommé "docker")
id docker

Ici, nous pouvons voir que l'UID de cet utilisateur est "1027" tandis que son GID est "100". Ici, c'est bien le groupe principal auquel appartient l'utilisateur qui est retourné, car il peut être membre de plusieurs groupes.

Il ne reste plus qu'à faire bon usage de ces deux informations !

IV. Conclusion

Grâce à cette astuce, vous êtes en mesure de récupérer l'UID et le GID d'un compte utilisateur de votre NAS Synology ! Ces informations étant différentes d'un NAS à un autre et d'un utilisateur à un autre, c'est une manipulation à connaître.

The post NAS Synology : comment obtenir l’UID et le GID d’un utilisateur ? first appeared on IT-Connect.

Déployer Homer sur un NAS Synology – Un tableau de bord personnalisable

30 avril 2024 à 18:00

I. Présentation

Dans ce tutoriel, nous allons apprendre à déployer l'application Homer sur un NAS Synology, à l'aide d'un conteneur Docker ! Homer est un projet open source destiné à l'auto-hébergement dont l'objectif est de vous permettre de déployer une page d'accueil aux allures de tableau de bord sur votre propre serveur !

Sur cette page statique, vous allez pouvoir ajouter tous les éléments et liens que vous jugez nécessaire ! Par exemple, vous pouvez lister vos sites favoris, ajouter des liens vers vos applications préférées, ou encore vers vos équipements ! Il y a aussi la possibilité de remonter des informations à partir de services personnalisés, c'est-à-dire d'autres applications (Prometheus, AdGuard Home, Portainer, PiHole, Proxmox, etc...).

Homer peut s'avérer utile dans de nombreux scénarios et cette page est facilement personnalisable grâce à un fichier de configuration au format YAML.

"Un HOMepage statique très simple pour votre servER afin de garder vos services à portée de main, à partir d'un simple fichier de configuration yaml."

En complément de cet article, retrouvez notre cours complet sur la sécurisation d'un NAS Synology :

II. Installer l'application Homer sur son NAS

Avant de créer le conteneur, nous allons préparer un répertoire pour stocker ses données. Au sein du répertoire "docker", nous allons créer le répertoire "homer" afin de maintenir la logique habituelle : un répertoire par conteneur. Ce qui donne :

Puis, dans le répertoire "homer", nous allons créer un répertoire "data" qui sera utilisé pour stocker les données applicatives d'Homer. Ce qui donne :

Désormais, nous pouvons lancer l'application Container Manager (Docker) pour créer un nouveau conteneur à partir d'un code de configuration Docker Compose.

Dans "Container Manager", cliquez sur "Projet" puis sur "Créer". Nommez ce projet "homer" puis indiquez le répertoire "/docker/homer" comme chemin pour ce conteneur. Autrement dit, l'option "Chemin" doit avoir pour valeur "/docker/homer".

En ce qui concerne la "Source", choisissez l'option "Créer un fichier docker-compose.yml". Une zone de texte apparaît : qu'allons-nous écrire ici ? Nous allons récupérer le code du fichier "docker-compose.yml" disponible sur GitHub officiel pour ensuite l'adapter.

Ce qui donne :

Voici le code de base à copier-coller :

---
version: "2"
services:
  homer:
    image: b4bz/homer
    container_name: homer
    volumes:
      - /volume1/docker/homer/data:/www/assets
    ports:
      - 8080:8080
    user: 1000:1000 # default
    environment:
      - INIT_ASSETS=1 # default

Désormais, nous allons devoir modifier deux options : le chemin vers le répertoire local pour mapper le répertoire "/www/assets" du conteneur vers "/volume1/docker/homer/data", et les informations sur le compte utilisateur à utiliser pour exécuter le conteneur. Ici, l'utilisateur "docker" de mon NAS est spécifié en indiquant son UID "1027" et son GID "100".

Ici, nous ne modifions pas le mappage sur le numéro de port, donc l'application sera accessible sur le port 8080. Vous pouvez l'adapter si besoin. De plus, l'option "INIT_ASSETS=1" permet d'ajouter les fichiers de démonstrations à l'application, ce qui évite de partir de zéro.

Remarque : pour le nom de l'image, vous pouvez ajouter le tag "latest" pour récupérer la dernière image Docker de ce projet associée à ce tag. Ce qui donne la valeur "b4bz/homer:latest" pour la directive "image".

Une fois le fichier Docker Compose prêt, vous pouvez continuer jusqu'à la fin pour créer le conteneur. L'image "b4bz/homer" sera téléchargée à partir du Docker Hub et utilisée pour exécuter le conteneur.

Voilà, le conteneur Docker "homer" est actif !

Dès à présent, nous pouvons accéder à l'interface de l'application :

http://<adresse IP du NAS>:8080

Vous devriez obtenir ceci :

Désormais, nous allons évoquer la personnalisation de cette page d'accueil.

III. Personnaliser la page d'accueil Homer

Pour modifier la page d'accueil d'Homer, nous allons éditer le fichier suivant :

/docker/homer/data/config.yml

Pour l'éditer directement depuis l'interface de DSM, installez l'application "Éditeur de texte" depuis le "Centre de paquets". Ceci permet d'ajouter l'option "Ouvrir avec un éditeur de texte" dans le menu contextuel de DSM afin d'éditer les fichiers en ligne.

Le fichier de configuration s'ouvre. Il s'agit d'un fichier au format YAML, donc il faut respecter rigoureusement l'indentation, les espaces, etc... Pour ne pas générer de problèmes de syntaxes. L'édition est assez simple puisque le code est facilement lisible.

Vous pouvez charger vos images dans le répertoire "data/tools" de votre conteneur pour les appeler en tant que logo dans Homer. Par ailleurs, Homer s'appuie sur la bibliothèque FontAwesome pour charger les icônes, donc utilisez cette page pour rechercher un logo à intégrer sur une entrée (par exemple "fas fa-hdd" pour l'icône en forme de disque dur).

À titre d'exemple, voici le code du nœud « services » qui permet d'obtenir le résultat présenté ci-dessus avec les deux blocs "Mes sites favoris" et "Mes NAS".

# Services
# First level array represent a group.
# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
services:
  - name: "Mes sites favoris"
    icon: "fas fa-cloud"
    items:
      - name: "IT-Connect"
        logo: "assets/tools/Logo-IT-Connect.png"
        subtitle: "Tutoriels, cours, actualités - Informatique"
        tag: "tutos"
        keywords: "tutos"
        url: "https://www.it-connect.fr"
        target: "_blank" # optional html a tag target attribute
  - name: "Mes NAS"
    icon: "fas fa-hdd"
    items:
      - name: "NAS Synology DS220+"
        icon: "fas fa-hdd"
        subtitle: "https://192.168.1.200:5001"
        tag: "nas"
        keywords: "nas"
        url: "https://192.168.1.200:5001"
        target: "_blank" # optional html a tag target attribute
      - name: "NAS Synology DS923+"
        icon: "fas fa-hdd"
        subtitle: "https://192.168.1.201:5001"
        tag: "nas"
        keywords: "nas"
        url: "https://192.168.1.201:5001"
        target: "_blank" # optional html a tag target attribute

Quand vous effectuez une modification, enregistrez le fichier et rafraichissez la page web pour voir ce que ça donne. Homer étant une page d'accueil statique, elle est très rapide à charger et très légère.

L'intégration des services personnalisés s'effectue aussi dans ce fichier. Référez-vous à la documentation afin de copier-coller le bloc de configuration correspondant à votre service :

IV. Conclusion

En suivant ce tutoriel, vous devriez être en mesure d'installer Homer sur votre NAS Synology à l'aide de Docker ! C'est une application pratique et facile à personnaliser que l'on peut utiliser pour se créer une page d'accueil pour son Home Lab, ou, pour créer un portail d'entreprise léger, self-hosted, avec un ensemble de liens utiles.

Il y a des alternatives à Homer, notamment Heimdall, mais aussi Homarr qui est plus complet, mais aussi beaucoup plus lourd.

Pour aller plus loin, je vous recommande de publier cette application avec le reverse proxy de DSM, ce qui permettra d'avoir un certificat TLS et d'utiliser un nom de domaine. Référez-vous à ce tutoriel :

The post Déployer Homer sur un NAS Synology – Un tableau de bord personnalisable first appeared on IT-Connect.

Ces failles de sécurité peuvent permettre la compromission de votre NAS QNAP !

30 avril 2024 à 07:47

Vous utilisez un NAS QNAP ? Veillez à ce qu'il soit à jour, car plusieurs failles de sécurité critiques ont été corrigées ! Elles représentent une menace sérieuse pour votre NAS et vos données. Faisons le point.

En mars dernier, nous avons déjà publié un article au sujet de 3 failles de sécurité critiques découvertes dans le système d'exploitation utilisé par les NAS QNAP. Il s'avère que 3 autres vulnérabilités sont désormais mentionnées dans ce bulletin de sécurité et qu'une autre alerte mentionne 2 failles de sécurité découvertes à l'occasion d'une édition de la compétition de hacking Pwn2Own. L'exploitation de ces vulnérabilités peut permettre à un attaquant d'exécuter des commandes sur le NAS, ce qui pourrait lui permettre de compromettre l'appareil.

Commençons par évoquer les trois failles de sécurité critiques évoquées sur cette page :

  • CVE-2024-27124 :

Cette vulnérabilité d'injection de commande pourrait permettre à des utilisateurs d'exécuter des commandes sur le système du NAS, à distance, via le réseau. Elle est associée à un score CVSS de 7.5 sur 10.

  • CVE-2024-32764 :

Cette vulnérabilité donne accès à une fonction critique du système sans authentification et pourrait permettre à des utilisateurs standards (sans privilèges élevés) d'accéder à certaines fonctions et de les utiliser, à distance. Ceci est lié au service myQNAPcloud Link. Elle est associée à un score CVSS de 9.9 sur 10.

"Un défaut de contrôle de l’authentification dans myQNAPcloud Link permet à un attaquant non authentifié, en envoyant des requêtes spécifiquement forgées, d’accéder à certaines fonctionnalités critiques.", peut-on lire sur le site du CERT Santé.

  • CVE-2024-32766 :

Cette vulnérabilité d'injection de commande pourrait permettre à un attaquant non authentifié d'exécuter des commandes arbitraires sur le système du NAS, à distance, via le réseau. Elle est associée à un score CVSS de 10 sur 10.

En plus de ces 3 vulnérabilités, voici 2 autres failles de sécurité importantes patchées il y a quelques jours par QNAP :

  • CVE-2023-51364, CVE-2023-51365 :

Il s'agit de deux vulnérabilités de type "path transversal" permettant à un attaquant de lire le contenu de fichiers protégés, et potentiellement, d'exposer des données sensibles via le réseau. Elles sont associées à un score CVSS de 8.7 sur 10.

Quelles sont les versions affectées ?

Voici la liste des versions affectées, pour chaque système :

  • QTS 5.x et QTS 4.5.x
  • QuTS hero h5.x et QuTS hero h4.5.x
  • QuTScloud c5.x
  • myQNAPcloud 1.0.x
  • myQNAPcloud Link 2.4.x

Comment se protéger ?

Pour vous protéger de l'ensemble de ces failles de sécurité, vous devez utiliser l'une de ces versions :

  • QTS 5.1.4.2596 build 20231128 et supérieur
  • QTS 4.5.4.2627 build 20231225 et supérieur 
  • QuTS hero h5.1.3.2578 build 20231110 et supérieur 
  • QuTS hero h4.5.4.2626 build 20231225 et supérieur 
  • QuTScloud c5.1.5.2651 et supérieur 
  • myQNAPcloud 1.0.52 (2023/11/24) et supérieur
  • myQNAPcloud Link 2.4.51 et supérieur

En complément, veillez à utiliser un mot de passe robuste sur vos comptes d'accès au NAS (activez le MFA également), sauvegardez régulièrement vos données et limitez les accès au NAS notamment l'exposition de l'appareil sur Internet.

À vos mises à jour !

The post Ces failles de sécurité peuvent permettre la compromission de votre NAS QNAP ! first appeared on IT-Connect.

❌
❌