Skip to main content

Windows - Utilisation des comptes gMSA

Confirmé.png

Difficulté : Confirmé


Notions : Serveur, active directory, optimisation de sécurité.

 


 

I. Introduction

 

Applicable à : Windows, toutes version.

Prérequis : l'ordinateur/serveur utilisant le gMSA doit être membre d'un domaine active directory.

 

Afin de sécuriser le contrôle des services et leur accès au système, l’utilisation des groupes et comptes gMSA (Group Managed Service Account) est fortement recommandée.

 

En effet, il s’agit type de compte de service spécial qui a par défaut des accès bien plus restreints qu’un compte utilisateur classique.

 

De plus il n’y pas de nécessité d’attribuer un mot de passe à ceux-ci car ils utiliseront la fonctionnalité d’authentification par couple de clé. Ces clés seront régénérées régulièrement et automatiquement par le système.

 

L’utilisation de ce compte sur des serveurs est limité aux machines appartenant au groupe qui lui est associé.


Ainsi :

  • le compte n’est pas utilisable en dehors du groupe de machine défini
  • il ne s’agit plus en cas d’attaque de deviner un mot de passe mais une couple de clé d’authentification

    • (ce qui est bien plus complexe)

  • Les accès de se compte sont très limités
  • Les clés sont régénérées automatiquement et régulièrement

    image.png

     

    Une clé KDS Doit avoir été préalablement générée. Si nécessaire, il est possible de la générer avec la commande suivante.

     

    Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))

    image.png

     


     

    II. Utilisation du gMSA

     

    2.1 Convention de nommage


    Le Nom du groupe doit respecter le format suivant :

    • [APP_TRIGRAM]_GM_[SERVICE][ENV_NUMBER][2DIGITS_NUMBER]$
    • exemple : DKR_GM_SQL101$

      • DOK est le trigramme pour l’application Docker

      • GM signifie Group Managed

      • SQL est le service type de serveurs contenus dans le groupe (le compte lancera en effet les services SQL)

      • 1 est le numéro d’environnement de production

      • 01 est l’ID du groupe pour l’appli/environnement

      • $ est une convention pour signifier que le compte/groupe est de type gMSA


    Le Nom du compte doit respecter le format suivant :

    • [APP_TRIGRAM]_MG_[SERVICE][ENV_NUMBER][2DIGITS_NUMBER]$
    • $exemple : DKR_MG_SQL101$

      • DOK est le trigramme pour l’application Docker

      • GM signifie Group Managed

      • SQL est le service type de serveurs contenus dans le groupe (le compte lancera en effet les services SQL)

      • 1 est le numéro d’environnement de production

      • 01 est l’ID du groupe pour l’appli/environnement

      • $ est une convention pour signifier que le compte/groupe est de type gMSA


    2.2 Créer les éléments sur le serveurs AD


    Tout d'abord, il faut créer le groupe qui contiendra les machines autorisées à utiliser le compte.

     

    Sur le serveur Active Directory ou via une console Powershell connectée à ce serveur. Entrer les commandes suivantes :

    New-ADGroup -Name "<Nom du groupe>" -GroupScope DomainLocal -Description "Group to allow servers <usage> to use the account <nom du compte gMSA associé>. Created by $env:USERDOMAIN\$env:Username" -path "<Chemin vers le compte format OU=,DC=>"

    image.png

    image.png

     

    Il faut ensuite ajouter les serveurs au groupe.

    image.png


    Puis créer le compte gMSA et l’associer au groupe.

    New-ADServiceAccount -Name "<Nom du compte gMSA>" -DNSHostName "<nom du groupe>.<domaine>.<extention>" -PrincipalsAllowedToRetrieveManagedPassword "<nom du groupe gMSA>" -Enabled $true -ManagedPasswordIntervalInDays "30" -Description "Managed Service Account to launch <service> in <environement>. Created by $env:USERDOMAIN\$env:USERNAME" -path "<Chemin vers le compte format OU=,DC=>"

    image.png

    image.png


    2.3 Utiliser le compte de service


    Enfin sur le serveur de destination, il faut Purger les tickets Kerberos.

    klist -lh 0 -li 0x3e7 purge

     

    Pour vérifier que le compte est utilisable, utiliser la commande :

    Test-ADServiceAccount -Identity "<Nom du compte gMSA>"

    image.png

     

    Puis, paramétrer le service.

     

    Lancer la console des services :

    image.png

     

    Sélectionner le service à modifier puis faire “Clic droit → Propriété

    image.png

     

    La fenêtre s’ouvre.

    image.png

     

    Aller sur l’onglet “Log On”. Cocher la case “This Account”.

    Entrer le compte gMSA sans mot de passe.

     

    Cliquer sur “Apply” puis OK.

    image.png

     

    Redémarrer le service.

    image.png