Créer un disque de modèle de machine virtuelle dotée d’une protection maximale Linux

S’applique à : Windows Server 2022, Windows Server 2019

Cette rubrique explique comment préparer un disque de modèle pour des machines virtuelles protégées Linux qui peuvent être utilisées pour instancier une ou plusieurs machines virtuelles clientes.

Prérequis

Pour préparer et tester une machine virtuelle protégée Linux, vous aurez besoin des ressources suivantes disponibles :

  • Un serveur avec des capacités de virtualisation exécutant Windows Server, version 1709 ou ultérieure
  • Un deuxième ordinateur (Windows 10 ou Windows Server 2016) capable d’exécuter le Gestionnaire Hyper-V pour se connecter à la console de la machine virtuelle en cours d’exécution
  • Image ISO pour l’un des systèmes d’exploitation de machines virtuelles linux protégés pris en charge :
    • Ubuntu 16.04 LTS avec le noyau 4.4
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 avec Service Pack 2
  • Accès Internet pour télécharger le package lsvmtools et les mises à jour du système d’exploitation

Important

Les versions plus récentes des systèmes d’exploitation Linux précédents peuvent inclure un bogue de pilote TPM connu qui les empêchera de s’approvisionner correctement en tant que machines virtuelles protégées. Il n’est pas recommandé de mettre à jour vos modèles ou machines virtuelles protégées vers une version plus récente tant qu’un correctif n’est pas disponible. La liste des systèmes d’exploitation pris en charge ci-dessus sera mise à jour lorsque les mises à jour seront rendues publiques.

Préparer une machine virtuelle Linux

Les Machines virtuelles dotées d’une protection maximale sont créées à l’aide de disques de modèle sécurisés. Les disques de modèle contiennent le système d’exploitation de la machine virtuelle et les métadonnées, y compris une signature numérique des partitions /boot et /root, pour garantir que les composants principaux du système d’exploitation ne sont pas modifiés avant le déploiement.

Pour créer un disque de modèle, vous devez d’abord créer une machine virtuelle standard (non protégée) que vous allez préparer comme image de base pour les futures machines virtuelles protégées. Les logiciels que vous installez et les modifications de configuration que vous apportez à cette machine virtuelle s’appliqueront à toutes les machines virtuelles protégées créées à partir de ce disque de modèle. Ces étapes vous guident à travers la configuration minimale requise pour préparer une machine virtuelle Linux pour la modélisation.

Notes

Le chiffrement de disque Linux est configuré lorsque le disque est partitionné. Cela signifie que vous devez créer une machine virtuelle pré-chiffrée à l’aide de dm-crypt pour créer un disque de modèle de machine virtuelle protégé Linux.

  1. Sur le serveur de virtualisation, vérifiez que les fonctionnalités de prise en charge Hyper-V et Host Guardian Hyper-V sont installées en exécutant les commandes suivantes dans une console PowerShell avec élévation de privilèges :

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. Téléchargez l’image ISO à partir d’une source fiable et stockez-la sur votre serveur de virtualisation ou sur un partage de fichiers accessible à votre serveur de virtualisation.

  3. Sur votre ordinateur d’administration exécutant Windows Server version 1709, installez les Outils d’administration de serveur distant de machine virtuelle protégée en exécutant la commande suivante :

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. Ouvrez le Gestionnaire Hyper-V sur votre ordinateur de gestion et connectez-vous à votre serveur de virtualisation. Pour ce faire, cliquez sur « Se connecter au serveur... » dans le volet Actions ou en cliquant avec le bouton droit sur le Gestionnaire Hyper-V et en choisissant « Se connecter au serveur... » Indiquez le nom DNS de votre serveur Hyper-V et, si nécessaire, les informations d’identification nécessaires pour s’y connecter.

  5. À l’aide du Gestionnaire Hyper-V, configurez un commutateur externe sur votre serveur de virtualisation afin que la machine virtuelle Linux puisse accéder à Internet pour obtenir des mises à jour.

  6. Ensuite, créez une machine virtuelle sur laquelle installer le système d’exploitation Linux. Dans le volet Actions, cliquez sur Nouvelle>machine virtuelle pour afficher l’Assistant. Fournissez un nom convivial pour votre machine virtuelle, par exemple « Linux pré-modélisé », puis cliquez sur Suivant.

  7. Dans la deuxième page de l’Assistant, sélectionnez Génération 2 pour vous assurer que la machine virtuelle est approvisionnée avec un profil de microprogramme basé sur UEFI.

  8. Complétez la suite de l'assistant en fonction de vos préférences. N’utilisez pas de disque de différenciation pour cette machine virtuelle ; Les disques de modèle de machine virtuelle protégés ne peuvent pas utiliser de disques de différenciation. Enfin, connectez l’image ISO que vous avez téléchargée précédemment au lecteur DVD virtuel de cette machine virtuelle afin de pouvoir installer le système d’exploitation.

  9. Dans le Gestionnaire Hyper-V, sélectionnez votre machine virtuelle nouvellement créée, puis cliquez sur Se connecter... dans le volet Actions pour l’attacher à une console virtuelle de la machine virtuelle. Dans la fenêtre qui s’affiche, cliquez sur Démarrer pour activer la machine virtuelle.

  10. Passez au processus d’installation de la distribution Linux sélectionnée. Bien que chaque distribution Linux utilise un Assistant d’installation différent, les conditions suivantes doivent être remplies pour les machines virtuelles qui deviendront des disques de modèle de machine virtuelle protégée Linux :

    • Le disque doit être partitionné à l’aide de la disposition GUID Paritioning Table (GPT)
    • La partition racine doit être chiffrée avec dm-crypt. La phrase secrète doit être définie sur la phrase secrète (tout en minuscules). Cette phrase secrète est aléatoire et la partition rechiffrée lorsqu’une machine virtuelle protégée est provisionnée.
    • La partition de démarrage doit utiliser le système de fichiers ext2
  11. Une fois que votre système d’exploitation Linux a entièrement démarré et que vous vous êtes connecté, il est recommandé d’installer le noyau virtuel linux et les packages de services d’intégration Hyper-V associés. En outre, vous souhaiterez installer un serveur SSH ou un autre outil de gestion à distance pour accéder à la machine virtuelle une fois qu’elle est protégée.

    Sur Ubuntu, exécutez la commande suivante pour installer ces composants :

    sudo apt-get install linux-virtual linux-tools-virtual linux-cloud-tools-virtual linux-image-extra-virtual openssh-server
    

    Sur RHEL, exécutez la commande suivante à la place :

    sudo yum install hyperv-daemons openssh-server
    sudo service sshd start
    

    Pour SLES, exécutez la commande suivante :

    sudo zypper install hyper-v
    sudo chkconfig hv_kvp_daemon on
    sudo systemctl enable sshd
    
  12. Configurez votre système d’exploitation Linux comme vous le souhaitez. Tous les logiciels que vous installez, les comptes d’utilisateur que vous ajoutez et les modifications de configuration à l’échelle du système que vous apportez s’appliquent à toutes les futures machines virtuelles créées à partir de ce disque de modèle. Vous devez éviter d’enregistrer des secrets ou des packages inutiles sur le disque.

  13. Si vous envisagez d’utiliser System Center Virtual Machine Manager pour déployer vos machines virtuelles, installez l’agent invité VMM pour permettre à VMM de spécialiser votre système d’exploitation pendant l’approvisionnement de machines virtuelles. La spécialisation permet à chaque machine virtuelle d’être configurée de manière sécurisée avec différents utilisateurs et clés SSH, configurations réseau et étapes d’installation personnalisées. Découvrez comment obtenir et installer l’agent invité VMM dans la documentation VMM.

  14. Ensuite, ajoutez le référentiel de logiciels Microsoft Linux à votre gestionnaire de package.

  15. À l’aide de votre gestionnaire de package, installez le package lsvmtools qui contient le shim du chargeur de démarrage de machine virtuelle protégé Linux, les composants d’approvisionnement et l’outil de préparation du disque.

    # Ubuntu 16.04
    sudo apt-get install lsvmtools
    
    # SLES 12 SP2
    sudo zypper install lsvmtools
    
    # RHEL 7.3
    sudo yum install lsvmtools
    
  16. Lorsque vous avez terminé de personnaliser le système d’exploitation Linux, recherchez le programme d’installation lsvmprep sur votre système et exécutez-le.

    # The path below may change based on the version of lsvmprep installed
    # Run "find /opt -name lsvmprep" to locate the lsvmprep executable
    sudo /opt/lsvmtools-1.0.0-x86-64/lsvmprep
    
  17. Arrêtez votre machine virtuelle.

  18. Si vous avez pris des points de contrôle de votre machine virtuelle (y compris des points de contrôle automatiques créés par Hyper-V avec le Windows 10 Fall Creators Update), veillez à les supprimer avant de continuer. Les points de contrôle créent des disques de différenciation (.avhdx) qui ne sont pas pris en charge par l’Assistant Modèle de disque.

    Pour supprimer des points de contrôle, ouvrez le Gestionnaire Hyper-V, sélectionnez votre machine virtuelle, cliquez avec le bouton droit sur le point de contrôle le plus haut dans le volet Points de contrôle, puis cliquez sur Supprimer la sous-arborescence du point de contrôle.

    Delete all checkpoints for your template VM in Hyper-V manager

Protéger le disque de modèle

La machine virtuelle que vous avez préparée dans la section précédente est presque prête à être utilisée en tant que disque de modèle de machine virtuelle protégé Linux. La dernière étape consiste à exécuter le disque via l’Assistant Modèle de disque, qui effectuera un hachage et signera numériquement l’état actuel des partitions racine et de démarrage. Le hachage et la signature numérique sont vérifiés lorsqu’une machine virtuelle protégée est provisionnée pour s’assurer qu’aucune modification non autorisée n’a été apportée aux deux partitions entre la création et le déploiement du modèle.

Obtenir un certificat pour signer le disque

Pour signer numériquement les mesures de disque, vous devez obtenir un certificat sur l’ordinateur sur lequel vous allez exécuter l’Assistant Modèle de disque. Le certificat doit répondre aux exigences suivantes :

Propriété du certificat Valeur requise
Algorithme de clé RSA
Taille de clé minimale 2 048 bits
Algorithme de signature SHA256 (recommandé)
Utilisation de la clé Signature numérique

Les détails de ce certificat seront affichés aux locataires lorsqu’ils créent leurs fichiers de données de protection et autorisent les disques auxquels ils font confiance. Par conséquent, il est important d’obtenir ce certificat auprès d’une autorité de certification mutuellement approuvée par vous et vos locataires. Dans les scénarios d’entreprise où vous êtes à la fois l’hôte et le locataire, vous pouvez envisager d’émettre ce certificat à partir de votre autorité de certification d’entreprise. Protégez ce certificat avec soin, car toute personne en possession de ce certificat peut créer de nouveaux disques de modèle qui sont approuvés de la même façon que votre disque authentique.

Dans un environnement de laboratoire de test, vous pouvez créer un certificat auto-signé avec la commande PowerShell suivante :

New-SelfSignedCertificate -Subject "CN=Linux Shielded VM Template Disk Signing Certificate"

Traiter le disque avec l’applet de commande De l’Assistant Disque de modèle

Copiez le disque et le certificat de votre modèle sur un ordinateur exécutant Windows Server, version 1709, puis exécutez les commandes suivantes pour lancer le processus de signature. Le disque dur virtuel que vous fournissez au paramètre -Path sera remplacé par le disque de modèle mis à jour. Veillez donc à effectuer une copie avant d’exécuter la commande.

Important

Les outils d’administration de serveur distant disponibles sur Windows Server 2016 ou Windows 10 ne peuvent pas être utilisés pour préparer un disque de modèle de machine virtuelle protégé Linux. Utilisez uniquement l’applet de commande Protect-TemplateDisk disponible sur Windows Server, version 1709 ou les outils d’administration de serveur distant disponibles sur Windows Server 2019 pour préparer un disque de modèle de machine virtuelle protégée Linux.

# Replace "THUMBPRINT" with the thumbprint of your template disk signing certificate in the line below
$certificate = Get-Item Cert:\LocalMachine\My\THUMBPRINT

Protect-TemplateDisk -Path 'C:\temp\MyLinuxTemplate.vhdx' -TemplateName 'Ubuntu 16.04' -Version 1.0.0.0 -Certificate $certificate -ProtectedTemplateTargetDiskType PreprocessedLinux

Votre disque de modèle est maintenant prêt à être utilisé pour approvisionner des machines virtuelles dotées d’une protection maximale. Si vous utilisez System Center Virtual Machine Manager pour déployer votre machine virtuelle, vous pouvez maintenant copier le VHDX dans votre bibliothèque VMM.

Vous pouvez également extraire le catalogue de signatures de volume du VHDX. Ce fichier est utilisé pour fournir des informations sur le certificat de signature, le nom du disque et la version aux propriétaires de machines virtuelles qui souhaitent utiliser votre modèle. Ils doivent importer ce fichier dans l’Assistant Fichier de données de protection pour vous autoriser, l’auteur du modèle en possession du certificat de signature, à créer ce modèle et les disques de modèle futurs.

Pour extraire le catalogue de signatures de volume, exécutez la commande suivante dans PowerShell :

Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'