Authentification samba

Résolu
Sylvain_16 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

J'ai configuré un serveur samba sur un poste Linux Manjaro. Voici mon smb.conf :

[global]

workgroup = WORKGROUP
server string = Samba Server
restrict anonymous = no
security = user
passdb backend = smbpasswd
log file = /var/log/samba/%m.log
max log size = 500
invalid users = root
socket options = TCP_NODELAY
map to guest = bad user
guest account = smbguest
load printers = yes
smb ports = 139

[data]

path = /data
public = yes
guest only = yes
writable = yes
force create mode = 0666
force directory mode = 0777
browseable = yes

Sur le poste client, un linux Debian, lorsque j'initie une connexion un mot de passe m'est demandé mais rien ne marche : ni le mot de passe du user linux smbguest, ni le mot de passe définit par smbpasswd.

Je deviens chèvre avec samba. J'aimerais que tous mes clients puissent se connecter au serveur sans mot de passe. Comment modifier le smb.conf dans cette optique ?

Merci,

Sylvain
 

5 réponses

  1. Sylvain
     

    Bonjour !

    J'ai finalement trouvé ce qui clochait : apparmor interdisait les accès distants à smbd sur le serveur.

    J'ai également corrigé la façon de monter le partage et maintenant tout roule !

    Sylvain

    1
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
       

      Merci pour ton retour, je bascule le sujet en résolu.

      0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     

    Bonjour,

    A priori, pour monter un partage samba avec une Debian en poste client, une simple commande mount suffit.. Pas besoin de bidouiller smb.conf qui selon moi sert plutôt si tu veux mettre en place un serveur samba côté Debian (or ce n'est pas ce que tu sembles vouloir faire).

    Cet exemple met en évidence que tu peux passer à la commande mount le login et le mot de passe samba, ainsi que le domaine de travail. Si la commande telle quelle marche, l'idéal serait ensuite de déporter le login et le mot de passe dans un fichier avec des droits restreints afin que ces informations ne figurent pas dans ton historique bash ou dans la table des processus (voir ce lien).

    Libre à toi ensuite de référencer certain de ces paramètres dans /etc/fstab pour les sous-entendre par la suite (voir ce tutoriel).

    Si quelque chose n'est pas clair, n'hésite pas à demander des précisions.

    Bonne chance

    0
  3. Sylvain
     

    Bonjour,

    Merci beaucoup pour ton aide !

    J'ai tenté un mount depuis mon client debian :

    mount -t cifs //192.168.1.16/data /media/partage

    La commande me demande alors un mot de passe et aucun de ceux que je rentre n'est reconnu. Voici ce que j'obtiens :

    mount error: Server abruptly closed the connection.
    This can happen if the server does not support the SMB version you are trying to use.
    The default SMB version recently changed from SMB1 to SMB2.1 and above. Try mounting with vers=1.0.
    mount error(112): Host is down

    Par ailleurs, un systemctl status smb sur le serveur me donne :

    ● smb.service - Samba SMB Daemon
         Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; preset: disabled)
         Active: active (running) since Wed 2022-10-26 11:20:43 CEST; 21min ago
           Docs: man:smbd(8)
                 man:samba(7)
                 man:smb.conf(5)
       Main PID: 925 (smbd)
         Status: "smbd: ready to serve connections..."
          Tasks: 3 (limit: 4561)
         Memory: 12.1M
            CPU: 440ms
         CGroup: /system.slice/smb.service
                 ├─925 /usr/bin/smbd --foreground --no-process-group
                 ├─942 /usr/bin/smbd --foreground --no-process-group
                 └─943 /usr/bin/smbd --foreground --no-process-group
    
    oct. 26 11:20:42 Minus systemd[1]: Starting Samba SMB Daemon...
    oct. 26 11:20:43 Minus smbd[925]: [2022/10/26 11:20:43.031923,  0] ../../source3/smbd/server.c:1741(main)
    oct. 26 11:20:43 Minus smbd[925]:   smbd version 4.17.0 started.
    oct. 26 11:20:43 Minus smbd[925]:   Copyright Andrew Tridgell and the Samba Team 1992-2022
    oct. 26 11:20:43 Minus systemd[1]: Started Samba SMB Daemon.

    Ce pourrait-il qu'il y ait un problème de versions entre mon serveur (v4.17.0) et mon client Debian (v?).

    0
  4. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     

    Bonjour,

    Concernant le message d'erreur, c'est assez bizarre.

    Côté client (Debian)

    Vérifions d'un point de vue réseau que tout est ok.

    ping -c2 192.168.1.16
    nmap 192.168.1.16 # Si nmap n'est pas installé: sudo apt install nmap

    Es-tu sûr que le nom du partage samba est bien data (on dirait que oui d'après ton premier message) ?

    Est-ce que le dossier /media/partage existe sous Debian ?

    Vu que le partage est actuellement fait en invité, as-tu essayé :

    sudo mount -o guest //192.168.1.16/data /media/partage/

    Note qu'il est possible de passer la version du protocole samba en paramètre de mount (c'est numéro de version n'ont rien à avoir avec la version du paquet samba, c'est quelque chose que tu peux spécifier au niveau de /etc/samba/smb.conf côté serveur) :

    sudo mount -o guest,vers=3.0 //192.168.1.16/data /media/partage/

    Côté serveur (Manjaro)

    Est-ce que le pare-feu bloque samba ? Si tu utilises ufw :

    sudo ufw allow samba

    Sinon, indique moi le résultat de :

    sudo iptables -L

    Concernant systemctl status smb : vu que ton serveur samba est sous Manjaro, on est bien d'accord que tu as bien lancé cette commande sous Manjaro ?

    Parviens-tu sous manjaro à monter ton partage en local ?

    sudo mkdir -p /media/partage
    sudo mount -o guest //127.0.0.1/data /media/partage

    Ce serait intéressant de regarder quand tu tentes de te connecter de lancer sur le serveur samba la commande suivante et voir les lignes qui apparaissent :

    tail -f /var/log/samba/*.log

    Autres pistes

    Pour partager des fichiers entre deux linux il existe des solutions plus simples. Personnellement j'utilise sshfs (donc rien à avoir avec samba). Il suffit que la machine qui fasse le partage ait un serveur ssh et que la machine cliente puisse s'y connecter. Côté client, en remplaçant "login" par un profil utilisateur qui existe côté serveur  :

    • avec konqueror ou dolphin : fish://login@192.168.0.16
    • avec nautilus : ssh://login@192.168.0.16

    Bonne chance

    0
    1. Sylvain
       

       Bonjour et merci pour ton aide et ton long message !

      Reprenons :

      ping -c 192.168.1.16
      

      Ça passe sans problème.

      nmap 192.168.1.16
      PORT     STATE  SERVICE
      22/tcp   open   ssh
      25/tcp   closed smtp
      80/tcp   closed http
      139/tcp  open   netbios-ssn
      443/tcp  closed https
      445/tcp  closed microsoft-ds
      3306/tcp closed mysql


      Là je ne pige pas. Comme le port 139, j'ai bien ouvert le port 445 dans iptables :

      -A INPUT  -p tcp -m tcp --dport 139 -j ACCEPT
      -A INPUT  -p tcp -m tcp --dport 445 -j ACCEPT

      J'ai arrêté le pare feu de la box, fail2ban et iptables sur le serveur et le client sans succès : nmap me donne toujours le même résultat.

      Es-tu sûr que le nom du partage samba est bien data (on dirait que oui d'après ton premier message) ?

      Je confirme ! Je lui ai même donné le plein pouvoir :

      drwxrwxrwx   2 sylvain sylvain  4096 23 oct.  13:24 data

      Est-ce que le dossier /media/partage existe sous Debian ?

      Oui !

      Vu que le partage est actuellement fait en invité, as-tu essayé : mount -o guest //192.168.1.16/data /media/partage/

      Voici ce qu'il me répond le bougre :

      mount error: Server abruptly closed the connection.
      This can happen if the server does not support the SMB version you are trying to use.
      The default SMB version recently changed from SMB1 to SMB2.1 and above. Try mounting with vers=1.0.
      mount error(112): Host is down


      J'ai essayé également de passer la version de Samba en paramètre sans plus de résultat.

      Côté serveur :

      Voici iptables -L :

      Chain INPUT (policy DROP)
      target     prot opt source               destination         
      fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
      REJECT     all  --  vip1.dyn.hpo.s1.fti.net  anywhere             reject-with icmp-port-unreachable
      ACCEPT     all  --  anywhere             anywhere            
      REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
      ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:54925
      ACCEPT     udp  --  anywhere             anywhere             udp dpts:sesi-lm:cft-3
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:netbios-ns
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:netbios-dgm
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:netbios-ssn
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:microsoft-ds
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:gds-db
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:7078
      ACCEPT     udp  --  anywhere             anywhere             udp dpt:9078
      DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,PSH,URG/FIN,PSH,URG
      DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG
      DROP       tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE
      DROP       tcp  --  anywhere             anywhere             tcp flags:SYN,RST/SYN,RST
      DROP       all  --  anywhere             anywhere             PKTTYPE = broadcast
      ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
      ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
      LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
      
      Chain FORWARD (policy DROP)
      target     prot opt source               destination         
      REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
      
      Chain OUTPUT (policy DROP)
      target     prot opt source               destination         
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:netbios-ns
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:netbios-dgm
      ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:netbios-ssn
      DROP       all  --  anywhere             vip1.dyn.hpo.s1.fti.net 
      ACCEPT     all  --  anywhere             anywhere            
      
      Chain fail2ban-ssh (1 references)
      target     prot opt source               destination         
      RETURN     all  --  anywhere             anywhere

      > Essai de montage en local après création du répertoire /media/partage :

      mount -t cifs -o guest //127.0.0.1/data /media/partage
      mount.cifs: permission denied: no match for /media/partage found in /etc/fstab
      tail -f /var/log/samba</span><span>/*.log

      Cela ne donne rien de pertinent...

      Autres pistes

      Je me connecte très bien en ssh avec Dolphin aux autres PC Debian et Manjaro de la maison. Je n'ai pas encore testé un connexion avec Android. Je souhaite également avoir accès au répertoire partagé depuis mon mobile.

      A+

      Sylvain

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     

    Bonjour,

    Le temps de faire marcher samba, désactive tout ce qui peut être bloquant : fail2ban et iptables côté client et côté serveur (même si a priori le problème ne semble pas venir de là, éliminons les éventuelles blagues le temps de comprendre).

    Le port samba (139) semble ouvert et le routage est correct. Cela voudrait dire que le problème vient bien de samba.

    Tu ne m'as pas dit si tu arrivais sur le serveur à monter ton partage samba. Ça écarterait toutes les considérations réseaux (remplace simplement 192.168.1.16 par 127.0.0.1). Plus exactement, il est bizarre que tu aies une erreur (voir mount -t cifs -o guest //127.0.0.1/data /media/partage) car normalement elle a tous les paramètres (elle est basée sur ce message). En effet, mount fait appel à /etc/fstab seulement si tu omets certains paramètres de la commande, or ici tu as donné la source, le point de montage, les options.

    Concernant tail -f /var/log/samba.log il faut la laisser tournet et regarder ce qui apparaît quand un client tente de se connecter. L'idéal serait que tu tentes la connexion depuis le client et depuis le serveur pour comparer.

    Peut-être aussi que ça vaudrait le coup de faire une authentification avec login et mot de passe (généralement c'est comme ça qu'on fait), car peut être que le problème vient spécifiquement du fait que tu tentes une connexion invité (ne me demande pas pourquoi, je n'utilise jamais samba :p).

    Autres pistes

    Il existe des clients sftp. Pour android tu peux tester AndFTP, et plus généralement n'importe quelle alternative à WinSCP pour Android.

    Bonne chance

    0