Estou configurando um ambiente de teste para um cliente prestes a implantar o samba4 em 1400 sites remotos e estou com um problema. Afinal, é meu trabalho encontrar problemas e resolvê-los.
Diretório ativo
- raiz da floresta e 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 Windows 7 Professional
Filial
- SLES11SP2 (totalmente atualizado!) Com Samba 4 (pacotes 4.1.1-7.suse111 da sernet)
- Samba 4 configurado como RODC
Eu configurei uma política de replicação de senha para permitir que certas contas sejam armazenadas em cache no RODC e, em seguida, preenchi essas contas no 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 largar o link do site I pode fazer login com um usuário em cache, mas não 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 Windows 7 PC (WIN7-SHIRE), recebo o erro:
Ocorreu um erro interno.
Gee. Obrigado. Se eu usar uma senha incorreta, recebo:
O nome de usuário ou senha está incorreto.
Portanto, a autenticação está acontecendo, mas o Windows 7 não gosta de nada . Eu vejo esses erros nos logs de eventos e acho que são relevantes para esse problema:
O sistema de segurança detectou um erro de autenticação para o servidor ldap / sles-shire.main.adlab.netdirect.ca. O código de falha do protocolo de autenticação Kerberos foi "Ocorreu um erro interno. (0xc00000e5)".
O sistema de segurança detectou um erro de autenticação para o servidor DNS / sles-shire.main.adlab.netdirect.ca. O código de falha do protocolo de autenticação Kerberos foi "Ocorreu um erro interno. (0xc00000e5)".
Se eu já estiver conectado e tentar usar os serviços de rede, recebo:
O Sistema de Segurança detectou um erro de autenticação para o servidor cifs / sles-shire.main.adlab.netdirect.ca. O código de falha do protocolo de autenticação Kerberos foi "Ocorreu um erro interno. (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
Aqui está o verdadeiro kicker:
O comportamento ainda ocorre quando o link do site está ativo . Posso efetuar login no PC do domínio com contas que não estão armazenadas em cache no RODC, mas, se estiverem no RODC, recebo o mesmo erro.
Eu garanto que todos os registros SRV apropriados no AD DNS estejam em vigor. Eu garanti isso promovendo um Windows 2008 R2 DC na filial para uma função RODC e assegurando que todos os registros DNS apropriados estejam presentes para o Windows e o Samba RODC.
(alguns foram necessários para adicionar manualmente, 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 suporte)
Então ... o que está quebrado e como corrigi-lo?
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;