Échec des clients Win7 avec les informations d'identification mises en cache sur RODC samba4

9

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;
MikeyB
la source

Réponses:

2

C'est long mais j'essaierais: il me semble qu'il y a une incompatibilité entre win7 et RODC basé sur la samba en termes de paramètres de niveau de sécurité. Je suppose également que certains paramètres de sécurité par défaut sur Windows 7 sont trop restrictifs que samba ne prend pas en charge. J'essaierai d'assouplir les paramètres de sécurité sur Windows 7 en modifiant la politique locale: Configuration ordinateur-> Paramètres Windows-> Paramètres de sécurité-> Stratégies locales-> Options de sécurité.

Les suspects habituels comprennent, sans s'y limiter:

Client réseau Microsoft: Signer numériquement les communications (si le serveur est d'accord) Client réseau Microsoft: Envoyer un mot de passe non chiffré à des serveurs SMB tiers Sécurité réseau: Niveau d'authentification LAN Manager Sécurité réseau: Exigences de signature du client LDAP Sécurité réseau: Sécurité de session minimale pour NTLM SSP (( y compris les clients RPC sécurisés) Exiger la confidentialité des messages Exiger la sécurité de la session NTLMv2 Exiger un cryptage 128 bits

Strongline
la source
0

Il semble que les problèmes aient pu être liés à toutes les impasses et aux fils lâches associés à une installation d'exploration / de test.

Après avoir restauré l'environnement et refaites AD et la configuration RODC à partir d'une procédure de configuration réelle, ce scénario a parfaitement fonctionné sans aucun problème!

MikeyB
la source