MaDoVi - Le wiki

Machines - Données - Virtualisation

Outils pour utilisateurs

Outils du site


archives:reseau:smbv1_windows

Récupérer les partages réseau avec W10

1. Ce qui se passe

L'outil Samba de partage réseau utilise un protocole définit par Microsoft et nommé SMB.
Sur le VHS – au moins depuis les versions 6.x.x du firmware (la version 7 devrait changer cela) – le serveur samba installé en version 3.6.24 supporte le protocole SMB dans ses versions v1 et v2.

Ainsi, les machines clientes qui s'y connectent doivent également être compatibles SMB1 et/ou SMB2, qu'elles soient sous Windows, MacOS, Linux ou autre.

La version SMB est négociée entre le client et le serveur à la connexion: le protocole utilisé correspond a priori à la version proposée initialement dans la première connexion du client, si elle est supportée par le serveur.

Les clients Microsoft sous Windows 10 ne supportent plus SMB1 pour des raisons de sécurité. Cependant il semble y avoir un bug sur cet OS: la première connexion s'effectue en SMB1 - que le VHS accepte puisqu'il la supporte. Et ensuite seulement le client Windows 10 augmente sa version et ne tolère plus qu'une SMB2 minimum…:-? Forcément, le NAS ne sait plus quoi faire et la connexion n'est pas opérationnelle.


2. Contournement

Les versions SMB maximales supportées par les différents clients correspondent au tableau ci-contre. Windows 10 n'y figure pas: il est, lui, capable d'aller jusqu'à SMB 3.11.

Il s'agit bien de versions maximales: toutes les versions plus faibles sont également supportées, donc y compris SMB1, sauf pour Windows 10, «qui dit oui, puis qui dit non» ! On voit donc que la version commune, supportée à la fois par les clients Windows et par le serveur est SMB2.

Plutôt que de faire des modifications sur tous les clients, le plus simple est de modifier à un seul endroit – côté serveur VHS – la configuration, pour imposer cette version SMB2 commune.

Les manipulations pour le faire sont proposées ci-dessous.



Mais attention: elles ne règlent pas le cas ou votre …«parc» est très hétérogène, avec un client Windows 10 (ou plus d'un) et de vieux … Windows XP par exemple :-O: SMB1 obligatoire pour lui.

Trois options dans ce cas:

  • Attendre le correctif sur Windows 10 (il existe peut-être déjà)
  • Appliquer la manip décrite ici par Scavendoa2 sur les postes Windows 10. Mais faites-le seulement si vous êtes coincés: «Une faille dans la version 1 de ce protocole (SMBv1), nommée EternalBlue, est en cause pour la diffusion en mai 2017 d'un des plus grands ransomware de l'histoire d'internet, WannaCry» (Wikipedia). Imposer la SMB2 (et donc interdire SMB1) sur le serveur est ainsi une bonne idée !
  • Faire autrement pour les «vieux»: ftp, ou bien poubelle 8-o, ou mieux: un petit Linux à la place…;-)

3. Mise en œuvre

Les manipulations se font en ligne de commande sur le serveur VHS via un accès ssh.

3.1. Tester la modification

  • Sauvegarder la config (au cas où… mais un reboot suffira tant que le § 3.2 n'est pas joué)
admin@sesame:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original
  • Modifier la configuration: ajout d'une ligne qui fixe la version de protocole
admin@sesame:~$ sudo sed -i "/\[global\]/a \protocol = SMB2" /etc/samba/smb.conf
  • Tester la configuration: rechargement de la configuration du serveur samba
admin@sesame:~$ sudo service smbd reload

☛ Vérifier votre connexion / partage samba depuis votre poste Windows 10 et/ou d'autres

3.2. Persistance

Si votre partage Windows est opérationnel, il s'agit de rendre la modification de paramétrage persistante. Pour faire cela, on joue la même commande de configuration ci-dessous, mais appliquée cette fois aux fichiers template. Ceci permettra de conserver cette config. même après un arrêt du serveur.

Il faut donc jouer les deux commandes ci-dessous:

admin@sesame:~$ sudo sed -i "/\[global\]/a \protocol = SMB2" /opt/vht/etc/templates/core/samba/smbwor.conf
admin@sesame:~$ sudo sed -i "/\[global\]/a \protocol = SMB2" /opt/vht/etc/templates/core/samba/smb.conf


La commande de redémarrage du serveur samba, suivi d'un nouveau test, vous permettra de valider l'ensemble:

admin@sesame:~$ sudo service smbd restart


3.3. Retour arrière

Pour remettre les fichiers d'origine, jouer les 3 commandes ci-dessous, toujours en ssh:

admin@sesame:~$ sudo sed -i "/protocol = SMB2/d" /opt/vht/etc/templates/core/samba/smbwor.conf
admin@sesame:~$ sudo sed -i "/protocol = SMB2/d" /opt/vht/etc/templates/core/samba/smb.conf
admin@sesame:~$ sudo sed -i "/protocol = SMB2/d" /etc/samba/smb.conf

Prise en compte par arrêt / relance de la machine, ou plus simplement du serveur samba:

admin@sesame:~$ sudo service smbd restart

archives/reseau/smbv1_windows.txt · Dernière modification: 04/10/2019 20:58 de Cram28