Aller au contenu

Active Directory

Objectif : inventaire des objets ordinateur AD, plus deux volets optionnels — identités (comptes/groupes à privilège) et SYSVOL/GPO (détection de mots de passe GPP en clair sans jamais les stocker).

Les signaux d'hygiène et de sécurité que ce connecteur lit (comptes sans mot de passe obligatoire, AS-REP, délégations, SPN, comptes inactifs, mot de passe krbtgt, GPP avec mot de passe…) ne figurent plus sur cette page de configuration : ils sont des constats de la page Sécurité → Analyses AD, voir Analyses Active Directory. La page de configuration ne garde qu'un résumé.

Plusieurs domaines

Une forêt compte souvent plusieurs domaines. La page de configuration a donc un onglet par domaine et un bouton + Ajouter un domaine (une configuration vierge, désactivée tant qu'elle n'est pas remplie et enregistrée). Chaque domaine a ses contrôleurs, son compte de service et ses options.

La synchronisation (planifiée comme manuelle) parcourt tous les domaines activés. La période de la tâche est le plus court de leurs intervalles ; un domaine injoignable n'arrête pas les autres.

Supprimer ce domaine efface la configuration et les réglages lus pour lui ; les objets déjà lus (comptes, ordinateurs, groupes) restent. La dernière configuration ne peut pas être supprimée.

Test actif (option)

Au bas de la page, la carte Sécurité offensive — test actif ne porte que l'interrupteur (bouton Désactiver à côté du titre) et le compte de test offensif. Les vérifications qui contactent les machines (partages ouverts, utilisateurs étrangers, résolution OXID, interfaces SMB3) se pilotent depuis la section Sécurité offensive du menu Sécurité (Exécution, Résultats, Réglages).

Le test est désactivé par défaut et réservé aux détenteurs des droits ad_active.manage ou ad_active.run : voir Test actif de l'audit Active Directory.

Prérequis : soit un annuaire accessible en LDAP/LDAPS depuis le serveur InfraRiver avec un compte de service lecture seule (mode Direct), soit un serveur Windows membre du domaine (mode Collecteur Windows, voir plus bas).

Ce qui est lu en plus

Pour les Analyses AD, le connecteur lit aussi :

  • les réglages du domaine (racine du domaine, conteneur de configuration) ;
  • le compte Invité ;
  • les groupes « Pre-Windows 2000 Compatible Access », Protected Users et les groupes de réplication des contrôleurs en lecture seule ;
  • les historiques de SID ;
  • les contrôleurs de domaine ;
  • les comptes de service managés ;
  • la politique de mot de passe et les PSO ;
  • les comptes d'autres domaines et les identités prédéfinies du conteneur ForeignSecurityPrincipals (SID et groupes d'appartenance seulement).

Le compte de service lecture seule suffit pour tout cela, sauf pour les PSO : leur conteneur n'est lisible par défaut que des administrateurs du domaine (voir le guide).

Champ Type Description
Nom du domaine Texte Libellé affiché dans les onglets et les rapports ; vide : le nom DNS du domaine, appris à la première synchronisation.
Mode de collecte Choix Direct : InfraRiver interroge lui-même les contrôleurs de domaine. Collecteur Windows : un script installé sur un serveur de votre site lit l'annuaire et l'envoie à InfraRiver (voir plus bas) ; les champs de connexion (contrôleurs, compte, LDAPS) disparaissent alors.
Contrôleur(s) de domaine Texte Un ou plusieurs DC — repli sur le suivant si le premier est injoignable.
Bind DN Texte Compte de service dédié, distinct de la source d'authentification des utilisateurs InfraRiver (Sources d'identité (LDAP / Active Directory)).
Mot de passe Mot de passe Vide = conserve la valeur enregistrée.
Base DN Texte Point de départ de la recherche LDAP — une OU précise limite le périmètre.
Filtre de recherche LDAP Texte (objectClass=computer) par défaut.
Intervalle de synchronisation Nombre (minutes, 15-1440) Délai entre deux synchronisations.
LDAPS (SSL) Case à cocher Recommandé activé.
Vérifier le certificat TLS Case à cocher À décocher uniquement en test.
Activer le connecteur Case à cocher Décoché : sync retirée.
Collecter les identités Case à cocher Active les collecteurs users/groups — alimente le river accounts.
Collecter SYSVOL Case à cocher Lecture SMB (port 445) — détecte un cpassword GPO sans jamais le déchiffrer/stocker. Nécessite « Collecter les identités ».
Groupes privilégiés additionnels Texte DN additionnels, séparés par virgule, traités comme groupes protégés en plus du plancher fixe.
Bind DN SYSVOL (optionnel) Texte Compte distinct pour SYSVOL si le Bind DN principal n'a pas ce droit.
Mot de passe SYSVOL (optionnel) Mot de passe Mot de passe du Bind DN SYSVOL.
Seuil d'expansion de groupe Nombre (%, 0,1-100) Au-delà de ce pourcentage de l'annuaire, un groupe n'est pas développé membre par membre.
Collecter tous les comptes Case à cocher Balayage complet — peut ingérer un volume important sur un annuaire de production.
Comptes privilégiés uniquement Case à cocher Restreint ce que le balayage complet retient.
Collecter tous les groupes Case à cocher Indépendant de « tous les comptes ».

Plusieurs hôtes dans le champ « Hôte »

Quand plusieurs contrôleurs de domaine sont saisis (séparés par des virgules), InfraRiver essaie chacun une fois puis affiche l'erreur LDAP si aucun ne répond. Le bouton « Tester » (comme celui de tous les connecteurs) n'immobilise jamais l'application.

Collecteur Windows : l'annuaire est chez vous, InfraRiver est ailleurs

Quand le serveur InfraRiver ne peut pas joindre vos contrôleurs de domaine (InfraRiver hébergé, annuaire sur votre site), choisissez le mode Collecteur Windows. Un script PowerShell, installé chez vous, lit l'annuaire et envoie le résultat à InfraRiver par une connexion HTTPS sortante : vous n'ouvrez aucun accès entrant vers votre annuaire.

Où l'installer

Sur un serveur Windows membre du domaine. Pour l'inventaire et les analyses de l'annuaire, un serveur d'administration ordinaire suffit. Pour que GpoRiver reçoive aussi le rapport des GPO (Get-GPOReport, module de gestion des stratégies de groupe), choisissez un contrôleur de domaine : le module y est déjà.

Prérequis :

  • Windows Server 2016 ou plus récent (cas d'un domaine en Windows Server 2019 compris ; PowerShell 5.1 est déjà présent, curl.exe n'est pas nécessaire) ;
  • accès réseau sortant vers InfraRiver (port 443, ou 8443 pour la passerelle mTLS) ;
  • accès réseau vers un contrôleur de domaine (LDAP, port 389, et SMB pour SYSVOL).

Quels droits. Le script s'exécute avec le compte SYSTEM de ce serveur, c'est-à-dire avec l'identité de l'ordinateur dans le domaine : aucun mot de passe n'est stocké ni saisi. Les droits d'un compte ordinateur suffisent pour lire l'annuaire ; comme en mode direct, quelques objets ne sont lisibles que des administrateurs du domaine (par exemple les PSO) : le constat correspondant indique alors « non lu » et jamais « rien à signaler ».

Ce qui est lu, et ce qui ne l'est jamais

Le script ne fait que des lectures :

  • recherches LDAP (ordinateurs, comptes, groupes, GPO, réglages du domaine, modèles de certificats…) ;
  • droits d'accès (propriétaire et ACL, jamais l'audit) de quelques objets sensibles ;
  • les fichiers GptTmpl.inf et Groups.xml de chaque GPO.

Il ne lit aucun secret : ni mot de passe ou condensat, ni mot de passe LAPS, ni clé de récupération BitLocker, ni clé de service. Les valeurs cpassword des préférences de stratégie de groupe sont masquées avant l'envoi : InfraRiver sait qu'il y en a un, jamais lequel.

Le serveur décide de ce qu'il faut lire (le « plan ») ; le script refuse tout plan qui demanderait un attribut secret.

Mise en place.

  1. Sur la page du connecteur (Connecteurs → Active Directory), choisissez le mode Collecteur Windows pour le domaine, enregistrez, puis dans la carte Collecteur Windows saisissez le nom du collecteur et l'adresse d'InfraRiver vue depuis votre site.
  2. Jeton d'ingestion : si aucun jeton n'existe encore pour le canal « Active Directory (collecteur Windows) », laissez le champ vide : InfraRiver en génère un et l'écrit dans le fichier de configuration du collecteur (il n'est affiché nulle part ailleurs). Si un jeton existe déjà, collez-le dans le champ, ou régénérez-le dans Modules → InfraRiver Collector (chaque génération invalide le précédent). Téléchargez ensuite le collecteur (un fichier .zip).
  3. Copiez le .zip sur le serveur Windows, extrayez-le, puis, dans une console PowerShell ouverte en administrateur, lancez .\install.ps1 depuis le dossier extrait. L'installation copie le script dans C:\InfraRiver\AD, importe le certificat client dans le magasin de la machine (clé non exportable, fichiers supprimés du disque) et crée la tâche planifiée InfraRiver-AD-Collect (compte SYSTEM, selon l'intervalle de synchronisation du domaine).
  4. Si le collecteur répond 503 (« token not configured »), aucun jeton n'est enregistré ; s'il répond 401 (« Invalid Bearer token »), le champ token de collect_ad.config.json n'est pas le jeton enregistré (jeton fictif resté en place, jeton régénéré depuis, espace ou guillemet en trop) : recopiez-le tel quel.
  5. Pour un premier essai sans attendre : schtasks /run /tn InfraRiver-AD-Collect, puis lisez C:\InfraRiver\AD\collect_ad.log. La carte Collecteur Windows de la page du connecteur liste les derniers envois (date de lecture, nombre d'objets, taille, état).

Adresses IP des machines

L'annuaire Active Directory ne stocke pas l'adresse IP d'un ordinateur, seulement son nom. Avec le collecteur Windows, le collecteur résout lui-même le nom DNS de chaque ordinateur actif depuis votre domaine (il voit votre DNS interne, ce qu'InfraRiver hébergé ne peut pas faire) et envoie l'adresse IPv4 avec le reste de la lecture.

  • L'adresse complète la fiche serveur seulement si elle est inconnue : une adresse fournie par une autre source (GLPI, collecteur InfraRiver, Zabbix…) n'est jamais remplacée.
  • Les adresses de bouclage, les adresses locales au lien (169.254.x.x) et l'IPv6 ne sont pas retenues.
  • La résolution est limitée en temps (environ 3 minutes pour tout le domaine) : une machine éteinte ou dont le nom ne se résout pas reste sans adresse.
  • En mode direct, InfraRiver ne résout rien lui-même : les serveurs venus d'Active Directory seul restent sans adresse (affichée « — »).
  • Pour profiter de la résolution, retéléchargez le collecteur (version 1.1 du script) depuis la page du connecteur, puis relancez install.ps1 ou remplacez collect_ad.ps1 dans C:\InfraRiver\AD. Un ancien script continue de fonctionner, sans adresses.

Sécurité des échanges

Deux protections s'ajoutent :

  • le jeton (en-tête Authorization) ;
  • un certificat client mTLS propre à ce collecteur, accepté seulement par la passerelle d'ingestion d'InfraRiver.

Si le certificat d'InfraRiver est celui, auto-signé, qu'il génère lui-même, le collecteur l'épingle (empreinte SHA-256 dans son fichier de configuration) : il refuse de parler à un serveur qui en présenterait un autre. Avec un certificat d'une autorité reconnue, Windows le vérifie normalement.

À savoir.

  • La synchronisation d'InfraRiver se déclenche à chaque envoi ; les données portent la date de lecture par le collecteur (pas celle du traitement). Le bouton Synchroniser maintenant retraite le dernier envoi.
  • Un envoi incomplet (collecteur interrompu) est refusé : le dernier envoi complet reste utilisé.
  • Les permissions de certains objets sensibles (comptes privilégiés) ne sont lues qu'à partir de la deuxième exécution : le serveur ne connaît ces comptes qu'après le premier traitement.
  • Un domaine ne peut recevoir que les envois de son propre domaine : un envoi d'un autre domaine est refusé.
  • Le test de la configuration (bouton Tester) vérifie le dernier envoi reçu, pas la connexion à l'annuaire.
  • Le connecteur GpoRiver (analyse des GPO) utilise le même collecteur : une seule installation. Dans GpoRiver, choisissez le mode « Collecteur Windows » et ce domaine ; le collecteur envoie alors aussi la topologie des GPO, SYSVOL et le rapport Get-GPOReport (voir la page GpoRiver).