
Temos um estranho problema de samba que afeta apenas um usuário. Nossa configuração do samba é a seguinte:
Servidor Red Hat Enterprise Linux versão 5.4 (Tikanga) - Servidor Samba
Samba versão 3.0.33-3.14.el5 - versão Samba
Controlador de domínio padrão WIN2008R2 - Windows DC
Windows 7 64 bits - PCs clientes
O usuário mencionou que enfrentou esse problema depois de forçar o desligamento do PC há algumas semanas. Por direito, para todos os usuários quando acessarmos \\sambaservername
no windows ele mostrará todos os compartilhamentos no servidor samba mas para este usuário assim que iniciar seu PC ele não conseguirá acessar \\sambaservername
, Mensagem de erro
O Windows não consegue acessar
\\sambaservername
Solução alternativa atual para resolver o problema:
Tente acessar um compartilhamento, \\sambaservername
por exemplo \\sambaservername\sharedfolder1
. Mas mesmo ao fazer isso, primeiro será exibido um erro no início, a mensagem de erro é a seguinte
Falha de logon: nome de usuário desconhecido ou senha incorreta.
o usuário precisa inserir as credenciais novamente e poderá acessar o compartilhamento. Depois disso, ele poderá acessar \\sambaservername
sem problemas. Mas assim que ele reiniciar o computador, o problema persistirá.
Solução de problemas feita até agora:
Garanta as seguintes configurações:
Vá para: Painel de Controle → Ferramentas Administrativas → Política de Segurança Local Selecione: Políticas Locais → Opções de Segurança
"Segurança de rede: nível de autenticação do LAN Manager" → Enviar respostas LM e NTLM "Segurança mínima de sessão para SSP NTLM" → desmarcar: Exigir criptografia de 128 bits
Aconselhe o usuário a redefinir sua senha e tentar novamente, mas o problema ainda persiste
Tentei minha conta no PC dos usuários, não houve problemas. Tentei uma conta de usuário em vários outros PCs com Windows 7, incluindo o meu, mas o problema ainda persiste. O Windows XP não tem esse problema.
Certifique-se de que não haja credenciais armazenadas no PC com Windows 7. Verifiquei o gerenciador de credenciais no Painel de Controle e também digitei este comando
rundll32.exe keymgr.dll, KRShowKeyMgr
Reinicie o daemon winbindd no servidor samba, mas sem sucesso.
Suspeito que isso se deva a algum problema de cache, mas não tenho certeza de onde está o problema. Sempre que o usuário tiver erro de acesso \\sambaservername
, os seguintes erros serão registrados no servidor samba:
[2012/10/10 17:10:26, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
[2012/10/10 17:10:27, 1] smbd/sesssetup.c:reply_spnego_kerberos(316)
Failed to verify incoming ticket with error NT_STATUS_LOGON_FAILURE!
Mas após a solução alternativa, não haverá mais erros. Suspeito que depois de ler o artigo listado abaixo, algumas alterações precisam ser feitas no \var\samba\cache
diretório:
- http://www.linuxquestions.org/questions/linux-server-73/getent-passwd-dont-show-ad-groups-and-users-745829/
- http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/tdb.html
- http://lists.samba.org/archive/samba/2010-May/155521.html
- http://lists.samba.org/archive/samba/2011-March/161912.html
- http://lzeit.blogspot.sg/2009/10/samba-shares-inacessible-after-power.html
Existem vários usuários utilizando o servidor samba e gostaria de resolver esse problema sem nenhum impacto.
Eu vi o seguinte artigo:
"winbind offline logon (G) Este parâmetro foi projetado para controlar se o Winbind deve permitir o login com o módulo pam_winbind usando credenciais armazenadas em cache.Se ativado, o winbindd armazenará credenciais de usuário de logins bem-sucedidos criptografados em um cache local.
Padrão: logon offline do winbind = falso
Exemplo: logon offline winbind = true "
Alguma idéia de como excluir a entrada de um usuário no cache local?
Responder1
Não tenho certeza se onbtstat -R
comando (que"limpa e recarrega a tabela de nomes do cache remoto.") ou nbtstat -RR
aquele (que"envia pacotes de liberação de nomes para WINs e depois inicia a atualização.") pode fazer qualquer coisa para impor o tipo de atualização que você está procurando...
Se você quiser conferir o manual,olhe aqui..
Responder2
Verifique se o ntpd está sincronizado com o controlador de domínio. Tive o mesmo problema até hoje e notei uma diferença de tempo de 45 minutos entre o servidor incorreto e o controlador de domínio. Depois de executar o ntpdate, funcionou bem.
Responder3
Na minha experiência, isso geralmente é o resultado de um desvio de tempo no controlador de domínio ou, no seu caso, com apenas um cliente com problema, a máquina cliente conectada. Como o Kerberos inclui parâmetros relacionados ao tempo tanto na solicitação do servidor de autenticação quanto na resposta do servidor de autenticação (AS_Req e AS_rep), uma grande discrepância fará com que o token de sessão seja rejeitado.
AS_Req inclui o tempo de vida do token solicitado: AS_REQ = ( PrincipalClient , PrincipalService , IP_list , Lifetime )
AS_Rep inclui o carimbo de data/hora DC e o tempo de vida aplicado: AS_REP = { PrincipalService , Timestamp , Lifetime , SKTGS }
Portanto, se a variação de tempo estiver fora do Lifetime, a conexão será rejeitada.
CONJECTURA: Não consegui confirmar com documentação que a vida útil é especificada em minutos, mas acho que é porque tive uma máquina que funcionava intermitentemente e a única razão que consegui pensar foi que estava bem na fronteira da vida. Então, por cerca de 30 segundos, funcionaria e então o minuto mudaria e as conexões seriam rejeitadas.