Sto creando un ambiente di test per un cliente che sta per distribuire samba4 in 1400 siti remoti e sto riscontrando un problema. Dopo tutto, il mio compito è incorrere in problemi e risolverli.
Active Directory
- radice della foresta e dominio singolo: main.adlab.netdirect.ca
- creato su Windows 2008 R2
- 2008 FFL
- DFL 2008
Ufficio principale
- AD1: DC di Windows 2008 R2
- AD2: Windows 2008 R2 DC
- Client Windows 7 Professional
Filiale
- SLES11SP2 (completamente aggiornato!) Con Samba 4 (pacchetti 4.1.1-7.suse111 da sernet)
- Samba 4 configurato come RODC
Ho configurato una politica di replica password per consentire la memorizzazione nella cache di alcuni account sul controller di dominio di sola lettura e quindi popolare tali account nel controller di dominio di sola lettura:
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]
Io so che queste credenziali vengono memorizzate nella cache del dominio di sola lettura poiché se lascio cadere il link del sito posso accedere con un utente memorizzato nella cache, ma non un altro utente:
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
Quindi l'autenticazione funziona bene! Ma quando provo ad accedere al PC Windows 7 (WIN7-SHIRE) ottengo l'errore:
Si è verificato un errore interno.
Gee. Grazie. Se utilizzo una password errata ottengo:
Il nome utente o password non sono corretti.
Quindi l'autenticazione sta avvenendo, ma a Windows 7 non piace qualcosa . Vedo questi errori nei registri degli eventi e penso che siano rilevanti per questo problema:
Il sistema di sicurezza ha rilevato un errore di autenticazione per il server ldap / sles-shire.main.adlab.netdirect.ca. Il codice di errore dal protocollo di autenticazione Kerberos era "Si è verificato un errore interno. (0xc00000e5)".
Il sistema di sicurezza ha rilevato un errore di autenticazione per il server DNS / sles-shire.main.adlab.netdirect.ca. Il codice di errore dal protocollo di autenticazione Kerberos era "Si è verificato un errore interno. (0xc00000e5)".
Se ho già effettuato l'accesso e provo a utilizzare i servizi di rete ottengo:
Il sistema di sicurezza ha rilevato un errore di autenticazione per il server cifs / sles-shire.main.adlab.netdirect.ca. Il codice di errore dal protocollo di autenticazione Kerberos era "Si è verificato un errore interno. (0xc00000e5)".
Il mio krb5.conf sul server:
[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
Ecco il vero kicker:
Il comportamento si verifica ancora quando il collegamento al sito è attivo . Posso accedere al PC del dominio con account che non sono memorizzati nella cache del controller di dominio di sola lettura, ma se si trovano nel controller di dominio di sola lettura ottengo lo stesso errore.
Ho assicurato che tutti i record SRV appropriati in AD DNS siano presenti. Ho assicurato questo promuovendo un controller di dominio Windows 2008 R2 nella filiale a un ruolo RODC e assicurando la presenza di tutti i record DNS appropriati sia per Windows che per Samba RODC.
(alcuni erano necessari per aggiungerli manualmente poiché non sono ancora stati aggiunti da samba:
SRV _ldap._tcp.${SITE}._sites.DomainDnsZones.${DNSDOMAIN} ${HOSTNAME} 389
SRV _ldap._tcp.${SITE}._sites.ForestDnsZones.${DNSFOREST} ${HOSTNAME} 389
) (deve chiudere la parentesi)
Quindi ... cosa è rotto e come posso ripararlo?
Informazioni 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;