Windows : RDP et authentification multifacteur (MFA) avec UserLock
Sommaire
I. Présentation
Dans cet article, je vais traiter la problématique suivante : comment sécuriser les connexions distantes RDP grâce à l'authentification multifacteur ?
Tout d'abord, un rappel sur l'authentification multifacteur, appelée également MFA pour Multi Factor Authentication. Lorsqu'un mécanisme de MFA est en place, l'accès au service concerné est possible seulement lorsque l'utilisateur qui tente de se connecter valide deux facteurs d'authentification. Par exemple, il saisit son mot de passe et ensuite, une seconde authentification est demandée : un code reçut par SMS ou un code via une application type Google Authenticator, par exemple.
Pour la connexion à un serveur applicatif ou d'infrastructure, que ce soit un serveur Active Directory, un serveur RDS, etc... il peut-être intéressant de mettre en place le MFA pour la connexion avec des comptes sensibles ayant des privilèges élevés. Plus largement, le MFA peut s'appliquer à tous les comptes utilisateurs qui se connectent en RDP sur un serveur, on peut imaginer par exemple un serveur RDS qui héberge les applications liées à la comptabilité : cela prend tout son sens de protéger l'intégralité des accès distants.
Il existe différentes solutions tierces sur le marché pour mettre en oeuvre cette couche de sécurité supplémentaire, dans ce tutoriel, la démonstration porte sur l'utilisation du logiciel UserLock de l'éditeur IS Decisions.
- Le cas UserLock
Le logiciel UserLock supporte plusieurs méthodes pour ce facteur supplémentaire qui intervient en plus du mot de passe. D'une part, nous avons la prise en charge des applications TOTP c'est-à-dire avec un mot de passe à utilisation unique basé sur le temps, comme c'est le cas avec les applications suivantes : Google Authenticator, LastPass Authenticator ou encore Microsoft Authenticator. En complément, UserLock est compatible HOTP c'est-à-dire avec certains jetons matériels programmables comme la célèbre YubiKey. Enfin, le token programmable Token2 (TOTP) est lui aussi supporté par UserLock.
UserLock est un logiciel payant qui apporte une couche de sécurité supplémentaire sur votre infrastructure pour protéger vos serveurs Windows, mais aussi les postes de travail. La solution s'appuie sur un agent à déployer sur les clients à sécuriser. Ensuite la configuration et la supervision s'effectuent depuis une console centralisée via un client lourd, mais aussi une interface web.
En complément du MFA, voici quelques cas d'usage du logiciel UserLock :
- Empêcher les accès en dehors de certaines heures
- Restriction sur la connexion : un utilisateur peut se connecter au serveur seulement à partir d'une machine spécifique
- Quota de temps de connexion
- Reporting sur les sessions RDS (utilisateur, date, heure, temps de connexion, IP publique, etc.)
- Surveiller l'activité des comptes utilisateurs sensibles et détecter les comportements suspects
- Etc.
II. Installation de UserLock
L'installation s'effectue assez simplement en suivant l'assistant et la documentation disponible en ligne. Le logiciel s'appuie sur une base de données notamment pour stocker l'activité des utilisateurs et pouvoir réaliser du reporting.
Par défaut, le logiciel utilise une base MS Access pour faciliter l'évaluation du logiciel. En production, il conviendra d'utiliser un système supporté et adapté, à savoir : MS SQL Express, MS SQL Server ou MySQL.
Pour ma part, j'ai utilisé la base MS Access dans le cadre de l'évaluation de cette fonctionnalité, et j'ai simplement installé un serveur principal. La solution propose d'installer un serveur de secours dit "Serveur de sauvegarde" afin d'assurer la haute disponibilité de UserLock dans votre environnement.
Il est à noter que l'outil n'effectue pas de modification sur l'Active Directory ou à son schéma.
Lorsque l'installation est terminée, nous arrivons sur une interface au design agréable et qui rappelle le "Gestionnaire de serveur" de Windows Server.
Pour surveiller et protéger un hôte, il faut déployer un agent UserLock dessus. Plusieurs prérequis sont à prendre en compte pour que l'agent soit déployé à distance et qu'il fonctionne correctement : le ping doit être autorisé entre les deux hôtes, l'accès au registre à distance doit être autorisé pour le serveur UserLock sur l'hôte distant, et de la même façon le serveur UserLock doit pouvoir interagir via le protocole SMB.
Ensuite, le déploiement d'un agent peut s'effectuer en mode automatique ou manuel. Si le mode automatique est activé, lorsqu'un hôte rejoint la zone surveillée (Unités d'organisation de l'AD sélectionnées lors de l'installation) alors l'agent sera automatiquement déployé sur l'hôte. En mode manuel, c'est à l'administrateur de déclencher l'installation.
Pour ma part, j'ai déployé l'agent sur mon serveur SRV-RDS-01 qui est membre du domaine it-connect.local et qui est un serveur RDS.
III. RDP : configurer le MFA avec UserLock
Pour activer le MFA sur un utilisateur, il faut le déclarer en tant que compte protégé dans UserLock. Cette opération s'effectue dans la section "Comptes protégés" du serveur UserLock, à savoir "SRV-MGMT-01" dans mon exemple.
Un assistant est là pour nous guider... Nous pouvons déclarer un compte protégé pour un utilisateur, pour un groupe ou même pour une unité d'organisation complètement, ce qui facilite la gestion et l’homogénéisation des règles entre les comptes sensibles.
Pour ma part, je vais seulement protéger un compte utilisateur.
La recherche directement dans l'annuaire Active Directory permet de trouver le compte utilisateur ciblé, dans mon exemple il s'agit du compte "itconnect_admin".
Il est possible de mettre en place des règles de protection sur une période donnée, cette protection temporaire est configurable avec une date de début et une date de fin. Ici, il s'agit d'une protection permanente.
Il suffit de valider, le compte itconnect_admin apparaît dans la liste des comptes protégés. On peut remarquer que pour cet utilisateur, l'authentification multifacteur est pour le moment sur l'état "non configuré".
Pour configurer cette option, il faut double-cliquer sur le compte protégé dans la liste pour accéder à ses propriétés. Sur la page des propriétés, nous retrouvons une section nommée "Authentification multifacteur" : plutôt intéressant.
Il est nécessaire de passer l'option sur "Activée" et ensuite plusieurs options sont proposées :
- Types de connexion : lorsque le choix "non configuré" est retenu alors le MFA s'applique à toutes les connexions de cet utilisateur protégé. Sinon, on peut indiquer que le MFA s'applique uniquement lorsque l'utilisateur se connecte depuis une connexion distante, par exemple depuis son domicile. Autre choix, appliquer le MFA seulement sur une connexion RDP, autrement dit le MFA ne s'appliquera pas sur une ouverture de session locale.
En complément, une autre option nommée "La MFA sera demandée à ce compte" est proposée. Là encore, c'est intéressant puisque l'on peut indiquer que le MFA soit demandé à chaque connexion, même si l'hôte est connu, ou alors on peut demander une authentification MFA tous les X jours, ou encore lorsqu'il s'agit d'une connexion depuis une adresse IP inconnue jusqu'ici.
Une fois la configuration effectuée, on peut l'appliquer. Il ne reste plus qu'à tester... Mais avant cela, sachez que dans la partie configuration il est possible de personnaliser les messages qui s'affichent sur l'interface MFA que l'on va voir juste après lors d'une tentative de connexion.
IV. Le MFA en action sur une connexion RDP
Maintenant que la configuration est en place, il est temps de tester ! Pour cela, je vais me connecter à distance sur le serveur SRV-RDS-01 où l'agent UserLock est installé, à partir du compte itconnect_admin. Voyons ce qu'il se passe.... Tout d'abord, le mot de passe du compte est utilisateur m'est demandé, ce qui est classique.
Ensuite, un formulaire Multi-Factor Authentication s'affiche à l'écran dans la session RDP et reste en attente avant de me donner accès au serveur. Puisqu'il s'agit de la première utilisation du MFA avec ce compte, je dois l'associer avec l'application mobile en scannant le QR Code (ou saisir le long code qui est à l'écran).
Note : il est à noter que le MFA s'active automatiquement sur tous les serveurs où l'agent est installé. Il n'est pas possible de désactiver le MFA sur un serveur si cela est actif au niveau de l'utilisateur (compte protégé). Si vous ne voulez pas utiliser le MFA sur un serveur, dans ce cas l'agent UserLock ne doit pas y être installé.
Voici le formulaire MFA dans le détail :
Note : sur la copie d'écran ci-dessous, vous remarquerez le bouton "Demander de l'aide". En cas de difficultés à se connecter, un utilisateur peut cliquer sur ce bouton afin qu'une notification soit envoyée au service informatique. Cette notification contiendra notamment l'heure de la connexion, le compte utilisateur et le type de session.
Dans l'application, par exemple Microsoft Authenticator ci-dessous, on ajoute un compte et on scanne le code QR à l'écran pour créer l'association. Ensuite, un code temporaire et temporel s'affiche dans l'application, il faut le saisir dans l'interface MFA.
Si le code saisi est correct, alors la session RDP va s'ouvrir ! ?
Lors des prochaines connexions puisque la clé MFA est déjà générée pour cet utilisateur, il faudra seulement saisir un code que l'on obtiendra via l'application Microsoft Authenticator.
Note : les messages sont disponibles en français, en fait cela se base sur la langue du serveur distant.
Le reporting de UserLock permet d'obtenir la liste des événements liés à la couche MFA, mais aussi de générer des graphiques, par exemple pour avoir le nombre d'événements MFA avec les différents états (MFA réussie, MFA annulée, MFA échouée, etc.) sur une période donnée.
Relativement simple à déployer via UserLock (à voir comment se passe l'intégration sur base de données type SQL Server), l'implémentation du MFA sur une infrastructure renforce nettement la sécurité et cela n'est pas négligeable, surtout avec la tendance actuelle et le boom du télétravail.
Il est à noter que l'éditeur vous propose d'essayer le logiciel gratuitement pendant 30 jours ?
Merci pour la découverte ! je ne connaissais pas , je test de suite.