La réponse au howto comprend plusieurs parties car la situation peut être un peu différente selon ce dont vous avez besoin.
J'ai inclus tout ce que j'ai trouvé (ou que je crois avoir trouvé) via les différentes recherches qui m'ont aidé à résoudre mon problème direct.
Le noyau par défaut de Debian 9 Stretch ne gère pas SMB3.
Il s'avère que mon noyau ne supporte pas directement SMB3.
https://unix.stackexchange.com/questions/202961/mounting-smb3-share-with-encryption-fails-mount-error13-permission-denied-s/376166
Sur la base de https://lists.debian.org/debian-kernel/2017/04/msg00266.html
qoute :
Am 22.04.2017 um 17:21 schrieb Ben Hutchings:
On Sat, 2017-04-22 at 16:19 +0100, Ben Hutchings wrote:
On Sat, 2017-04-22 at 14:47 +0200, debian@alpenjodel.de wrote:
Hi!
It´s not possible to mount a enrypted CIFS Share yet. is it possible
to add the following Kernel changes to Debian 8?
No, we don't backport big features like that.
Of course, if this feature is in Linux 4.9 (I don't know) then you have
the option to install the new kernel version from jessie-backports
(https://backports.debian.org/).
Ben.
D'après mes recherches, il n'est pas non plus dans les backports stretch (cifs-utils pour supporter le changement de noyau à partir de la 4.11 ?)
https://packages.debian.org/stretch-backports/allpackages
Cependant, je ne suis pas sûr de la partie backport car il y a des noyaux plus récents, mais dans mon cas, je ne mettrai pas à niveau vers le noyau backport pour cette fonctionnalité, donc je me suis arrêté ici.
smbtree a besoin de plus de paramètres pour fonctionner avec SMB3
Il n'était pas immédiatement clair pour moi comment faire fonctionner smbtree avec SMB3, et avec le problème que j'ai trouvé ci-dessus j'ai abandonné l'idée de SMB3 complètement.
https://www.samba.org/samba/docs/current/man-html/smbtree.1.html
smbclient n'utilise pas SMB2 ou SMB3 par défaut.
La version par défaut du protocole smb pour smbclient est la suivante
SMB1
Cette fonction n'est pas prise en charge par défaut dans Windows 10.
Si vous en avez besoin pour votre cas d'utilisation, vous devez ajouter la clé de registre correspondante :
HKL M:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 (Type DWORD32, valeur 1 pour on, 0 pour off)
Commande(s) Powershell :
Détecter :
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Activer :
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
Désactiver :
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
Ceci est tiré de https://support.microsoft.com/en-us/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-Windows-and
Vous devrez peut-être modifier le niveau de cryptage du partage de fichiers dans Windows 10 pour que SMB1 fonctionne également :
Comme je ne l'ai pas testé directement, je ne sais pas si c'est vraiment nécessaire :
voir par exemple comment faire ici :
https://www.tenforums.com/tutorials/51024-change-file-sharing-encryption-level-Windows-10-a.html
Qoute :
Pour modifier le niveau de cryptage du partage de fichiers dans le Centre Réseau et Partage.
-
Ouvrez le Panneau de configuration et cliquez ou tapez sur l'icône Centre de réseau et de partage.
-
Cliquez/touchez sur le lien Modifier les paramètres de partage avancés sur le côté gauche. (voir la capture d'écran ci-dessous)
-
Développez le profil réseau Tous les réseaux.
-
Sous Connexions de partage de fichiers, sélectionnez "Activer le partage de fichiers pour les appareils qui utilisent un cryptage de 40 ou 56 bits".
Commandes de travail
Maintenant, pour que les choses fonctionnent réellement
Part non-administrative :
modification de la commande smbclient
smbclient -U WIN10Username -L //Client/
まで
smbclient -m SMB2 -U WIN10Username -L //Client/
vous permet de visualiser les actions de ce client.
Comme mountparam pour que la console y accède réellement :
mount -t cifs -o vers=2.0,username=WIN10Username,password=WIN10Password //CLIENTIP/TESTSHARE MOUNTPOINT
ou comme entrée /etc/fstab (pas d'automount au démarrage !)
//CLIENTIP/TESTSHARE /MOUNTPOINT cifs vers=2.0,username=WIN10Username,password=WIN10Password 0 0
Part administrative
Pour le partage administratif, vous devez effectuer une modification supplémentaire du registre (si vous n'êtes pas dans un domaine) :
Commande Powershell :
Set-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ -Name LocalAccountTokenFilterPolicy -Value 1
extrait d'ici :
Impossible de monter un partage Windows dans ubuntu
En fait, il désactive l'UAC pour l'accès et la maintenance des partages à distance, alors soyez prudent.
Cela peut aider à mieux comprendre les implications, donc soyez certain que vous voulez vraiment le faire :
https://www.harmj0y.net/blog/redteaming/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy/
#note the \$ is actually needed!, i did read about Qouting the whole String "//CLIENTIP/C$" but i did not test that
mount -t cifs -o vers=2.0,username=WIN10Username,password=WIN10Password //CLIENTIP/C\$ MOUNTPOINT
les problèmes de backuppc :
Vous aurez besoin d'un autre compte spécifique pour backuppc qui doit avoir les droits de lecture pour le partage.
les options par défaut de backuppcs smbclient n'incluent pas -m SMB2
La commande utilisée par backuppc est :
/usr/bin/smbclient \\\\CLIENT-NAME\\SHARENAME -U Win10Username -E -N -d 1 -c tarmode\ full -Tc -
changez cela pour inclure -m SMB2
Après cela, je reçois toujours NT_STATUS_ACCESS_DENIED :
session setup failed: NT_STATUS_ACCESS_DENIED
session setup failed: NT_STATUS_ACCESS_DENIED
tarExtract: Done: 0 errors, 0 filesExist, 0 sizeExist, 0 sizeExistComp, 0 filesTotal, 0 sizeTotal
en le faisant manuellement avec le mot de passe ajouté après le -U
/usr/bin/smbclient -m SMB2 \\\\CLIENT-NAME\\SHARENAME -U Win10Username WIN10Password -E -N -d 1 -c tarmode\ full -Tc -
travaux
En supprimant le -N, j'obtiens également le mot de passe avec lequel il fonctionne.
Comme je ne voulais pas le stocker dans un fichier de configuration de backuppc, j'utiliserai dans la version finale la méthode du credential.
Après avoir essayé de comprendre quelle était la différence entre la commande backuppc et la commande smbclient manuellement, je me suis rendu compte que la commande -N
entraîne un comportement différent lors de la connexion.
solution fonctionnelle sans -N (avec le nom d'utilisateur, le mot de passe ou le fichier d'identification, peu importe. Le partage non administratif ou administratif ne change rien non plus).
/usr/bin/smbclient -m SMB2 \\\\CLIENTNAME\\test3 -U WIN10Username WIN10Password -E -d 5 -c tarmode\ full -Tc -
/usr/bin/smbclient -m SMB2 \\\\CLIENTNAME\\test3 -A /etc/samba/smb.cred -E -d 5 -c tarmode\ full -Tc -
cut
...
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP_NEGOTIATE_UNICODE
NTLMSSP_REQUEST_TARGET
NTLMSSP_NEGOTIATE_SIGN
NTLMSSP_NEGOTIATE_NTLM
NTLMSSP_NEGOTIATE_ALWAYS_SIGN
NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
NTLMSSP_NEGOTIATE_VERSION
NTLMSSP_NEGOTIATE_128
NTLMSSP_NEGOTIATE_KEY_EXCH
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP_NEGOTIATE_UNICODE
NTLMSSP_REQUEST_TARGET
NTLMSSP_NEGOTIATE_SIGN
NTLMSSP_NEGOTIATE_NTLM
NTLMSSP_NEGOTIATE_ALWAYS_SIGN
NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
NTLMSSP_NEGOTIATE_VERSION
NTLMSSP_NEGOTIATE_128
NTLMSSP_NEGOTIATE_KEY_EXCH
Domaine=[CLIENTNAME] OS=[] Serveur=[] ... couper
Version non fonctionnelle avec -N
:
/usr/bin/smbclient -m SMB2 \\\\CLIENTNAME\\test3 -U WIN10Username WIN10Password -N -E -d 5 -c tarmode\ full -Tc -
/usr/bin/smbclient -m SMB2 \\\\CLIENTNAME\\test3 -A /etc/samba/smb.cred -N -E -d 5 -c tarmode\ full -Tc -
cut
...
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP_NEGOTIATE_UNICODE
NTLMSSP_REQUEST_TARGET
NTLMSSP_NEGOTIATE_SIGN
NTLMSSP_NEGOTIATE_NTLM
NTLMSSP_NEGOTIATE_ALWAYS_SIGN
NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
NTLMSSP_NEGOTIATE_VERSION
NTLMSSP_NEGOTIATE_128
NTLMSSP_NEGOTIATE_KEY_EXCH
SPNEGO login failed: Logon failure
...
cut
...
SPNEGO login failed: Access denied
session setup failed: NT_STATUS_ACCESS_DENIED
Solution de travail pour le client Backuppc Win10
Compte tenu de toutes les informations ci-dessus, je suis en mesure de sauvegarder le partage administratif Win10 avec les options de backuppc suivantes :
SmbClientFullCmd :
Hardcoded :
$smbClientPath -m SMB2 \\$host\$shareName $I_option -U $userName WIN10Password -E -d 5 -c tarmode\ full -Tc$X_option - $fileList
I was unable to use the Password in SmbSharePasswd, but as this wasn't the desired output i did not dig deeper if i made an possible error here.
Credfile :
$smbClientPath -m SMB2 \\$host\$shareName $I_option -A /PATH/samb_creditfile -E -d 5 -c tarmode\ full -Tc$X_option - $fileList
Remember you need permissions for the backuppc user on that file.