Redhat 5 com Samba 3.6 leva erro de sistema 58 no Windows 7

1

Atualmente, estou tentando fazer um servidor Standalone Samba Share antigo rodar no Redhat 5 de volta à vida! Ele estava executando a versão 3.0 anteriormente, devido a um monte de problema, decidi atualizar para a versão 3.6 com o pacote oficial. Agora, estou executando corretamente o samba 3.6 no Radhat 5

Red Hat Enterprise Linux Server release 5.11 (Tikanga)

Samba version 3.6.23-12.el5_11

Aqui está minha saída testparm:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[diro]"
Processing section "[dirt]"
Processing section "[dire]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = DUMMY
        server string = Samba %v
        interfaces = 127.0.0.1, eth0
        bind interfaces only = Yes
        client ipc signing = auto
        printcap name = cups
        idmap config * : backend = tdb
        cups options = raw

[diro]
        path = /home/diro
        valid users = usero
        read only = No
        create mask = 0664
        directory mask = 0775

[dirt]
        path = /home/diro/t
        valid users = usero
        read only = No
        create mask = 0777
        directory mask = 0777

[dire]
        path = /home/diro/e
        valid users = usert
        read only = No
        create mask = 0777
        directory mask = 0777

o completo smb.conf:

[global]
        workgroup = DUMMY
        server string = Samba %v
        interfaces = 127.0.0.1 eth0
        bind interfaces only = true
        printing = cups
        printcap name = cups
        load printers = yes
        client ipc signing = auto
        client signing = auto
        log level = 3
        min protocol = core
        map to guest = Bad User
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[diro]
        path = /home/diro
        valid users = usero
        read only = No
        create mask = 0664
        directory mask = 0775

[dirt]
        path = /home/diro/t
        valid users = usero
        read only = No
        create mask = 0777
        directory mask = 0777

[dire]
        path = /home/diro/e
        valid users = usert
        read only = No
        create mask = 0777
        directory mask = 0777

Consigo me conectar a um dos compartilhamentos do localhost:

>$ smbclient //DUMMYMO/diro -U usero usero
Domain=[DUMMY] OS=[Unix] Server=[Samba 3.6.23-12.el5_11]
smb: \>

O que é bom, mas ainda estou me perguntando por que ele não funciona em uma máquina com Windows 7:

>$ net use x: \DUMMYMO\diro /user:usero usero
System error 58 has occurred.

The specified server cannot perform the requested operation.

Ao colocar o nível de log em 3, consigo ver essas linhas de log durante a tentativa de conexão do Windows:

[2017/11/06 15:12:46.107877,  3] lib/access.c:338(allow_access)
  Allowed connection from XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX)
[2017/11/06 15:12:46.108026,  3] smbd/oplock.c:922(init_oplocks)
  init_oplocks: initializing messages.
[2017/11/06 15:12:46.108087,  3] smbd/oplock_linux.c:246(linux_init_kernel_oplocks)
  Linux kernel oplocks enabled
[2017/11/06 15:12:46.108167,  3] smbd/process.c:1609(process_smb)
  Transaction 0 of length 109 (0 toread)
[2017/11/06 15:12:46.108198,  3] smbd/process.c:1414(switch_message)
  switch message SMBnegprot (pid 13707) conn 0x0
[2017/11/06 15:12:46.108463,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108496,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108517,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108537,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108556,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108576,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [NotSmb]
[2017/11/06 15:12:46.108595,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [SMB 2.002]
[2017/11/06 15:12:46.108615,  3] smbd/negprot.c:598(reply_negprot)
  Requested protocol [SMB 2.???]
[2017/11/06 15:12:46.108669,  0] smbd/negprot.c:706(reply_negprot)
  No protocol supported !
[2017/11/06 15:12:46.110716,  1] smbd/process.c:457(receive_smb_talloc)
  receive_smb_raw_talloc failed for client XXX.XXX.XXX.XXX read error = NT_STATUS_CONNECTION_RESET.
[2017/11/06 15:12:46.110790,  3] smbd/server_exit.c:181(exit_server_common)
  Server exit (failed to receive smb request)

Este é o rastreamento de rede:

>$ sudo tcpdump -i eth0 -nn "tcp port 445"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
15:21:05.292627 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: S 946161236:946161236(0) win 8192 <mss 1380,nop,wscale 8,nop,nop,sackOK>
15:21:05.292732 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: S 2489729164:2489729164(0) ack 946161237 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 7>
15:21:05.294416 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: . ack 1 win 258
15:21:05.294748 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: P 1:110(109) ack 1 win 258
15:21:05.294772 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: . ack 110 win 46
15:21:05.298603 IP YYY.YYY.YYY.YYY.445 > XXX.XXX.XXX.XXX.54997: P 1:42(41) ack 110 win 46
15:21:05.300286 IP XXX.XXX.XXX.XXX.54997 > YYY.YYY.YYY.YYY.445: R 110:110(0) ack 42 win 0

Como o log mencionado, o cliente envia um sinalizador RST diretamente após a resposta do servidor e não sei por quê. Eu já tentei muitas soluções como protocolo min, assinatura de servidor sem sucesso.

Eu fiquei sem soluções .. Você tem alguma sugestão?

Note que não tenho acesso de administrador na minha área de trabalho e acho que muitos parâmetros são impostos pelo domínio.

    
por Bisoness 06.11.2017 / 16:48

1 resposta

2

Graças à dica de MadHatter, pude resolver o problema: O cliente requer apenas o SMB2 em vez do SMB3. Esse truque pode ser facilmente aplicado na configuração na seção Global:

max protocol = SMB2

    
por 07.11.2017 / 09:18

Tags