KB 2796 : GESTION DE L’AUTHENTIFICATION PROXY OLFEO VIA RODC

Publié le 28 novembre 2023Modifié le 8 décembre 2023

CONTEXTE

Une entreprise disposant de plusieurs sites géographiques interconnectés (via MPLS, VPN ou autre) et d’un environnement Microsoft Active Directory pour la gestion des utilisateurs.

Afin d’éviter une consommation du lien inter-sites, l’entreprise a mis en place des RODC (Contrôleur de Domaine en lecture seule) sur les sites distants, permettant ainsi aux utilisateurs de ces sites distants de s’authentifier et d’accéder aux ressources internes en toute sécurité et sans solliciter l’infrastructure Active Directory (RWDC) du site central.

L’objectif est d’appliquer ce fonctionnement au filtrage et à l’authentification des utilisateurs des sites distants en implémentant un équipement Olfeo sur site interfacé avec le RODC de ce même site.

L’authentification est directement réalisée par le proxy Olfeo, elle est obligatoirement de type transparente Kerberos AD. NTLM n’est pas recommandé car déprécié par Microsoft, ce protocole induit par ailleurs une charge réseau conséquente entre le proxy Olfeo et le serveur d’authentification.

Ce document ne décrit pas le contexte d’un environnement avec de multiples domaines Active Directory avec sous sans relations d’approbations, mais ce n’est pas une contrainte pour l’objectif recherché.

ENVIRONNEMENT

Microsoft Windows AD

Prenons l’exemple de l’entreprise AGGLO dont le site central est basé dans la ville de Raismes et l’un des sites distants à Escaudain. Chaque site géographique est représenté par un sous-réseau :

  • Raismes : 10.10.0.0/16 et 10.100.0.0/16
  • Escaudain : 10.145.0.0/16

Les rôles Active Directory principaux sont installés sur le site central (PDC, RWDC) tandis que le site distant dispose d’un RODC. Dans la console « Sites et services Active Directory », chaque site géographique est rattaché au sous-réseau correspondant :

Olfeo

Le domaine Olfeo est composé d’1 machine maitre installée sur le site central de Raismes et d’1 machine esclave installée sur le site distant d’Escaudain.

A noter que dans les bonnes pratiques recommandées par Olfeo il serait préférable d’avoir sur le site central de Raismes un maitre et un esclave. Le maitre n’ayant que pour rôle la centralisation des paramètres et des logs ainsi que l’exploitation des statistiques.

Configuration de la machine maitre Olfeo :

  • Nom d’hôte : OLFEO6V500
  • Adresse IP : 10.100.50.13
  • Serveur LDAP, DNS et NTP : 10.10.41.1

  • Jointe au RWDC PHS-SUN2k16.agglo.fr / 10.10.41.1

Configuration de la machine esclave :

  • Nom d’hôte : OLFEO6V50-ESC
  • Adresse IP : 10.145.3.2
  • Serveur DNS et NTP : 10.145.1.1 / WS-ESC01.agglo.fr (RODC du site)

 

PROCEDURE

Réalisez la jonction au domaine Microsoft Active Directory depuis l’interface d’administration de la machine esclave en précisant l’adresse IP du RODC en tant que serveur d’authentification spécifique.

Jonction au domaine MS Windows AD

La jonction s’effectue obligatoirement sur un RWDC, et c’est l’adresse de ce dernier qui apparaît d’abord en tant que serveur LDAP dans le champ Statut. Après un certain délai, l’Olfeo se rattache au RODC du site distant WS-ESC01.agglo.fr :

Délégation Kerberos

Après jonction de l’Olfeo esclave domaine MS Windows, il faut configurer la délégation depuis les propriétés de l’ordinateur correspondant à partir de la console Utilisateurs et ordinateurs Active Directory :

Cette opération est à réaliser depuis le PDC, après application il faut patienter le temps de la réplication de la configuration.

Réplication des mots de passe sur le RODC

La machine esclave Olfeo doit être ajoutée au groupe d’utilisateurs « Groupe de réplication dont le mot de passe RODC est autorisé » :

Dans ce groupe doivent également être présents tous les utilisateurs et postes clients présents sur les sites distants et rattachés à des RODC.

Dépannage

Impossible de joindre la machine esclave au domaine MS Windows AD

Assurez-vous que les ports sont ouverts entre l’olfeo esclave et le RWDC situé sur le site central. Reportez-vous à la matrice de flux : https://www.olfeo.com/fr/base-de-connaissances/matrice-de-flux

Faire un scan TCP SYN + un scan UDP depuis Olfeo : nmap -sS -sU ip_du_DC

Il arrive que la jonction échoue, l’interface d’administration renvoie alors un message d’erreur sans détails. Aucun fichier de log ne trace les différentes opérations, c’est pourquoi nous recommandons de passer en ligne de commande et d’exécuter manuellement le script de jonction au domaine MS Windows olfeo-join-ad-domain.py qui se trouve dans le répertoire /opt/olfeo/bin :

olfeo-join-ad-domain.py [–timeout=TIMEOUT] [–retry=RETRY] DOMAIN NTP_SERVER

Exemple :

Une fois exécuté, vous devrez renseigner l’identifiant et le mot de passe du compte de l’annuaire utilisé pour la jonction au domaine MS Windows AD.

Ce script réalise les opérations suivantes, dans cet ordre :

  1. Synchronisation NTP avec le serveur indiqué en paramètre
  2. Jonction au domaine MS Windows AD
  3. Obtention d’un ticket Kerberos à l’aide du compte de jonction au domaine MS Windows AD
  4. Création du fichier keytab /etc/squid/HTTP.keytab
  5. Ajout des SPN (Service Principal Name) HTTP
  6. Modification des privilèges et du propriétaire du fichier HTTP.keytab

Le fichier keytab (Key Table) est utilisé par Olfeo pour fournir le service d’authentification Kerberos, il contient plusieurs entrées avec des clés et des SPN. Il est possible de lire son contenu à l’aide de la commande suivante :

klist –kt /etc/squid/HTTP.keytab

En cas d’erreur lors de l’exécution de ce script, les erreurs détaillées s’afficheront directement dans le terminal.

Après jonction au RWDC, la bascule sur le RODC ne se fait pas

Le rattachement au RODC peut être constaté à l’aide de la commande suivante exécutée depuis la machine esclave Olfeo :

wbinfo –dsgetdcname=<DOMAIN-NAME>

Cette commande équivalente à un nltest /dsgetdc sur un client MS Windows.

Cette bascule peut prendre un certain temps, afin de l’accélérer il est possible de purger le cache d’Olfeo :

  1. Dans le chroot Olfeo, lister le contenu du cache d’authentification de Samba à l’aide de la commande :  net cache list

Relevez les différentes informations.

  1. Stoppez winbind à l’aide de la commande : service winbind stop
  2. Purgez le cache de Samba à l’aide de la commande net cache flush sans supprimer les fichiers TDB manuellement.
  3. Redémarrez winbind  à l’aide de la commande service winbind start et listez de nouveau le contenu du cache afin de comparer les informations.
  4. Vérifiez à quel DC l’Olfeo est joint.