[AD DS Security] Sécurité des connexions LDAP et SSL (partie 3)

 

Nous avons déjà vu l'importance de sécurisé les connexions LDAP.

Le blocage de l'authentification simple LDAP, l'exigence d'utiliser une signature avec l'authentification SASL, permet d'améliorer la sécurité de l'authentification, mais ne chiffre pas la connexion vers le contrôleur de domaine et les réponses aux requêtes.

L'utilisation de SSL ou de StartTLS nécessite l'utilisation d'un certificat pour vos contrôleurs de domaine. En plus s'assurer le chiffrement des données pendant le transport, il garantit que l'application cliente ne transmet pas des informations d'authentification pour les requêtes LDAP à n'importe quel serveur. Le poste client doit approuver l'autorité racine dont dépend les certificats des contrôleurs de domaine. Dans le cas des certificats pour les connexions LDAP sécurisées, une autorité de certification d'entreprise comme AD CS est suffisante.

 

SSL ou StartTLS utilisent tous les deux le protocole TLS aujourd'hui même si on a conservé le SSL. SSL n'est plus considéré comme suffisamment fiable aujourd'hui.

 

Nous allons dans cette troisième partie, voir comment générer des certificats pour les connexions LDAP à vos contrôleurs de domaine.

Si vous ne connaissez pas les services de certificats Active Directory, vous pouvez utiliser ce guide qui vous permettra d'installer une autorité AD CS d'entreprise.

Si vous disposez déjà d'une autorité d'entreprise, vous pouvez rapidement créer des certificats pour vos contrôleurs de domaine.

Pour que le certificat soit pris en compte par le contrôleur de domaine, il doit respecter les éléments suivants :

  • Le certificat doit se trouver dans le magasin de certificats personnel de l'ordinateur sur le contrôleur de domaine.
  • Le compte d'ordinateur doit disposer de la clé privée correctement associé au certificat. La clé privée ne doit pas avoir une protection renforcée.
  • L'extension d'utilisation de la clé avancée doit inclure l'objet : 1.3.6.1.5.5.7.3.1
  • Le nom complet (DNS) du contrôleur de domaine doit apparaître soit dans le nom commun, soit dans une entrée DNS du SAN (Subject Alternative Name)
  • Le certificat a été émis par une autorité de certification approuvée par le contrôleur de domaine et les clients LDAPS
  • Le certificat doit utiliser des services cryptographiques (CSP) Schannel pour générer la clé.

 

Pour que l'application cliente prenne en compte le certificat présenté par le contrôleur de domaine, il faut respecter les éléments suivants :

  • Le nom que vous utilisez pour la connexion doit être inclus dans le certificat. Il n'est pas possible d'utiliser l'adresse IP du contrôleur de domaine.
  • L'autorité doit être reconnue comme autorité de confiance.
  • La liste de révocation doit être accessible par l'application.

 

La première étape va être de rendre disponible un modèle de certificat pour les contrôleurs de domaine qui autorise l'authentification du serveur (1.3.6.1.5.5.7.3.1).

Il existe un modèle assez ancien qui porte le nom de « contrôleur de domaine » (DomainControler), qui pourrait convenir.

Le certificat généré avec ce modèle contient dans les noms alternatifs, le nom DNS du contrôleur de domaine.

Pour que votre certificat soit reconnu comme valide par le client LDAP, il faut donc que le connecteur soit configuré avec le nom DNS d'un contrôleur de domaine précis.

Cela ne facilite pas les évolutions et la tolérance aux pannes.

Un autre modèle apparu un peu plus tard avec Windows 2008 est « authentification Kerberos ». Il autorise également l'utilisation du certificat pour l'authentification du serveur, comme le précédent et les noms alternatifs contiennent :

  • Le nom DNS du contrôleur de domaine
  • Le nom DNS du domaine
  • Le nom court du domaine

En utilisant ce type de certificat, vous pourrez utiliser dans votre client LDAP le nom du domaine plutôt que le nom d'un DC en particulier.

Nous allons dupliquer le modèle afin de créer un nouveau modèle « LDAP OverSSL ». Nous allons autoriser l'inscription et l'inscription automatique (si vous souhaitez déployer automatiquement par GPO) au groupe « Domain Controller ».

 

 

Ensuite, vous pouvez automatiser l'inscription avec une GPO sur le paramètre : « client des services de certificats – inscription automatique », dans « Configuration ordinateur\ paramètre Windows \ Paramètre de sécurité \Stratégie de clé »

 

Configuration ordinateur (activée)masquer

Stratégiesmasquer

Paramètres Windowsmasquer

Paramètres de sécuritémasquer

Stratégies de clé publique/Client des services de certificats - Paramètres d'inscription automatiquemasquer

Stratégie

Paramètre

Gestion de certificat automatique

Activé

Option

Paramètre

Inscrire les nouveaux certificats, renouveler les certificats expirés, traiter les demandes de certificats en attente et supprimer les certificats révoqués

Activé

Mettre à jour et gérer les certificats qui utilisent des modèles de certifications d'Active Directory

Activé

 

Pour utiliser les connexions sécurisées, il vous faudra ajouter le certificat de votre autorité racine d'entreprise qui a émis les certificats pour vos contrôleurs de domaine, dans le magasin des autorités approuvées par l'application.

Si votre application utilise le magasin de certificat Windows, il faudra ajouter le certificat dans le magasin d'autorité racines de confiance.

Si votre autorité est une autorité d'entreprise AD CS membre de votre domaine forêt Active Directory, l'autorité devrait être automatiquement ajouté.

Par exemple, dans le cas d'un serveur Apache, vous trouverez une commande Keytool permettant de réaliser cette opération.

keytool -importcert -file RacineLDAP.cer -keystore "%MonDossierApache%\jre\lib\security\cacerts"

RacineLDAP.cer => export du certificat de l'autorité racine (sans la clé privée !!!)

"%MonDossierApache% : chemin d'installation d'Apache.

 

Un moyen rapide de vérifier le certificat renvoyé par le contrôleur de domaine est d'utiliser l'outil « openssl » disponible sur Linux et sur Windows.

La commande suivante permet de voir le certificat retourné :

openssl s_client -CAfile c:\ca\labadcs-ca-certif.cer -connect htrab.lan:636 -showcerts

c:\ca\labadcs-ca-certif.cer : représente le nom du certificat de l'autorité de confiance (AD CS)

htrab.lan : le nom de votre domaine (sera traduit par l'IP d'un de vos DCs)

 

Après l'affichage des données du certificat, vous pourrez retrouver le résultat du contrôle.

 

Si l'autorité n'est pas approuvée la commande précédente indique une erreur dans le contrôle du certificat racine.

 

Sur Windows, vous pouvez tester votre connexion avec l'utilitaire ldap de Windows inclus dans les outils d'administration de serveur distant de Windows :« ldp.exe ».

 

La réponse permet de confirmer l'utilisation de SSL.

 

 

Dans certains cas, si le contrôleur de domaine dispose de plusieurs certificats dans son magasin, il est préférable d'importer le certificat du contrôleur de domaine dans le magasin de certificat du service de domaine Active Directory

L'importation du certificat dans le magasin du compte de service du domaine Active Directory sera vue au prochain article.

 

 

Theme: 

Systeme: 

Annee: 

Type: