Windows Server 2012 / 2012 R2 - Gérer plusieurs serveurs à distance de façon sécurisée grâce à WinRM HTTPS

Page 1 / 1

Précédemment, nous vous avions expliqué comment gérer à distance des serveurs sous Windows Server 2012 avec interface graphique ou sans (qu'ils soient dans un domaine ou un groupe de travail).
Néanmoins, WinRM fonctionnait en mode non sécurisé, car lorsque vous l'activez, celui-ci utilise le protocole HTTP par défaut.

Si vos serveurs sont joints à votre domaine Active Directory, voici comment sécuriser la gestion à distance de Windows Server 2012 grâce à la version HTTPS de WinRM.

  1. Configuration utilisée
  2. Création du modèle de certificat
  3. Générer le certificat automatiquement via GPO
  4. Activer la version HTTPS de WinRM
  5. Ajouter le serveur dans le gestionnaire de serveur

1. Configuration utilisée

Dans ce tutoriel, nous utiliserons :

  • un serveur Active Directory et une autorité de certification dont le serveur est nommé AD et qui possède l'adresse IP : 10.0.0.101
  • un serveur en mode Core nommé IW-SERVER et possédant l'adresse IP : 10.0.0.102
  • un serveur Windows Server 2012 avec interface graphique nommé WS2012-CLIENT et possédant l'adresse IP : 10.0.0.103

Notez que ces 3 serveurs sont joints à l'Active Directory pour faciliter le déploiement de WinRM en version sécurisée (HTTPS).

Si vous avez besoin d'aide pour joindre votre serveur Windows Server 2012 Core à votre domaine Active Directory, référez-vous à l'étape "Joindre votre serveur Core à un domaine" de notre tutoriel : Windows Server 2012 - Installer, configurer et utiliser Windows Server 2012 en mode Core

2. Création du modèle de certificat

Pour que WinRM puisse utiliser le protocole HTTPS, il faudra bien évidemment générer un certificat adapté pour le serveur distant.
Sur le serveur où vous avez installé votre autorité de certification, faites un clic droit "Gérer" sur "Modèles de certificats".

Conformément à la documentation officielle de Microsoft, nous nous baserons sur le modèle de certificat "Serveur Web".
Faites un clic droit sur ce modèle et cliquez sur : Dupliquer le modèle.

Indiquez "WinRMHTTPS" (sans espace) pour le nom complet du modèle.

Dans l'onglet "Nom du sujet", choisissez :

  • Construire à partir de ces informations Active Directory
  • Format du nom du sujet : Nom commun

Puis, cochez uniquement la case "Nom DNS" pour l'information de substitution du sujet.

Dans l'onglet "Sécurité", cliquez sur "Ajouter".

Ajoutez le groupe "Ordinateurs du domaine".

Sélectionnez le groupe que vous venez d'ajouter et cochez les cases "Autoriser" pour ces options :

  • Lecture
  • Inscrire
  • Inscription automatique

Puis, cliquez sur OK.

Pour finir, retournez dans la fenêtre "certsrv" et faites un clic droit "Nouveau -> Modèle de certificat à délivrer" sur "Modèles de certificats".

Sélectionnez "WinRMHTTPS" et cliquez sur OK pour activer ce nouveau modèle de certificat.

3. Générer le certificat automatiquement via GPO

Plutôt que de demander manuellement le certificat depuis l'interface web de notre autorité de certification ou via la console mmc d'un serveur avec interface graphique, nous allons le faire automatiquement via les stratégies de groupe.
Pour ce tutoriel, nous modifierons la stratégie par défaut "Default Domain Policy", mais libre à vous de créer un nouvel objet de stratégie de groupe et de le lier à l'unité d'organisation souhaitée.

Dans l'éditeur de gestion des stratégies de groupe qui s'affiche, allez dans : Configuration ordinateur -> Stratégies -> Paramètres Windows -> Paramètres de sécurité -> Stratégies de clé publique.
Puis, faites un double clic sur la stratégie "Client des services de certificats - Inscription automatique".

Activez le modèle de configuration et cochez les cases :

  • Renouveler les certificats expirés, mettre à jour les certificats en attente et supprimer les certificats révoqués
  • Mettre à jour les certificats qui utilisent les modèles de certificats

Lors du prochain redémarrage des serveurs liés à votre domaine Active Directory, ceux-ci recevront automatiquement un certificat à leur nom.
Néanmoins, pour forcer cette demande par le serveur Core, lancez simplement la commande :

Batch

gpupdate /force

Sur votre autorité de certification, vous verrez qu'un nouveau certificat a été délivré à votre serveur Core et qu'il est basé sur le modèle de certificat "WinRMHTTPS".

Si vous faites un double clic sur celui-ci, vous verrez que celui-ci :

  • est conçu pour le rôle suivant : garantit l'identité d'un ordinateur distant
  • qu'il a été délivré à : nom FQDN de notre serveur Core
  • qu'il a été délivré par notre autorité de certification
  • qu'il est actuellement valide, car la date actuelle se trouve bien dans l'intervalle affiché par Windows Server

IMPORTANT : pour que le certificat délivré à votre serveur Core soit considéré comme valide par celui-ci, il faut que le certificat de votre autorité fasse partie de ces autorités de confiance.
Pour cela, le plus simple est d'exporter le certificat de votre autorité au format ".cer", puis de le distribuer automatiquement via les stratégies de groupe.

Dans l'onglet "Détails" de ce certificat, vous verrez aussi qu'il est prévu pour l'authentification du serveur.
Ce qui est requis par Microsoft pour son utilisation par WinRM.

Après avoir exécuté la commande "gpupdate /force" sur votre serveur Core, ouvrez une console powershell en tapant : start powershell.
Ensuite, utilisez cette commande pour afficher les certificats personnels que votre serveur Core possède.

PowerShell

Get-ChildItem -Recurse cert:\LocalMachine\My | more

Comme vous pouvez le voir, notre serveur Core possède bien un certificat à son nom.

4. Activer la version HTTPS de WinRM

Pour activer WinRM en version HTTPS, utilisez la commande :

Batch

winrm quickconfig -transport:https

Puis, répondez "y" à la question "Effectuer ces modifications [y/n]".

Maintenant, si vous listez les écouteurs utilisés par WinRM, vous verrez que le protocole HTTPS s'affiche.

Batch

winrm enumerate winrm/config/listener

N'oubliez pas d'ouvrir le port 5986 (qui correspond au port par défaut utilisé par la version HTTPS de WinRM) sur votre serveur Core.
Note : aucune règle n'existe par défaut pour la version HTTPS de WinRM. Vous devez donc la créer comme ceci.

Batch

netsh advfirewall firewall add rule name="WinRM HTTPS" dir=in action=allow protocol=TCP localport=5986

5. Ajouter le serveur dans le gestionnaire de serveur

Maintenant que votre serveur Core est entièrement configuré pour le support de WinRM en HTTPS, il ne reste plus qu'à l'ajouter dans le gestionnaire de serveur.

Dans l'onglet "Active Directory", cliquez sur "Rechercher maintenant".
Ensuite, sélectionnez votre serveur Core et cliquez sur la flèche présente au milieu de la fenêtre.

Dans la section "Tous les serveurs" du gestionnaire de serveur, votre serveur Core apparaitra "En ligne" et son adresse IP apparaitra également.

Notez que le message d'erreur "En ligne - Vérifiez que le service WinRM 3.0 est installé, en cours d'exécution et que les ports de pare-feu sont ouverts" peut s'afficher dans 2 cas :

  • lorsque vous tentez de gérer des serveurs 2008 R2 depuis un serveur 2012.
    Dans ce cas, installez le .Net Framework 4 et Windows Management Framework 3.0 sur le serveur distant.
  • ou quand vous tentez de désactiver le protocole HTTP de WinRM parce que vous avez activé le protocole HTTPS pour celui-ci.
    Dans ce cas, lancez la commande "winrm quickconfig" sur le serveur distant.

Pour le reste de la configuration permettant de gérer un serveur sous Windows Server à distance, référez-vous à un de ces tutoriels :