Samba
較舊的 CIFS 無法從 Samba-4 伺服器掛載共享
我有一個媒體播放器,它可以毫無問題地連接到執行 Samba 的主電腦。它執行舊版本的嵌入式 Linux(核心 2.6.22.19-27)並具有 CIFS。
在某些時候,在我升級伺服器上的 Samba 軟體(目前在 FreeBSD-10.4 上執行的 samba-4.6.8)後,播放器失去了這種能力——它仍然可以列出相同的導出共享,但不能再打開任何東西:“錯誤的憑據”。
我手機上支持 SMB 的應用程序可以很好地打開相同的文件夾(使用相同的憑據)…
是否有一些選項我需要顯式打開伺服器以啟用與舊客戶端的某種兼容模式?
更新:根據@Tin 的建議,我在 - 部分添加了以下行
[global]
:smb4.conf
不幸 的max protocol = NT1
是,這並沒有改變——除了媒體播放器,我仍然可以從大多數係統連接,它仍然告訴我,我的憑據都不好。在伺服器上使用
tcpdump
我擷取了以下交換:SMB PACKET: SMBnegprot (REQUEST) SMB Command = 0x72 Error class = 0x0 Error code = 0 (0x0) Flags1 = 0x0 Flags2 = 0x1 Tree ID = 0 (0x0) Proc ID = 1283 (0x503) UID = 0 (0x0) MID = 1 (0x1) Word Count = 0 (0x0) smb_bcc=12 Dialect=NT LM 0.12
伺服器響應的:
SMB PACKET: SMBnegprot (REPLY) SMB Command = 0x72 Error class = 0x0 Error code = 0 (0x0) Flags1 = 0x80 Flags2 = 0x3 Tree ID = 0 (0x0) Proc ID = 1283 (0x503) UID = 0 (0x0) MID = 1 (0x1) Word Count = 17 (0x11) NT1 Protocol DialectIndex=0 (0x0) SecMode=0x3 MaxMux=50 (0x32) NumVcs=1 (0x1) MaxBuffer=16644 (0x4104) RawSize=65536 (0x10000) SessionKey=0xA4AA Capabilities=0x80F3FD ServerTime=Sun Oct 1 18:00:38 2017 TimeZone=240 (0xf0) CryptKey=Data: (1 bytes) ...
然後客戶說:
SMB PACKET: SMBsesssetupX (REQUEST) SMB Command = 0x73 Error class = 0x0 Error code = 0 (0x0) Flags1 = 0x0 Flags2 = 0x1 Tree ID = 0 (0x0) Proc ID = 1283 (0x503) UID = 0 (0x0) MID = 2 (0x2) Word Count = 13 (0xd) Com2=0xFF Res1=0x0 Off2=0 (0x0) MaxBuffer=16644 (0x4104) MaxMpx=50 (0x32) VcNumber=0 (0x0) SessionKey=0x0 CaseInsensitivePasswordLength=24 (0x18) CaseSensitivePasswordLength=24 (0x18) Res=0x0 Capabilities=0x80D0DC Pass1&Pass2&Account&Domain&OS&LanMan= smb_bcc=179 ...
最後是伺服器:
SMB PACKET: SMBsesssetupX (REPLY) SMB Command = 0x73 Error class = 0x6D Error code = 49152 (0xc000) Flags1 = 0x80 Flags2 = 0x3 Tree ID = 0 (0x0) Proc ID = 1283 (0x503) UID = 0 (0x0) MID = 2 (0x2) Word Count = 0 (0x0) NTError = STATUS_LOGON_FAILURE smb_bcc=0
到底是怎麼回事?
更新:我可以掛載任何東西的方法是創建一個密碼為空的帳戶 (
smbpasswd -n ...
) 並進行編輯smb.conf
以允許null passwords
。
好的,這裡是對 Samba-4.5 中引入的預設設置的更改列表。就我而言,我必須明確地將一件事改回“是”以允許我的媒體播放器訪問伺服器:
[global] ntlm auth = yes
我的猜測是新版本禁用了 SMB1。檢查配置是否有類似於:“min protocol = SMB2”的行。
當我(故意)在我的家庭伺服器上禁用 SMB1 時,我得到了類似的結果。所有 Kodi 媒體播放器都無法連接,並引發了有關身份驗證的錯誤。