Clientes Win7 que falham com credenciais armazenadas em cache no RODC do samba4

9

Estou configurando um ambiente de teste para um cliente prestes a implantar o samba4 em 1400 sites remotos e estou me deparando com um problema. É meu trabalho, afinal, encontrar problemas e resolvê-los.

Active Directory

  • raiz da floresta & domínio único: main.adlab.netdirect.ca
  • criado no Windows 2008 R2
  • 2008 FFL
  • 2008 DFL

Escritório principal

  • AD1: Windows 2008 R2 DC
  • AD2: Windows 2008 R2 DC
  • Clientes do Windows 7 Professional

Filial

  • SLES11SP2 (totalmente atualizado!) com o Samba 4 (pacotes 4.1.1-7.suse111 da sernet)
  • Samba 4 configurado como RODC

Configurei uma política de replicação de senha para permitir que determinadas contas sejam armazenadas em cache no RODC e, em seguida, preenchidas essas contas para o RODC:

sles-shire:~ # samba-tool rodc preload 'win7-shire$' --server main.adlab.netdirect.ca
Replicating DN CN=WIN7-SHIRE,CN=Computers,DC=main,DC=adlab,DC=netdirect,DC=ca
Exop on[CN=WIN7-SHIRE,CN=Computers,DC=main,DC=adlab,DC=netdirect,DC=ca] objects[1] linked_values[2]

sles-shire:~ # samba-tool rodc preload 'win7-shire-2$' --server main.adlab.netdirect.ca
Replicating DN CN=WIN7-SHIRE-2,CN=Computers,DC=main,DC=adlab,DC=netdirect,DC=ca
Exop on[CN=WIN7-SHIRE-2,CN=Computers,DC=main,DC=adlab,DC=netdirect,DC=ca] objects[1] linked_values[1]

sles-shire:~ # samba-tool rodc preload 'bilbo' --server main.adlab.netdirect.ca
Replicating DN CN=Bilbo Baggins,OU=Shire,OU=Offices,DC=main,DC=adlab,DC=netdirect,DC=ca
Exop on[CN=Bilbo Baggins,OU=Shire,OU=Offices,DC=main,DC=adlab,DC=netdirect,DC=ca] objects[1] linked_values[2]

Eu sei que essas credenciais estão sendo armazenadas em cache no RODC, pois se eu eliminar o link do site, posso fazer login com um usuário em cache, mas não com um usuário diferente:

michael@sles-shire:~> smbclient //sles-shire.main.adlab.netdirect.ca/sysvol -U michael
Enter michael's password: 
session setup failed: NT_STATUS_IO_TIMEOUT

michael@sles-shire:~> smbclient //sles-shire.main.adlab.netdirect.ca/sysvol -U bilbo
Enter bilbo's password: 
Domain=[MAIN] OS=[Unix] Server=[Samba 4.1.1-SerNet-SuSE-7.suse111]
smb: \> ls
  .                                   D        0  Mon Nov 18 16:09:44 2013
  ..                                  D        0  Mon Nov 18 16:11:15 2013
  main.adlab.netdirect.ca             D        0  Wed Nov 20 17:54:13 2013

Portanto, a autenticação está funcionando bem! Mas quando tento entrar no PC com Windows 7 (WIN7-SHIRE), recebo o erro:

An internal error has occurred.

Nossa. Obrigado. Se eu usar uma senha incorreta, recebo:

The user name or password is incorrect.

Portanto, a autenticação está acontecendo, mas o Windows 7 não gosta de alguma coisa . Eu vejo esses erros nos logs de eventos e acho que eles são relevantes para esse problema:

The Security System detected an authentication error for the server ldap/sles-shire.main.adlab.netdirect.ca. The failure code from authentication protocol Kerberos was "An internal error occurred. (0xc00000e5)".

The Security System detected an authentication error for the server DNS/sles-shire.main.adlab.netdirect.ca. The failure code from authentication protocol Kerberos was "An internal error occurred. (0xc00000e5)".

Se eu já estiver conectada e tentar usar serviços de rede, obtenho:

The Security System detected an authentication error for the server cifs/sles-shire.main.adlab.netdirect.ca. The failure code from authentication protocol Kerberos was "An internal error occurred. (0xc00000e5)".

Meu krb5.conf no servidor:

[libdefaults]
    default_realm = MAIN.ADLAB.NETDIRECT.CA
    dns_lookup_realm = true
    dns_lookup_kdc = true

[realms]

[logging]
    kdc = FILE:/var/log/krb5/krb5kdc.log
    admin_server = FILE:/var/log/krb5/kadmind.log
    default = SYSLOG:NOTICE:DAEMON

Este é o verdadeiro kicker:

O comportamento ainda ocorre quando o link do site está para cima . Eu consigo fazer login no domínio do PC com contas que não estão armazenadas em cache no RODC, mas, se estiverem no RODC, recebo o mesmo erro.

Eu assegurei que todos os registros SRV apropriados no DNS do AD estão em vigor. Assegurei isso promovendo um DC do Windows 2008 R2 na filial para uma função de RODC e garantindo que todos os registros DNS apropriados estejam presentes para o RODC do Windows e do Samba.

(alguns foram necessários para adicionar à mão, pois ainda não foram adicionados pelo samba:

SRV _ldap._tcp.${SITE}._sites.DomainDnsZones.${DNSDOMAIN} ${HOSTNAME} 389
SRV _ldap._tcp.${SITE}._sites.ForestDnsZones.${DNSFOREST} ${HOSTNAME} 389

) (deve fechar o colchete)

Então… o que está quebrado e como conserto?

Informações do SPN

> dsquery * "CN=SLES-SHIRE,OU=Domain Controllers,DC=main,DC=adlab,DC=netdirect,DC=ca" -attr servicePrincipalName
  servicePrincipalName
  ldap/SLES-SHIRE;
  ldap/4116d553-d66b-4c8b-9a60-90380ac69c04._msdcs.main.adlab.netdirect.ca;
  ldap/SLES-SHIRE.main.adlab.netdirect.ca/main.adlab.netdirect.ca;
  HOST/SLES-SHIRE.main.adlab.netdirect.ca/main.adlab.netdirect.ca;
  ldap/SLES-SHIRE.main.adlab.netdirect.ca;
  ldap/SLES-SHIRE.main.adlab.netdirect.ca/MAIN;
  HOST/SLES-SHIRE.main.adlab.netdirect.ca/MAIN;
  RestrictedKrbHost/SLES-SHIRE.main.adlab.netdirect.ca;
  RestrictedKrbHost/SLES-SHIRE;
  GC/SLES-SHIRE.main.adlab.netdirect.ca/main.adlab.netdirect.ca;
  HOST/SLES-SHIRE.main.adlab.netdirect.ca;HOST/SLES-SHIRE;

> dsquery * "CN=WIN7-SHIRE,CN=Computers,DC=main,DC=adlab,DC=netdirect,DC=ca" -attr servicePrincipalName
  servicePrincipalName
  TERMSRV/WIN7-SHIRE.main.adlab.netdirect.ca;
  TERMSRV/WIN7-SHIRE;
  RestrictedKrbHost/WIN7-SHIRE;
  HOST/WIN7-SHIRE;
  RestrictedKrbHost/WIN7-SHIRE.main.adlab.netdirect.ca;
  HOST/WIN7-SHIRE.main.adlab.netdirect.ca;
    
por MikeyB 21.11.2013 / 07:32

2 respostas

0

Parece que os problemas podem ter a ver com todos os becos sem saída e fios soltos associados a uma instalação exploratória / de teste.

Após restaurar o ambiente e refazer o AD e a configuração do RODC a partir de um procedimento de configuração real, esse cenário funcionou perfeitamente sem nenhum problema!

    
por 17.12.2013 / 22:25
2

É um tiro no escuro, mas eu tentaria: parece-me alguma incompatibilidade entre o win7 e o RODC baseado em samba em termos de configurações de nível de segurança. Eu também presumo que alguma configuração de segurança padrão no win 7 é muito restritiva e que o samba não suporta. Tentarei relaxar as configurações de segurança no win 7 alterando a política local: Configuração do computador- > Configurações do Windows- > Configurações de segurança- > Políticas locais- > Opções de segurança.

Os suspeitos comuns incluem, mas não se limitam a:

Cliente de rede da Microsoft: assinar digitalmente as comunicações (se o servidor concordar) Cliente de rede da Microsoft: Enviar senha não criptografada para servidores SMB de terceiros Segurança de rede: nível de autenticação do LAN Manager Segurança de rede: requisitos de assinatura do cliente LDAP Segurança de rede: segurança de sessão mínima para clientes baseados em NTLM SSP (incluindo RPC seguro) Requer confidencialidade na mensagem Exigir segurança da sessão NTLMv2 Requer criptografia de 128 bits

    
por 17.12.2013 / 18:07