Déploiement sur environnement RDS/Citrix

Guide de déploiement de l'agent Kabeen sur les environnements de virtualisation RDS et Citrix

L'agent Kabeen est compatible avec les environnements de virtualisation d'applications tels que Microsoft Remote Desktop Services (RDS) et Citrix Virtual Apps.

Principe de fonctionnement

Sur un serveur partagé, plusieurs utilisateurs ouvrent une session sur la même machine. Le modèle est le suivant :

  • Une installation par serveur : le package MSI est installé une seule fois sur chaque serveur partagé, pour toutes les sessions.
  • Une instance d'agent par session : l'agent s'exécute ensuite dans le contexte de chaque session utilisateur ouverte sur ce serveur, sous l'identité de l'utilisateur concerné.
  • Une configuration par utilisateur : chaque instance lit la configuration de son propre utilisateur, ce qui permet de rattacher des utilisateurs différents à des équipes différentes sur un même serveur.

Prérequis

  • Accès administrateur aux serveurs RDS/Citrix
  • Package d'installation MSI de l'agent, disponible depuis la plateforme Kabeen
  • Clé d'API Kabeen et UUID de structure / d'équipe
  • Flux HTTPS sortant (443/TCP) vers api.kabeen.io et intake.kabeen.io

Installer l'agent sur les serveurs partagés

La seule exigence est que l'agent soit installé une fois sur chaque serveur partagé. La méthode reste à votre main, selon la manière dont vous gérez vos serveurs :

  • intégration du MSI à l'image de référence (gold image RDSH, catalogue MCS ou PVS, Citrix App Layering) ;
  • ou installation directe sur chaque serveur avec vos outils habituels : GPO en configuration ordinateur, SCCM, Intune, script de déploiement, installation manuelle.

L'installation se fait en mode silencieux :

msiexec /i kabeen-agent.msi /qn

N'intégrez aucun paramètre utilisateur (clé d'API, structure, équipe) à l'image de référence : cette configuration est distribuée en contexte utilisateur, à l'ouverture de session (voir la section suivante).

Vérifier que l'agent s'exécute bien dans chaque session

Le meilleur contrôle consiste à vérifier, depuis une session administrateur sur le serveur, qu'un processus Kabeen.exe est présent pour chaque session utilisateur ouverte :

tasklist /FI "IMAGENAME eq Kabeen.exe" /V

Vous devez obtenir une ligne par session active, chacune avec son propre numéro de session et le compte de l'utilisateur correspondant. Le Gestionnaire des tâches donne la même information : onglet Détails, avec les colonnes Nom d'utilisateur et ID de session affichées.

Si l'agent est présent pour certaines sessions seulement, ou pour aucune, reportez-vous au cas particulier des sessions RemoteApp ci-dessous.

Configurer la clé d'API et les équipes

Il n'y a aucune spécificité RDS/Citrix sur cette étape : la configuration de l'agent (clé d'API, structure, équipe) se fait par GPO, en configuration utilisateur, exactement comme sur un poste classique. Reportez-vous à l'article Déploiement de l'agent utilisateur par GPO, section Définir les paramètres de l'agent : la procédure y est complète et suffisante.

Le fait que plusieurs utilisateurs partagent le même serveur ne pose pas de difficulté. Chaque session dispose de sa propre instance d'agent, qui lit les valeurs de la ruche HKEY_CURRENT_USER de l'utilisateur connecté. Deux utilisateurs d'équipes différentes ouvrant une session sur le même serveur reçoivent donc leurs paramètres depuis leurs GPO respectives, sans conflit : chaque agent est lancé avec la configuration de son utilisateur.

Cas particulier : sessions RemoteApp et applications publiées

En mode RemoteApp (Microsoft RDS) ou application publiée en mode seamless (Citrix), la session ouverte sur le serveur est allégée : Windows n'y charge pas le shell complet (explorer.exe). Microsoft documente cette limitation — dans une session RemoteApp, ni la clé de registre Run, ni la clé RunOnce, ni les programmes de démarrage ne sont traités (voir KB 951048).

Conséquence : les programmes normalement lancés à l'ouverture de session, dont l'agent Kabeen, ne démarrent pas dans ces sessions. Il faut demander explicitement leur exécution, par l'une des deux méthodes documentées par Microsoft.

Méthode 1 — GPO « Exécuter ces programmes lors de l'ouverture de session utilisateur »

  1. Ouvrez l'éditeur de gestion des stratégies de groupe, puis Configuration ordinateur > Modèles d'administration > Système > Ouverture de session.
  2. Ouvrez le paramètre Exécuter ces programmes lors de l'ouverture de session utilisateur et activez-le.
  3. Cliquez sur Afficher, puis Ajouter, et saisissez le chemin complet de l'exécutable de l'agent :
C:\Program Files\Kabeen\Kabeen.exe

Le chemin complet est obligatoire pour tout exécutable situé hors de %SystemRoot%. Ce paramètre existe également sous Configuration utilisateur, si vous préférez le cibler sur une OU d'utilisateurs plutôt que sur les serveurs.

Méthode 2 — Script d'ouverture de session runonce.exe /AlternateShellStartup

  1. Dans l'éditeur de gestion des stratégies de groupe, ouvrez Configuration utilisateur > Paramètres Windows > Scripts (ouverture/fermeture de session).
  2. Double-cliquez sur Ouverture de session, puis Ajouter.
  3. Dans Nom du script, saisissez runonce.exe.
  4. Dans Paramètres du script, saisissez /AlternateShellStartup.

Cette méthode rejoue les éléments de démarrage standard de la session, dont l'agent Kabeen. Elle évite de coder en dur le chemin de l'exécutable et couvre en une fois toutes les applications concernées par la limitation.

Citrix : les versions récentes du VDA lancent elles-mêmes les programmes de la clé Run dans les sessions seamless, via leur Shell Launcher (ShellAppRuntime.exe). Vérifiez d'abord si l'agent démarre déjà dans une session d'application publiée, et n'appliquez le contournement que si ce n'est pas le cas.

Dans ces sessions, la zone de notification n'est pas affichée : l'agent fonctionne sans icône visible pour l'utilisateur, ce qui ne change rien à la collecte. Après avoir appliqué l'une des deux méthodes, ouvrez une application publiée puis contrôlez la présence du processus Kabeen.exe sous le compte de l'utilisateur, comme indiqué plus haut.

Considérations de performance

  • CPU : impact minimal (~1 % par session)
  • RAM : ~50 Mo par session utilisateur
  • Réseau : envoi de données toutes les 5 minutes (quelques Ko)

Dépannage

L'agent ne démarre pas dans la session

Vérifiez que :

  • L'agent est bien installé sur le serveur hébergeant la session (C:\Program Files\Kabeen)
  • La session n'est pas une session RemoteApp ou une application publiée sans configuration de démarrage (voir le cas particulier ci-dessus)
  • Aucune stratégie de groupe ni règle AppLocker ne bloque l'exécution de Kabeen.exe
  • L'agent n'est pas bloqué par votre EDR/antivirus (voir Autoriser l'agent Kabeen dans votre EDR/antivirus)

Données non remontées

Vérifiez que :

  • Les flux HTTPS sortants vers api.kabeen.io et intake.kabeen.io sont autorisés
  • La clé d'API est valide et correctement distribuée dans la ruche HKEY_CURRENT_USER de l'utilisateur
  • Le pare-feu ne bloque pas le port 443