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égies de clé publique/Client des services de certificats - Paramètres d'inscription automatiquemasquer
Stratégie |
Paramètre |
||||||||
Gestion de certificat automatique |
Activé |
||||||||
|
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.
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.
La réponse permet de confirmer l'utilisation de SSL.