J'installe un environnement de test pour un client sur le point de déployer samba4 sur 1400 sites distants et je rencontre un problème. C'est mon travail, après tout, de rencontrer des problèmes et de les résoudre.
Active Directory
- racine de forêt et domaine unique: main.adlab.netdirect.ca
- créé sur Windows 2008 R2
- 2008 FFL
- DFL 2008
Bureau principal
- AD1: Windows 2008 R2 DC
- AD2: Windows 2008 R2 DC
- Clients Windows 7 Professionnel
Succursale
- SLES11SP2 (entièrement mis à jour!) Avec Samba 4 (packages 4.1.1-7.suse111 de sernet)
- Samba 4 configuré comme RODC
J'ai configuré une stratégie de réplication de mot de passe pour autoriser la mise en cache de certains comptes sur le RODC, puis j'ai rempli ces comptes sur le 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]
Je sais que ces informations d'identification sont mises en cache sur le contrôleur de domaine en lecture seule car si je supprime le lien du site, je peux me connecter avec un utilisateur mis en cache mais pas avec un autre utilisateur:
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
L'authentification fonctionne donc très bien! Mais lorsque j'essaie de me connecter au PC Windows 7 (WIN7-SHIRE), j'obtiens l'erreur:
Une erreur interne s'est produite.
Gee. Merci. Si j'utilise un mot de passe incorrect, j'obtiens:
Le pseudo ou mot de passe est incorect.
Donc, l'authentification est en cours, mais Windows 7 n'aime pas quelque chose . Je vois ces erreurs dans les journaux d'événements et je pense qu'elles sont pertinentes pour ce problème:
Le système de sécurité a détecté une erreur d'authentification pour le serveur ldap / sles-shire.main.adlab.netdirect.ca. Le code d'échec du protocole d'authentification Kerberos était "Une erreur interne s'est produite. (0xc00000e5)".
Le système de sécurité a détecté une erreur d'authentification pour le serveur DNS / sles-shire.main.adlab.netdirect.ca. Le code d'échec du protocole d'authentification Kerberos était "Une erreur interne s'est produite. (0xc00000e5)".
Si je suis déjà connecté et que j'essaie d'utiliser les services réseau, j'obtiens:
Le système de sécurité a détecté une erreur d'authentification pour le serveur cifs / sles-shire.main.adlab.netdirect.ca. Le code d'échec du protocole d'authentification Kerberos était "Une erreur interne s'est produite. (0xc00000e5)".
Mon krb5.conf sur le serveur:
[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
Voici le vrai kicker:
Le problème se produit toujours lorsque le lien de site est en place . Je peux me connecter au PC du domaine avec des comptes qui ne sont pas mis en cache sur le RODC, mais s'ils sont sur le RODC, j'obtiens la même erreur.
Je me suis assuré que tous les enregistrements SRV appropriés dans AD DNS sont en place. J'ai assuré cela en promouvant un contrôleur de domaine Windows 2008 R2 dans la succursale à un rôle RODC et en veillant à ce que tous les enregistrements DNS appropriés soient présents à la fois pour Windows et Samba RODC.
(certains étaient nécessaires pour l'ajout à la main car ils ne sont pas encore ajoutés par samba:
SRV _ldap._tcp.${SITE}._sites.DomainDnsZones.${DNSDOMAIN} ${HOSTNAME} 389
SRV _ldap._tcp.${SITE}._sites.ForestDnsZones.${DNSFOREST} ${HOSTNAME} 389
) (doit fermer le support)
Alors… qu'est-ce qui est cassé et comment le réparer?
Info 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;