Exiger l’authentification avec signature pour LDAP

https://learn.microsoft.com/en-US/troubleshoot/windows-server/identity/enable-ldap-signing-in-windows-server

Une communication sécurisée avec un serveur LDAP nécessite plus qu’une simple authentification.

Lorsque la session LDAP n’utilise pas un chiffrement SSL/TLS, elle utilise le SASL (Simple Authentification and Security Layer).
Vous pouvez amélioré significativement la sécurité d’un serveur d’annuaire en configurant le serveur pour rejeter les liaisons LDAP SASL qui ne requiert pas de signature pour vérifier l’intégrité, ou pour rejeter les liaisons LDAP simples qui sont faites en clair, sans passer par un chiffrement TLS/SSL.
Les liaisons SASL peuvent inclure des protocoles tels que Kerberos, NTLM…

Toutefois, le trafic réseau en clair est susceptible de faire l’objet d’attaques de type Replay ou MIM (Man in the middle). Un attaquant peut intercepter la tentative d’authentification et l’émission d’un ticket, puis se servir de ce ticket pour se faire passer pour l’utilisateur légitime dans le cas d’une attaque replay, ou altérer les paquets entre le client et le serveur, l’attaquant peut amener un serveur à prendre des décisions basées sur des requêtes falsifiées du client LDAP.

Pour implémenter les recommandations visant à empêcher ce type de liaisons, il faut déterminer les clients qui recourent aux liaisons LDAP SASL non signées, car nous allons interdire ces connexions, ce qui entraînera un échec de connexion pour les clients qui n’ont pas été configurés correctement.

Pour aider à identifier les clients utilisant les liaisons LDAP non chiffrées, l’AD DS (Active Directory Domain Services) ou le LDS (Lightweight Directory Server), nous allons nous basé sur l’évènement qui à comme ID 2887, car l’AD journalise un résumé de cet événement une fois toutes les 24 heures pour indiquer le nom de liaisons de ce type qui se sont produite.
Avant de mettre la mesure en place, il est recommandé d’observer quotidiennement cet événement pour identifier les liaisons et les clients.
Si aucun événement de ce type n’est observé pendant une période prolongée, nous vous recommandons de configurer le serveur de manière à ce qu’il rejette catégoriquement ces liaisons.

L’ID 2887 : cet événement est enregistré à chaque fois qu’un ordinateur client essaie une liaison LDAP non signée. Il indique l’adresse IP du client et le nom du compte qui a été utilisé lorsque l’ordinateur client a tenté de s’authentifier.


La mise en place de la solution :

En utilisant les stratégies de groupes :

Stratégie à appliquer sur le serveur (contrôleur de domaine) :

  • Créez une stratégie de groupe au niveau du domaine, et donnez lui un nom.
  • Clique droit sur la stratégie qu’on vient de créer, et choisissez Modifier
  • Dans : Configuration ordinateur > Stratégies > Paramètres de sécurité > Stratégies locales > Options de sécurité >
  • Double click sur la stratégie : Contrôleur de domaine : configuration requise pour le jeton de liaison du canal du serveur LDAP
  • Cochez Définir ce paramètre de stratégie, et choisissez Toujours.

Stratégie à appliquer sur le client :

  • Gardez la même stratégie que vous avez créer précédemment, ou créez-en une autre.
  • Modifiez la stratégié.
  • Dans : Configuration ordinateur > Stratégies > Paramètres de sécurité > Stratégies locales > Options de sécurité >
  • Double click sur la stratégie : Sécurité réseau : conditions requises pour la signature de client LDAP
  • Cochez Définir ce paramètre de stratégie, et choisissez Exiger la signature.

Après avoir appliqué les modifications avec en redémarrant le serveur, ou en appliquant un gpupdate, on pourra tester la configuration avec ldp.exe.

  • Windows + R
  • Tapez Exécuter
  • Dans la zone de texte, tapez ldp.exe et cliquez sur OK
  • Sélectionnez Connexion > Se connecter
  • Entrez le nom (FQDN) du serveur que vous voulez tester, le port 389, et les deux options décochés
  • Une fois vous êtes connecté, cliquez sur Connexion > Lier
  • Entrez des identifiants (domain\utilisateur)
  • Choisissez Liaison simple dans le type de liaison et cliquez sur OK

Si votre configuration est correcte vous allez recevoir un message stipulant qu’il y’a une erreur :
Error <8>: ldap_simple_bind_s() failed: Authentification ferme requise
ou
Error 0x2028 Une méthode d’authentification plus sécurisée est nécessaire pour ce serveur.

Autrement il faut définir la contrainte par clé de registre :

L’entrée de registre LdapEnforceChannelBindings doit être explicitement créée.

Démarrer > Exécuter > tapez regedit et sélectionnez OK
Au niveau du registre cherchez la clé suivante :
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > NTDS > Parameters
Vous devez avoir deux clés:
LdapEnforceChannelBinding REG_DWORD 0x00000002 (2)
ldapserviceintegrity REG_DWORD 0x00000002 (2)

Les chiffres disponible dans la partie donnée (2) ont un sens :
0 : Désactivé.
1 : Activée uniquement lorsque c’est supporté.
2 : Activée tout le temps.

Le serveur LDAP réagit dynamiquement aux modifications apportées à cette entrée de registre. Par conséquent, il n’est pas nécessaire de redémarrer l’ordinateur après avoir appliqué la modification du registre.

Retour en haut