O Windows 10 não pode se conectar a compartilhamentos Linux Samba, exceto SMB1/CIFS

O Windows 10 não pode se conectar a compartilhamentos Linux Samba, exceto SMB1/CIFS

Tenho um problema no Windows 10 para acessar alguns compartilhamentos do Linux Samba com o seguinte erro:

Check the spelling of the name. Otherwise, there might be a problem with your network. To try to identify and resolve network problems click Diagnose.
Error code: 0x80070035
The network path was not found

Posso navegar com sucesso a partir de um openSUSE 12.1 antigo que usa apenas SMB1/CIFS, mas não de um openSUSE Leap 15 mais recente, exceto se eu forçarNT1protocolo (ou seja, para SMB1/CIFS) ao seu lado, em/etc/samba/smb.conf globalseção:

[global]
...
min protocol = NT1
max protocol = NT1

Para obter informações, por padrãoprotocolo mínimoéLANMAN1eprotocolo máximoéSMB3, esse intervalo inclui entãoNT1protocolo (verValores mínimos máximos do protocolo SMB disponíveis?):

$ testparm --parameter-name="min protocol"
[...]
LANMAN1
$ testparm --parameter-name="max protocol"
[...]
SMB3

E posso acessar essas pastas compartilhadas de outro computador Linux sem forçar o protocolo com o seguinte comando, por exemplo, posso listar pastas:

smbclient -L MyLeap15Computer -N

Ou conecte-se à pasta compartilhada tmp com:

smbclient //MyLeap15Computer /tmp -N

Também confirmei que SMB2 e 3 estão realmente ativos comComo detectar, ativar e desativar SMBv1, SMBv2 e SMBv3 no Windows, e também consegui acessá-los de outro Windows 10. E do computador no qual não consigo acessá-los, executei ping em MyLeap15Computer com sucesso.

De qualquer forma, tecnicamente posso acessar minhas pastas compartilhadas forçando o protocolo NT1, mas como deveria ser possível, quero poder acessá-las do SMB2 ou SMB3, pois há problemas de segurança no SMB1/CIFS (e desativá-lo no Windows 10 também ), também, como posso acessá-los de outro Windows 10 sem forçar este protocolo, então deve ser algo na configuração do Windows, mas não consigo ver qual, pois tudo parece ativo em ambos.

E finalmente, mesmo que o problema pareça estar mais no lado do cliente, aqui está a condição do servidor,/etc/samba/smb.confsem forçarNT1protocolo (esta configuração aceita usuários convidados, então nenhuma credencial precisa ser fornecida para conexão):

[global]
workgroup = WORKGROUP
passdb backend = tdbsam
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = bad user
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = yes
usershare max shares = 100
winbind offline logon = yes
winbind refresh tickets = yes
create mask = 777
directory mask = 777
delete readonly = yes

[tmp]
comment = Temp folder
path = /tmp
browseable = yes
writable = yes
read only = no
guest ok = yes
mangled names = no

Editar: aqui estão mais informações após o que foi sugerido @ JW0914, o que foi sugerido não funcionou, mas encontrei algo interessante nos logs do servidor (adicionadonível de registro = 3para/etc/samba/smb.conf globalseção então olhou/var/log/samba/log.smbddepois de tentar a conexão):

  check_ntlm_password:  Checking password for unmapped user [DOMAIN]\[USER]@[Windows10Computer] with the new password interface
[2020/02/05 14:21:23.845849,  3] ../source3/auth/auth.c:192(auth_check_ntlm_password)
  check_ntlm_password:  mapped user is: [DOMAIN]\[USER]@[Windows10Computer]
[2020/02/05 14:21:23.845879,  3] ../source3/auth/check_samsec.c:399(check_sam_security)
  check_sam_security: Couldn't find user 'USER' in passdb.
[2020/02/05 14:21:23.845890,  2] ../source3/auth/auth.c:332(auth_check_ntlm_password)
  check_ntlm_password:  Authentication for user [USER] -> [USER] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1
[2020/02/05 14:21:23.845910,  2] ../auth/auth_log.c:760(log_authentication_event_human_readable)
  Auth: [SMB2,(null)] user [DOMAIN]\[USER] at [Wed, 05 Feb 2020 14:21:23.845900 CET] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [Windows10Computer] remote host [ipv4:172.168.0.69:56937] mapped to [DOMAIN]\[USER]. local host [ipv4:172.168.0.99:445]
[...]
  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:21:23.847182,  3] ../source3/smbd/server_exit.c:244(exit_server_common)
  Server exit (NT_STATUS_CONNECTION_RESET)

Vejo que o servidor está tentando autenticar com o usuário logado no Windows 10, mas como não existe, ele volta para o usuário convidado, mas a conexão é redefinida logo depois. Por outro lado, com um computador para o qual está funcionando, quando logado com o mesmo domínio/usuário e acessando com sucesso tenho os mesmos logs (nome e IP de computador diferentes), mas no final:

  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:43:21.147396,  3] ../lib/util/access.c:365(allow_access)
  Allowed connection from 192.168.0.77 (192.168.0.77)

Estou investigando isso, mas ficaria feliz se alguém tivesse uma ideia do que está acontecendo.

Editar2: depois de uma rápida olhada, encontrei uma solução alternativaAtualização de outono do Windows 10 e conta de convidado do sambamas ao tentaruso líquidocomando, tenho o seguinte problema, então esta é a minha empresa que pode ter alterado a segurança no computador mais recente (ambos usados ​​estão no mesmo domínio, mas o que não funciona vem de uma instalação mais recente):

You can't access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.

Obrigado

Responder1

No meu caso (Windows 10, antigo Samba 4.2.10 no CentOS 6) o que ajudou foi definir o protocolo min para SMB2, protocolo max para SMB3:

[global]

min protocol = SMB2
max protocol = SMB3

client min protocol = SMB2
client max protocol = SMB3

client ipc min protocol = SMB2
client ipc max protocol = SMB3

server min protocol = SMB2
server max protocol = SMB3

E entãoconectando o compartilhamento como uma unidade de rede ( Explorer -> Home -> Easy access -> Map as drive), colocando o nome do compartilhamento ( \\1.2.3.4\ShareName), marcando "Conectar usando credenciais diferentes", depois Outro, e colocando o nome de usuário no formatoDOMAIN\username.

Ao tentar acessar o compartilhamento no Explorer, ele nunca pedia credenciais, nem consegui especificar o nome de usuário net use \\shareserver\data /user:testuser(obtive o erro de sistema 58).

Responder2

Correr smbpasswd -a useré crucial aqui!

Minha corrida smb.conf:

[global]
    client max protocol = SMB3
    name resolve order = wins lmhosts host bcast
    security = USER
    username map = /etc/samba/smbusers
    idmap config * : backend = tdb

[rootfs]
    create mask = 0644
    force group = root
    force user = root
    path = /
    read only = No

Responder3

Finalmente, graças aNão é possível acessar a pasta compartilhada devido às políticas de segurança da organização, encontrei uma maneira de substituir isso:

  • De regeditir paraHKLM\SOFTWARE\Policies\Microsoft\Windows
  • Crie uma nova chave LanmanWorkstatione dentro dela um novo DWORD nomeado AllowInsecureGuestAuthcom valor1
  • Reinício

Claro que não prescindir da aprovação da sua empresa, só fiz para testar mas estou trabalhando com nossa TI para ver como podemos administrar isso.

Responder4

No meu caso, desabilitar conexões na porta 139/TCP ajudou muito para o erro 0x80070035 na primeira conexão do cliente Windows 10 ao samba Ubuntu 20.04

[global]
...
smb ports = 445
...

Agora, as conexões com o servidor samba dos meus PCs domésticos com Windows 10 estão mais rápidas do que nunca.

Mas eu realmente não sei quais efeitos colaterais isso irá introduzir.

informação relacionada