环境:
情况:
备份服务器(backuppc
)必须备份Windows10Home客户端。
无域
替代:
用于其他Win7客户端的Cygwin/Rsync由于所涉及的手工工作而被拒绝。
已经知道的Prerequisites:
smbclient支持smb1 2/3协议,因此我不需要设置SMB1注册表攻击来启用SMB1。
如何检查在Windows 2008 R2上启用了哪个SMB版本
问题:我无法挂载管理共享或任何其他共享,也不能在smbtree -b -N
中看到它们
我尝试过的What:
$
)。C$
重命名为mC$
或mC
。C:\test
中添加了一个测试共享所有这些都不能通过smbtree
看到。
连接到共享的Directly (或获取共享列表):
经测试:
smbclient -U WIN10Username -L //CLIENT/
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
smbclient -L //CLIENT/
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
我如何使它与SMB2或SMB3协议一起工作?
发布于 2018-08-22 15:59:01
方法的答案包括多个部分,因为情况可能会有所不同,这取决于您需要什么。
我包括了所有我发现(或相信已经发现)通过各种搜索,帮助我解决我的直接问题。
结果我的内核似乎不直接支持SMB3
基于https://lists.debian.org/debian-kernel/2017/04/msg00266.html
古特:
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.
从我的研究来看,它也不是在扩展的后端(cifs-utils来支持内核从4.11?)
https://packages.debian.org/stretch-backports/allpackages
但是,我对backport部分不太确定,因为这里有较新的内核,但就我的情况而言,我不会为这个特性升级到backport内核,所以我就在这里停止了。
我还不清楚如何让smbtree与SMB3一起工作,而且对于我想在上面发现的问题,我完全放弃了SMB3的想法。
https://www.samba.org/samba/docs/current/man-html/smbtree.1.html
默认情况下,
smbclient的smb协议的默认版本是
SMB1 1
在Windows 10中,默认情况下不支持这一点。
如果用例需要这样做,则必须添加相应的注册表项:
HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 ( DWORD32类型,on值1,off值0)
Powershell司令部(S):
侦查:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
使:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
禁用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
您可能必须更改Windows 10中的文件共享加密级别,以使SMB1也能正常工作:
因为我没有直接测试它,所以我不知道它是否真的需要:
例如,请参见如何从这里执行此操作:
https://www.tenforums.com/tutorials/51024-change-file-sharing-encryption-level-windows-10-a.html
古特:
改变网络与共享中心的文件共享加密级别
现在要让事情真正开始运作
非行政份额:
更改smbclient命令
smbclient -U WIN10Username -L //Client/
至
smbclient -m SMB2 -U WIN10Username -L //Client/
允许您查看该客户端的共享。
作为控制台实际访问它的挂载:
mount -t cifs -o vers=2.0,username=WIN10Username,password=WIN10Password //CLIENTIP/TESTSHARE MOUNTPOINT
或as /etc/fstab条目(在引导时没有自动操作!)
//CLIENTIP/TESTSHARE /MOUNTPOINT cifs vers=2.0,username=WIN10Username,password=WIN10Password 0 0
对于管理共享,您必须进行一次额外的注册表更改(如果您不在域中):
Powershell命令:
Set-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ -Name LocalAccountTokenFilterPolicy -Value 1
从这里取走:
基本上,它所做的是禁用UAC的远程共享访问和维护,所以要小心。
这可能有助于更好地理解其含义,因此,请确定您是否真的想这样做:
#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
您将需要另一个专用于backuppc的帐户,该帐户必须具有共享的读取权限。
backuppcs smbclient默认选项不包括-m SMB2
backuppc使用的命令是:
/usr/bin/smbclient \\\\CLIENT-NAME\\SHARENAME -U Win10Username -E -N -d 1 -c tarmode\ full -Tc -
将其更改为包含-m SMB2
在那之后,我还得到了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
使用-U后添加的密码手动执行此操作
/usr/bin/smbclient -m SMB2 \\\\CLIENT-NAME\\SHARENAME -U Win10Username WIN10Password -E -N -d 1 -c tarmode\ full -Tc -
作品
删除-N也会让我知道它的密码。
由于我不想将它存储在backuppc的配置文件中,所以我将在最终版本中使用凭证方法。
在尝试手动找出backuppc命令和smbclient命令之间的区别之后,我发现-N
在连接过程中导致了不同的行为。
没有-N的工作解决方案(使用用户名密码或凭据文件)并不重要。非行政性的或行政的份额也没有改变任何东西)
/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
Domain= OS=[] Server=[] .切
使用-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
鉴于上述所有信息,我能够使用以下backuppc选项备份Win10管理共享:
SmbClientFullCmd:
硬编码:
$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.
信用档案:
$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.
https://serverfault.com/questions/927526
复制相似问题