Aller au contenu

[TUTO] [Docker] SMBv1


.Shad.

Messages recommandés

Samba_logo_2010_svg.thumb.png.86fefd0495017d067aed24787de4cd6c.png

1. Préambule

Ce tutoriel a pour but d'autoriser l'accès aux données du NAS via le protocole SMBv1 (ou NT1) sans pour autant impacter le niveau de sécurité d'accès au NAS. Cela permet d'assurer la compatibilité d'équipement qui n'auraient pas été mis à jour par leur fabricant. SMBv1 est un protocole déprécié et comportant des failles de sécurité. Lorsqu'il est possible de vous en passer, faites-le.

2. Prérequis

  • Avoir un NAS compatible Docker, voir la liste ici.
  • Savoir se connecter au NAS via SSH en root : 
  • Utiliser Docker-compose
  • Avoir installé le paquet SynoCLI File Tools, pour ajouter le dépôt SynoCommunity voir la partie Easy Install sur cette page.
  • IMPORTANT : Si vous souhaitez accéder aux dossiers partagés "music", "video", etc... à la racine tels quels, ça ne pourra pas fonctionner, il faudra monter des sous-dossiers de ces dossiers partagés. Autant prévenir de suite.

3. Principe

Afin de ne pas devoir réduire drastiquement le niveau de sécurité du NAS en autorisant le protocole SMBv1, on va passer par un conteneur qui va monter uniquement les fichiers du NAS dont on a besoin, et qui lui, autorisera l'accès en SMBv1.

Comme le NAS utilise déjà le port 445 pour parler SMB avec les autres périphériques du réseau, il n'est pas disponible, on va donc utiliser un réseau macvlan (voir point 11-A de mon tutoriel introductif à Docker). Ce réseau permet entre autre d'attribuer au conteneur une IP située sur le même sous-réseau que votre réseau local. En somme, il devient accessible comme n'importe quelle autre machine, avec une IP par exemple du 192.168.0.x. Comme il est fréquent de faire avec des machines virtuelles.

Cela permet notamment d'utiliser des ports déjà utilisés sur le NAS, et facilite la détection par les autres appareils, car visible directement par tout le réseau.

4. Mise en place du réseau macvlan

Je ne détaille pas cette étape, car elle est décrite avec précision au point 11-A-1 du tutoriel introductif.
A noter dans ce tutoriel précis qu'il n'est pas nécessaire de mettre en application le point 11-A-2 qui s'attarde sur la création d'une interface virtuelle pour communiquer entre le NAS et le conteneur.
Si vous avez déjà un réseau macvlan disponible, assurez-vous simplement de disposer d'une IP libre dans la plage utilisée. Et adaptez les hypothèses suivantes.

5. Hypothèses

Je vais me baser sur la plage et le sous-réseau utilisés dans le tutoriel introductif :

  • IP hôte (NAS) : 192.168.0.100
  • Passerelle : 192.168.0.1
  • Sous-réseau local : 192.168.0.0/24 (ou encore écrit 192.168.0.0/255.255.255.0)
  • Plage macvlan : 192.168.0.144/28 (vous pouvez vérifier les IP que ça concerne ici : http://jodies.de/ipcalc)
  • IP conteneur : 192.168.0.145

Les valeurs en orange sont directement héritées de la mise en place du réseau macvlan, et sont simplement répétées par rapport au tutoriel introductif dans un souci de contextualisation. Les valeurs en vert sont propres à votre installation et ce tutoriel.

6. Configuration

6-A. Fichier docker-compose

On va créer le fichier docker-compose.yml qui va reprendre toute la configuration de notre conteneur.
On va utiliser l'image servercontainers/samba. Elle met à disposition un serveur Samba entièrement configurable, accompagné d'Avahi et WSD pour qu'il s'annonce sur le réseau et le rendre consultable et visible dans Finder (Mac) et l'explorateur Windows.
Il faut savoir que cette image a été améliorée suite à des propositions que j'ai faites à son créateur. Elle a été adaptée pour faciliter la compatibilité avec DSM et sa version particulière de Linux.

Tout d'abord, on se connecte en SSH en root, puis on crée le dossier qui va contenir la configuration du conteneur 

mkdir -p /volume1/docker/samba/ && cd $_
mkdir conf

On va ensuite créer le fichier docker-compose.yml en utilisant nano (ou le télécharger ici docker-compose.yml et l'importer dans File Station au bon endroit). 

nano docker-compose.yml

dont voici un modèle :

version: '2.1'
services:

   samba-nt1:
      image: servercontainers/samba
      container_name: samba-nt1
      hostname: samba-nt1
      networks:
         mac0:
            ipv4_address: 192.168.0.145
      environment:
         ## Groups ##
         - GROUP_users=100
         ## Accounts ##
         - ACCOUNT_media=motdepassemedia
         - UID_media=10XX
         - GROUPS_media=users
         ## Global variables ##
         - SAMBA_GLOBAL_CONFIG_server_SPACE_min_SPACE_protocol=NT1
         - SAMBA_GLOBAL_CONFIG_ntlm_SPACE_auth=ntlmv1-permitted
         - SAMBA_CONF_MAP_TO_GUEST=Never
         ## Shares ##
         - SAMBA_VOLUME_CONFIG_music=[music]; path=/shares/music; guest ok = no; read only = yes; browseable = yes; valid users = media; force group = users                                                                                                                               
      volumes:
         - /volume1/music/bibliotheque:/shares/music
         - /volume1/docker/samba/conf:/etc/samba
      restart: unless-stopped

networks:

   mac0:
      external: true

6-B. Personnalisation des paramètres

6-B-1. Général

Dans un fichier docker-compose, il n'y a pas de tabulation, uniquement des espaces, et il est important de respecter l'indentation (l'alignement).
Les sauts de lignes ou le nombre d'espaces que vous mettez pour décaler les items n'a en revanche aucun impact, assurez-vous juste que ce soit lisible.

  • hostname : cette variable est importante ici car c'est le nom que vous verrez apparaître dans la découverte de réseau de Windows.
    Cette chaine de caractères est automatiquement convertie en majuscules sous Windows, évitez les caractères exotiques.

    samba_wsd_list.PNG.18b7153e31fc3373fa88117afc843ae0.PNG
     
  • ipv4_address : c'est l'adresse IP que j'attribue manuellement au conteneur, c'est la première disponible dans la plage que j'ai choisie pour mon réseau macvlan nommé mac0.
  • GROUP_users : On va définir au sein du conteneur un group "users", celui-ci correspond au groupe auquel appartient naturellement votre/vos utilisateur(s) du NAS. On lui donne la valeur de 100 car c'est le gid du groupe users sur DSM également.
    Si pour une raison ou un autre vous utilisez un groupe personnalisé, vous devez déterminer le GID affilié à ce groupe. Pour cela, tapez en SSH :
    cat /etc/group | grep nom_du_groupe
    Il faudra utiliser le nombre à la fin de la ligne en sortie de commande.
  • ACCOUNT_media, UID_media et GROUPS_media : Voir paragraphe 6-B-3.
  • SAMBA_GLOBAL_CONFIG_server_SPACE_min_SPACE_protocol : En lui donnant une valeur NT1 on autorise SMBv1 comme protocole minimal, depuis Samba 4.x le protocole minimal est SMB2. NT1 est le nom officiel de SMBv1.
  • SAMBA_GLOBAL_CONFIG_ntlm_SPACE_auth : Il faut également autoriser l'authentification NT1.
  • SAMBA_CONF_MAP_TO_GUEST : On ne souhaite pas que les utilisateurs soient automatiquement redirigés sur guest en cas de mauvais nom d'utilisateur ou de mot de passe. Donc on désactive la directive.
  • SAMBA_VOLUME_CONFIG_music : voir 6-B-4.
  • volumes : voir 6-B-2.
  • restart: unless-stopped : Le conteneur redémarre quand il s'arrête suite à une erreur, si le service Docker ou le NAS redémarrent. Sauf si on l'a arrêté manuellement.
  • networks : Je dois définir la nature du réseau mac0 invoqué plus haut pour le paramètre ipv4_address. Il a été créé extérieurement au conteneur, ce que je précise par le paramètre external: true.

6-B-2. Volumes

Pour revenir au point abordé dans les pré-requis, et sans rentrer dans les détails, l'utilisation de cette image avec DSM possède quelques limitations :

  • Il n'est pas possible de monter directement un dossier partagé à la racine : par exemple dans mon fichier docker-compose, je monte /volume1/music/bibliotheque et pas /volume1/music dans /shares/music.
    Cela vient des permissions UNIX qui sont inexistantes au niveau des dossiers partagés du point de vue de l'utilisateur root, c'est la surcouche d'ACL qui gère les permissions.
  • Par conséquent, les permissions UNIX doivent être suffisantes pour garantir un fonctionnement adéquat. Prenons un exemple :
    ls -l /volume1/music
    samba_permissions_acl.PNG.7d07c00967eaac33ba898f64c7eca64c.PNG

    Les permissions UNIX pour le dossier "bibliotheque" par exemple sont définies par les caractères qui se situent à gauche du "+" : drwxr-xr-x.
    Cas d'utilisation :
    • Pour traverser les dossiers et lire en lecture seule avec un utilisateur authentifié, il faut a minima dr-x------ pour un dossier (-r-x------ pour un fichier).
    • Pour traverser les dossiers et lire/écrire avec un utilisateur authentifié, il faut a minima drwx------ pour un dossier (-rwx------ pour un fichier).
    • NON RECOMMANDÉ : Pour traverser les dossiers et lire en lecture seule avec un utilisateur guest (non authentifié), il faut a minima d------r-x pour un dossier (-------r-x pour un fichier).
    • NON RECOMMANDÉ : Pour traverser les dossiers et lire/écrire avec un utilisateur guest (non authentifié), il faut a minima d------rwx pour un dossier (-------rwx pour un fichier).

Je ne recommande pas les deux derniers cas d'utilisation, car SMBv1 est un protocole déprécié et ayant des failles de sécurité. Or SMB de manière générale est sûrement le moyen le plus simple d'infecter un NAS. Néanmoins, cela peut avoir son utilité par exemple pour des imprimantes d'ancienne génération, qui stocke des éléments scannés dans un répertoire du NAS via SMBv1. L'utilisation d'un guest doit rester exceptionnelle.

NOTE : Avoir d------rwx n'implique pas qu'un guest aura forcément accès aux données du partage, on peut tout à fait désactiver l'accès guest par la configuration du partage (voir point 6-B-4), limiter l'accès à certains partages à certains utilisateurs uniquement, etc... c'est simplement une condition nécessaire, mais non suffisante. En revanche, si vous n'avez pas ces permissions a minima, activer le guest n'aura aucun effet.

Voilà un type de montage qu'on pourrait vouloir faire :

   volumes:
      - /volume1/music/bibliotheque:/shares/music
      - /volume1/video/films:/shares/films
      - /volume1/video/series:/shares/series
      - /volume1/famille/documents:/shares/documents

On doit aussi s'assurer d'avoir monté le dossier dans lequel se trouvera le fichier de configuration smb.conf créé par le conteneur lors de sa mise en route :

      - /volume1/docker/samba/conf:/etc/samba

6-B-3. Utilisateur

Pour faciliter le bon fonctionnement du conteneur, il est recommandé de créer des utilisateurs dont le nom existe déjà dans DSM.
Dans mon cas, j'ai un utilisateur media qui est propriétaire de tous les fichiers multimédias (musique et vidéo).

ls -l /volume1/music/bibliotheque

samba_ls_music.PNG.4154363427494c546d860390c0daa1f9.PNG

Au sein d'un même partage (par exemple le contenu musical), il est recommandé qu'un seul et même utilisateur soit propriétaire de tous les fichiers.
Ca ne changera rien dans DSM car le système a sa propre couche d'ACL qui détermine les permissions de chacun, et ça facilitera l'exploitation du conteneur.
Pour unifier le propriétaire d'un ensemble de fichiers et dossiers, c'est très simple, on va dans File Station, on sélectionne les éléments dont on souhaite changer la propriété, clic droit, Propriétés.

En bas de la fenêtre, on choisit le propriétaire. Si on a sélectionné un dossier, on peut cocher la case "Appliquer à ce dossier, ses sous-dossiers et ses fichiers" pour que les enfants héritent du même propriétaire.

samba_change_owner.PNG.3e873fc3605a57dcdc7d29273179700e.PNG

NOTE : Si vous sélectionnez à la fois des dossiers et des fichiers, il se peut que le cadre Propriétaire n'apparaisse pas. Limitez votre sélection et ça marchera.

Je vais donc créer un utilisateur media dans le conteneur via la variable d'environnement : ACCOUNT_media. La valeur de cette variable est le mot de passe pour l'utilisateur media dans ce conteneur.

NOTE : Ce mot de passe ne doit pas être le même que celui pour l'utilisateur media du NAS !
En effet, le conteneur aura ses propres accès.

La documentation de cette image permet de chiffrer ce mot de passe, pour ma part je n'en vois pas l'intérêt. Car pour accéder à ce fichier, l'utilisateur doit déjà avoir infecté le NAS. Cacher ses clés dans la maison n'a pas d'intérêt s'il y a déjà effraction.

Concernant la variable UID_media, il s'agit de l'ID de l'utilisateur. Il est pratique d'utiliser le même UID que celui de l'utilisateur du NAS. Pour récupérer cet UID, il suffit de taper en SSH :

id media

samba_id_user.PNG.81995f2dde3155bc6d97262cacb63762.PNG

Dans mon cas c'est 1035, dans tous les cas c'est strictement supérieur à 1025.

Enfin, pour GROUPS_media, on lui donne la valeur users, par défaut l'utilisateur appartient à un groupe identique à son nom d'utilisateur.
Pour DSM, le groupe users est le groupe par défaut pour les utilisateurs. On s'assure une meilleure compatibilité avec les ACL.

Au final, en configurant ces trois variables, on assure la création d'un utilisateur qui pourra se servir des droits utilisateurs accordés par les permissions UNIX et ne fâchera pas les ACL de DSM.

REMARQUE

Il est tout à fait possible de créer plusieurs utilisateurs, par exemple si vous décidez de monter l'espace personnel d'un utilisateur du NAS, ou simplement parce que tous les fichiers de vos partages n'appartiennent pas à un seul et même utilisateur.

Exemple :

         - ACCOUNT_media=motdepassemedia
         - UID_media=1035
         - GROUPS_media=users
         - ACCOUNT_lolita=motdepasselolita
         - UID_lolita=1031
         - GROUPS_lolita=users

6-B-4. Configuration des partages

La configuration des partages se fait via la variable d'environnement SAMBA_VOLUME_CONFIG_music (pour un partage qui se nommerait "music"). La valeur associée peut paraître étrange avec ses points virgule, mais ça représente juste un saut de ligne dans ce qui correspond habituellement à la configuration d'un partage SMB. Voyons plus en détail :

  • path=/shares/music : correspond à l'emplacement qu'on a indiqué dans le montage de volume, c'est le chemin DANS le conteneur.
  • [music] : c'est le nom du partage tel que vous le verrez dans votre explorateur. Vous pouvez utiliser des majuscules et des espaces ici.
  • guest ok : prend la valeur "yes" ou "no", dans le premier cas lorsque vous vous connecterez aucun mot de passe ne vous sera demandé. Valeur recommandée : no.
  • read only : est assez explicite, prend la valeur "yes" ou "no". En SMBv1, préférez la lecture seule.
  • browseable : permet de voir apparaître le partage dans les onglets de découverte du réseau.
  • valid users : permet de définir quel(s) utilisateur(s) sont autorisés à accéder au partage. Pour ajouter plusieurs utilisateurs, les séparer par une virgule. Si tous les utilisateurs peuvent accéder au partage, il n'est pas nécessaire d'utiliser cette directive.
  • force group : Par défaut, ce sera l'utilisateur media/media qui écrira quand on est connecté avec cet utilisateur, on souhaite que le groupe par défaut soit users, d'où la valeur forcée à "users" pour ce paramètre.

Autres directives majeures disponibles :

  • comment : permet de décrire notre partage, majuscules autorisées.
  • directory mask : permet de définir quelles seront les permissions UNIX par défaut lors de la création d'un dossier.
    Exemple : create directory mask = 0755 => les dossiers auront les permissions suivantes : drwxr-xr-x.
    Voir la page Wikipédia (Fonctionnement - Représentation des droits) pour plus d'information https://fr.wikipedia.org/wiki/Permissions_UNIX
  • create mask : même chose pour un fichier.
  • guest only : nécessite d'avoir réglé guest ok sur "yes" au préalable. Accès guest seulement (pas d'authentification).

Il existe énormément de paramètres configurables pour un partage SMB, voir la liste ici : https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

Tout est maintenant configuré.
On n'a plus qu'à sauvegarder le fichier docker-compose (sous nano, CTRL+O puis Entrée pour sauvegarder, CTRL+X pour sortir de l'éditeur).

7. Création du conteneur

Pour créer le conteneur, on vérifie qu'on se trouve toujours dans /volume1/docker/samba et on tape :

docker-compose pull

Ce qui va télécharger la dernière version de l'image.
Puis :

docker-compose up -d

Si pas d'erreur à la création (souvent dues à des caractères de tabulation, une directive dans le fichier docker-compose mal orthographiée ou désalignée, etc...), vous verrez un petit done apparaître en vert.

Si browseable a été activé, on voit le partage dans la découverte réseau :

samba_wsdd.PNG.96b241428f8d1bb06bde8224a37a060a.PNG

Tous les autres moyens habituels pour accéder à un partage SMB sont actifs (connecter un lecteur lecteur réseau, smb:// via Finder, etc...).

MàJ : 13/01/2022

Modifié par .Shad.
Correction indentation docker-compose
Lien vers le commentaire
Partager sur d’autres sites

  • .Shad. a modifié le titre en [WIP] [TUTO] [Docker] SMBv1
  • .Shad. a modifié le titre en [TUTO] [Docker] SMBv1
  • 4 mois après...

Salut !

merci pour le tuto, je compte monter un dossier smb1 en docker et j'ai suivi ton tuto, en modifiant le yml, mais lorsque je le pull, j'ai cette erreur :

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.networks: 'mac0'

 

 

Une idée ?

j'ai pourtant l'impression d'avoir bien suivi ton tuto et nettoyé mes changements...

merci 🙂

Lien vers le commentaire
Partager sur d’autres sites

il y a 43 minutes, Letraitplat a dit :

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.networks: 'mac0'

C'est ma faute, j'ai indenté networks sous services, alors qu'ils doivent être alignés.
Je corrige de suite, merci. 🙂 

Lien vers le commentaire
Partager sur d’autres sites

il y a 11 minutes, .Shad. a dit :

C'est ma faute, j'ai indenté networks sous services, alors qu'ils doivent être alignés.
Je corrige de suite, merci. 🙂 

merci du fix 🙂

bon il est pas impossible que j'aie un autre problème aussi c'est tout simplement que je n'ai pas encore fait le macval, ton 11A1 de l'autre tuto ^^ je galère à comprendre les notions de plages, de sous réseau, etc.

mais je vais y arriver ! j'espère 😉

j'ai un doute à la création du macvlan

lorsque tu indiques ceci dans l'autre tuto :

docker network create -d macvlan \
--subnet=192.168.0.0/24 \
--ip-range=192.168.0.144/28 \
--gateway=192.168.0.254 \
-o parent=ovs_eth0 \
toto

"toto" doit correspondre au nom de macvlan qu'on utilistera ensuite ?

et que faire de ce texte : ca doit etre mis dans un docker-compose.yml puis etre pull ? etre exécuté en task ?

en pull j'ai cette erreur :

ERROR: Top level object in './docker-compose.yml' needs to be an object not '<class 'str'>'.
 

merci

 

 

Lien vers le commentaire
Partager sur d’autres sites

Oui toto c'est l'exemple de nom de réseau que tu peux donner, ici ce serait mac0.

C'est juste une ligne de commande à entrer en SSH. Ça se met pas dans un composé, en théorie ça pourrait mais c'est se prendre la tête pour rien.

Outre les plages d'IP, vérifier le nom de ton interface (ovs_eth0 dans mon cas).

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, .Shad. a dit :

Oui toto c'est l'exemple de nom de réseau que tu peux donner, ici ce serait mac0.

C'est juste une ligne de commande à entrer en SSH. Ça se met pas dans un composé, en théorie ça pourrait mais c'est se prendre la tête pour rien.

Outre les plages d'IP, vérifier le nom de ton interface (ovs_eth0 dans mon cas).

ligne de commande

=> je mets tout en copier coller à la suite dans un putty ? je supprime les retour à la ligne ? donc :

docker network create -d macvlan \ --subnet=192.168.0.0/24 \ --ip-range=192.168.0.144/28 \ --gateway=192.168.0.254 \ -o parent=ovs_eth0 \ mac0

 

via ifconfig, j'obtiens différentes interfaces : des dockers (j'ai installé des sabnzbd, radarr, etc), un eth0, un bond0 (j'ai configuré le link aggregation sur mon nas, en utilisant 2 ethernet) et un lo

=> selon toi, lequel je prends ?

 

merci 🙂

Lien vers le commentaire
Partager sur d’autres sites

il y a 24 minutes, Letraitplat a dit :

=> je mets tout en copier coller à la suite dans un putty ? je supprime les retour à la ligne ? donc :

Quand tu es dans un terminal, le fait de mettre des "\" permet justement de faire des retours à la ligne sans couper la commande.
Ou alors tu écris tout à la suite. Pense à mettre sudo devant si pas connecté en root.

il y a 30 minutes, Letraitplat a dit :

via ifconfig, j'obtiens différentes interfaces : des dockers (j'ai installé des sabnzbd, radarr, etc), un eth0, un bond0 (j'ai configuré le link aggregation sur mon nas, en utilisant 2 ethernet) et un lo

Il faut utiliser l'interface qui possède l'IP de ton NAS, a priori bond0.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour les clarifications, je teste de suite !

edit : tout a marché nickel avec les derniers réglages définis.

Merci infiniment .Shad. ca va vraiment me faciliter la vie et me permettre de conserver dans mon écosystème des appareils un peu vieillissants qui cherchent uniquement à se connecter à du samba v1 😉

Question bête qui subsiste : où puis je retrouver / modifier le mot de passe du compte de l'utilisateur créé pour samba ? dans docker / smb.conf il n'y est pas

=> celui fixé lors du docker compose est figé ensuite ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 20 minutes, Letraitplat a dit :

Merci pour les clarifications, je teste de suite !

edit : tout a marché nickel avec les derniers réglages définis.

Merci infiniment .Shad. ca va vraiment me faciliter la vie et me permettre de conserver dans mon écosystème des appareils un peu vieillissants qui cherchent uniquement à se connecter à du samba v1 😉

Question bête qui subsiste : où puis je retrouver / modifier le mot de passe du compte de l'utilisateur créé pour samba ? dans docker / smb.conf il n'y est pas

=> celui fixé lors du docker compose est figé ensuite ?

Bon. J'arrive à accéder via windows à la share. Par contre, l'appareil vieillissant voit tous mes trucs (mon serveur freebox, mon pc, mon nas), mais pas cette share nouvellement créée.

l'appareil vieillissant en question ce sont des éléments Xiaomi de la suite home (caméras par exemple) et ca permet de stocker des données sur un windows share => mais ca ne propose pas de passer par une IP, juste par cette liste d'appareils qu'elle trouve sur le réseau local (netbios je suppose ?!)

=> est ce que j'ai raté un paramètre de ta documentation qui permette que ce share smb soit "annoncé" ainsi dans la liste ?

merci !

Lien vers le commentaire
Partager sur d’autres sites

Hmm il faut que je regarde plus en détail.
Les seuls tests que j'ai pu faire sont à partir d'un client samba sous Docker, ça restait très théorique. Je vais regarder ça plus en détail demain je suis en congé.
Je pense que ça peut être lié à WSDD2, tu peux essayer d'ajouter dans ton fichier compose :

cap_add:
 - NET_ADMIN

Je doute que ça change quelque chose, mais l'image a pas mal évolué entre la rédaction de ce tutoriel et aujourd'hui.
Je t'avoue qu'en plus c'est pas évident de s'y replonger, c'est sûrement le tutoriel qui m'a demandé le plus de travail, et vu que tu es le premier à le mettre en place, depuis le temps j'ai zappé pas mal de choses que j'avais réalisées. 😛 

Je regarde demain si la suggestion ci-avant ne résout pas ton problème. 😉 

Lien vers le commentaire
Partager sur d’autres sites

Par défaut, suite à une de mes demandes, le créateur de l'image avait ajouté WSDD2 pour permettre, sur W10, la découverte des périphériques réseaux via l'onglet Réseau.
Quel est le modèle de tes périphériques ?

Ca permettra peut-être de voir plus précisément quels protocoles ils utilisent.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton aide

Alors, quelques questions 

- quand tu dis de mettre à jour le fichier compose avec net admin, ca veut donc dire qu'avant, il faut que je supprime le docker créé précédemment en ayant suivi ton tuto jusqu'au bout précédemment, n'est ce pas ? puis une fois supprimé, je modifie le docker compose, je le pull puis docker-compose up -d ?

- comment puis je changer le mot de passe de la share samba *après* le docker-compose up -d ?

 

Pour les périphériques :

https://www.gearbest.com/ip-cameras/pp_633879.html?utm_source=email_sys&utm_medium=email&utm_campaign=shipping

https://fr.banggood.com/Original-Xiaomi-MiJia-1080-P360-Home-Panoramic-WiFi-IP-Camera-Motion-Detection-Night-Vision-4X-Zoom-p-1079882.html?cur_warehouse=CN

https://www.gearbest.com/ip-cameras/pp_701750.html

ce sont ces 3 caméra là

 

merci encore 🙂

Modifié par Letraitplat
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Letraitplat a dit :

- quand tu dis de mettre à jour le fichier compose avec net admin, ca veut donc dire qu'avant, il faut que je supprime le docker créé précédemment en ayant suivi ton tuto jusqu'au bout précédemment, n'est ce pas ? puis une fois supprimé, je modifie le docker compose, je le pull puis docker-compose up -d ?

Tu fais juste docker-compose down, tu édites le fichier, puis up -d.

Il y a 1 heure, Letraitplat a dit :

- comment puis je changer le mot de passe de la share samba *après* le docker-compose up -d ?

En tapant ceci sur le NAS en SSH :

docker exec -it <container_name> smbpasswd <username>

Mais pourquoi ne pas simplement changer la variable quand tu recrées le conteneur ?

_________________________________________________

Sinon pour ton problème avec les caméras, peux-tu tester ça :

  • tu crées un dossier avahi dans /volume1/docker/samba-nt1/
  • tu crées un fichier samba.service dans ce dossier et tu le peuples ainsi :
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name replace-wildcards="yes">%h</name>
 <service>
   <type>_smb._tcp</type>
   <port>445</port>
 </service>
 <service>
   <type>_smb._tcp</type>
   <port>139</port>
 </service>
</service-group>

Puis dans le fichier compose, dans la partie volumes, tu ajoutes :

- /volume1/docker/samba-nt1/avahi:/external/avahi

Tu relances ensuite le conteneur :

docker restart samba-nt1
Lien vers le commentaire
Partager sur d’autres sites

c'est plus clair grâce à ton aide

donc, pour le moment ca ne fait pas plus apparaitre la share dans la liste proposée dans l'appli Xiaomi

- j'ai testé dans un premier temps sans cap_add: - NET_ADMIN, juste docker down, ajout du avahi, édit du docker compose, docker up. la share est à nouveau accessible sous windows, mais pas dans l'app

- puis docker down, edit du docker compose avec cap_add: - NET_ADMIN, docker up, pas mieux

 

par contre comment s'assurer si la manip avec avahi a été prise en compte et être sûr que ca n'a donc pas réglé le problème ?

ah, et autre hypothèse : ca peut pas être un mauvais choix de plage d'IP de ma part ? le fait de prendre une plage d'IP hors des règles d'attribution DHCP de ma box, c'est bien le comportement attendu ? et ca ne peut pas expliquer le probleme ?

 

merci encore 

Modifié par Letraitplat
Lien vers le commentaire
Partager sur d’autres sites

Ce que tu peux faire alors c'est enlever la partie avec le port 445 et laisser 139, donc faire en sorte d'avoir :

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name replace-wildcards="yes">%h</name>
 <service>
   <type>_smb._tcp</type>
   <port>139</port>
 </service>
</service-group>

Pareil, docker-compose down, puis up -d.

Tu peux le vérifier via les ports en écoute :

docker exec -it samba-nt1 netstat -tunlp

Si tu vois une ligne (ou deux si IPv6 activée) avec le port 139 pour le service smbd c'est que c'est pris en compte.

EDIT : Si on laisse les deux, on prend le risque d'avoir un conflit et que l'un des deux ne soit pas pris en compte. Le port 139 est relatif à l'ancien service de résolution NetBIOS, donc ce sera peut-être plus compatible avec ton matériel.

Modifié par .Shad.
Lien vers le commentaire
Partager sur d’autres sites

Re

en mettant à jour avec seulement 139, voici le résultat de docker exec -it samba-nt1 netstat -tunlp

 

root@There:/volume1/docker/samba# docker exec -it samba-nt1 netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.11:34825        0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      117/smbd
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      117/smbd
tcp        0      0 :::139                  :::*                    LISTEN      117/smbd
tcp        0      0 :::445                  :::*                    LISTEN      117/smbd
udp        0      0 127.0.0.11:52961        0.0.0.0:*                           -

 

Lien vers le commentaire
Partager sur d’autres sites

toujours la même liste d'appareils dans l'app : mon pc, mon nas, et le serveur freebox. toujours pas de share samba qui apparait.

testé avec 139, 445, et les 2 à la fois => même résultat

avec les 2 à la fois :

root@There:/volume1/docker/samba# docker exec -it samba-nt1 netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State                                              PID/Program name
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN                                             115/wsdd2
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN                                             116/smbd
tcp        0      0 0.0.0.0:3702            0.0.0.0:*               LISTEN                                             115/wsdd2
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN                                             116/smbd
tcp        0      0 127.0.0.11:40221        0.0.0.0:*               LISTEN                                             -
tcp        0      0 :::139                  :::*                    LISTEN                                             116/smbd
tcp        0      0 :::445                  :::*                    LISTEN                                             116/smbd
udp        0      0 0.0.0.0:3702            0.0.0.0:*                                                                  115/wsdd2
udp        0      0 0.0.0.0:5355            0.0.0.0:*                                                                  115/wsdd2
udp        0      0 127.0.0.11:57089        0.0.0.0:*                          

 

Lien vers le commentaire
Partager sur d’autres sites

Le 15/01/2022 à 09:39, .Shad. a dit :

Je t'avoue que là comme ça je ne sais pas, les noms des périphériques qui apparaissent correspondent-ils bien au nom NetBIOS ? Si tu changes celui du NAS est-ce qu'il change bien sur l'application ?

Merci de l'aide 🙂

je fais des tests en ce moment en changeant les noms dans/NetBIOS/ etc de ma Freebox pour voir quel nom l'appli Xiaomi retrouve et pour le moment c'est pas méga concluant !

dès que j'en sais plus j'updaterai le post

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.