Поделиться через


Создание диска шаблона виртуальной машины с экранированием Linux

В этом разделе объясняется, как подготовить диск шаблона для экранированных виртуальных машин Linux, которые можно использовать для создания экземпляра одной или нескольких виртуальных машин клиента.

Prerequisites

Чтобы подготовить и проверить экранированную виртуальную машину Linux, вам потребуются следующие ресурсы:

  • Сервер с возможностями виртуализации под управлением Windows Server версии 1709 или более поздней
  • Второй компьютер (Windows 10 или Windows Server 2016) с поддержкой диспетчера Hyper-V для подключения к консоли запущенной виртуальной машины
  • ISO-образ для одного из поддерживаемых экранированных виртуальных машин Linux:
    • Ubuntu 16.04 LTS с ядром 4.4
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 с пакетом обновления 2
  • Доступ к Интернету для скачивания пакета lsvmtools и обновлений ОС

Important

Более новые версии предыдущих операционных систем Linux могут включать известную ошибку драйвера доверенного платформенного модуля, которая не позволит им успешно подготовиться как экранированные виртуальные машины. Не рекомендуется обновлять шаблоны или экранированные виртуальные машины до более нового выпуска, пока не будет доступно исправление. Список поддерживаемых OSes выше будет обновлен, когда обновления становятся общедоступными.

Подготовка виртуальной машины Linux

Экранированные виртуальные машины создаются из защищенных шаблонных дисков. Диски шаблонов содержат операционную систему для виртуальной машины и метаданных, включая цифровую подпись секций /boot и /root, чтобы гарантировать, что основные компоненты ОС не изменяются перед развертыванием.

Чтобы создать диск шаблона, необходимо сначала создать обычную (незащищенную) виртуальную машину, которая будет подготовлена в качестве базового образа для будущих экранированных виртуальных машин. Программное обеспечение, которое вы устанавливаете и изменяете конфигурацию этой виртуальной машины, будет применяться ко всем экранированных виртуальным машинам, созданным на этом диске шаблона. В этих шагах описаны минимальные требования, необходимые для подготовки виртуальной машины Linux к шаблонизации.

Note

Шифрование дисков Linux настраивается при секционирования диска. Это означает, что необходимо создать виртуальную машину, которая предварительно зашифрована с помощью dm-crypt, чтобы создать экранированный диск шаблона виртуальной машины Linux.

  1. На сервере виртуализации убедитесь, что компоненты поддержки Hyper-V и Host Guardian Hyper-V устанавливаются, выполнив следующие команды в консоли PowerShell с повышенными привилегиями:

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. Скачайте ISO-образ из надежного источника и сохраните его на сервере виртуализации или на общей папке, доступной серверу виртуализации.

  3. На компьютере управления под управлением Windows Server версии 1709 установите средства удаленного администрирования экранированных виртуальных машин, выполнив следующую команду:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. Open Hyper-V Manager on your management computer and connect to your virtualization server. Для этого нажмите кнопку "Подключиться к серверу..." в области действий или щелкните правой кнопкой мыши диспетчер Hyper-V и выберите "Подключиться к серверу..." Укажите DNS-имя сервера Hyper-V и при необходимости учетные данные, необходимые для подключения к нему.

  5. С помощью диспетчера Hyper-V настройте внешний коммутатор на сервере виртуализации, чтобы виртуальная машина Linux могли получить обновления в Интернете.

  6. Затем создайте новую виртуальную машину для установки ОС Linux на. In the Actions pane, click New>Virtual Machine to bring up the wizard. Provide a friendly name for your VM, such as "Pre-templatized Linux" and click Next.

  7. On the second page of the Wizard, select Generation 2 to ensure the VM is provisioned with a UEFI-based firmware profile.

  8. Выполните остальные действия мастера в соответствии с вашими предпочтениями. Не используйте разностный диск для этой виртуальной машины; Диски шаблонов экранированных виртуальных машин не могут использовать разностные диски. Наконец, подключите образ ISO, скачанный ранее, на виртуальный DVD-диск для этой виртуальной машины, чтобы установить ОС.

  9. In Hyper-V Manager, select your newly-created VM and click Connect... in the Actions pane to attach to a virtual console of the VM. In the window that appears, click Start to turn on the virtual machine.

  10. Перейдите к процессу установки выбранного дистрибутива Linux. Хотя каждый дистрибутив Linux использует свой мастер установки, для виртуальных машин, которые будут созданы на основе шаблонов экранированных Linux, должны быть выполнены следующие требования:

    • Диск должен быть секционирован с помощью макета таблицы секционирования GUID (GPT)
    • Корневой раздел должен быть зашифрован с помощью dm-crypt. The passphrase should be set to passphrase (all lowercase). Эта парольная фраза будет случайным образом сгенерирована, а раздел повторно зашифрован при создании экранированной виртуальной машины.
    • The boot partition must use the ext2 file system
  11. После полной загрузки ОС Linux и входа рекомендуется установить виртуальное ядро Linux и связанные пакеты служб интеграции Hyper-V. Кроме того, необходимо установить сервер SSH или другое средство удаленного управления для доступа к виртуальной машине после экранирования.

    В Ubuntu выполните следующую команду, чтобы установить эти компоненты:

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

    В RHEL выполните следующую команду:

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

    И в SLES выполните следующую команду:

    sudo zypper install hyper-v
    sudo chkconfig hv_kvp_daemon on
    sudo systemctl enable sshd
    
  12. Настройте операционную систему Linux в нужном виде. Все устанавливаемое программное обеспечение, добавленные учетные записи пользователей и изменения конфигурации по всей системе будут применяться ко всем будущим виртуальным машинам, созданным на этом диске шаблона. Не следует сохранять секреты или ненужные пакеты на диск.

  13. Если вы планируете использовать System Center Virtual Machine Manager для развертывания ваших виртуальных машин, установите гостевой агент VMM, чтобы позволить VMM специализировать вашу операционную систему во время подготовки виртуальных машин. Специализация позволяет безопасно настраивать каждую виртуальную машину с помощью разных пользователей и ключей SSH, конфигураций сети и пользовательских действий по настройке. Узнайте, как получить и установить гостевой агент VMM в документации по VMM.

  14. Затем добавьте репозиторий программного обеспечения Microsoft Linux в диспетчер пакетов.

  15. С помощью менеджера пакетов установите пакет lsvmtools, который содержит загрузчик загрузочного устройства защищенной виртуальной машины Linux, компоненты для инициализации и инструмент подготовки дисков.

    # Ubuntu 16.04
    sudo apt-get install lsvmtools
    
    # SLES 12 SP2
    sudo zypper install lsvmtools
    
    # RHEL 7.3
    sudo yum install lsvmtools
    
  16. После настройки ОС Linux найдите программу установки lsvmprep в системе и запустите ее.

    # 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. Завершите работу виртуальной машины.

  18. Если вы создали контрольные точки вашей виртуальной машины (включая автоматические контрольные точки, созданные Hyper-V с помощью Windows 10 Fall Creators Update), обязательно удалите их перед тем, как продолжить. Контрольные точки создают разностные диски (.avhdx), которые не поддерживаются Мастером шаблонного диска.

    To delete checkpoints, open Hyper-V Manager, select your VM, right click the topmost checkpoint in the Checkpoints pane, then click Delete Checkpoint Subtree.

    Удалите все контрольные точки шаблона виртуальной машины в диспетчере Hyper-V

Защита диска шаблона

Виртуальная машина, подготовленная в предыдущем разделе, почти готова к использованию в качестве диска шаблона виртуальной машины с экранированием Linux. Последним шагом является обработка диска с помощью мастера шаблонного диска, который будет хэшировать и цифрово подписать текущее состояние разделов корня и загрузки. Хэш и цифровая подпись проверяются при подготовке экранированной виртуальной машины, чтобы убедиться, что несанкционированные изменения не были внесены в два раздела между созданием шаблона и развертыванием.

Получение сертификата для подписи диска

Для цифровой подписи измерений диска необходимо получить сертификат на компьютере, на котором будет запущен мастер работы с диском шаблона. Сертификат должен отвечать приведенным ниже требованиям.

Certificate Property Required value
Key Algorithm RSA
Минимальный размер ключа 2048 bits
Signature algorithm SHA256 (Recommended)
Key Usage Digital Signature

Сведения об этом сертификате будут отображаться клиентам при создании файлов данных экранирования и авторизации дисков, которым они доверяют. Поэтому важно получить этот сертификат у центра сертификации, которому доверяете как вы, так и ваши тенанты. В корпоративных сценариях, где вы являетесь хост-сервером и клиентом, вы можете рассмотреть возможность выдачи этого сертификата из центра сертификации предприятия. Тщательно обеспечьте защиту этого сертификата, так как любой пользователь, обладающий этим сертификатом, может создавать новые диски шаблонов, доверенные так же, как и ваш подлинный диск.

В тестовой лабораторной среде можно создать самозаверяющий сертификат с помощью следующей команды PowerShell:

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

Обработайте диск с помощью командлета мастера шаблона диска

Скопируйте диск шаблона и сертификат на компьютер под управлением Windows Server версии 1709, а затем выполните следующие команды, чтобы инициировать процесс подписывания. VHDX, который вы предоставляете параметру -Path, будет перезаписан обновленным диском шаблона, поэтому перед выполнением команды обязательно создайте копию.

Important

Средства удаленного администрирования сервера, доступные в Windows Server 2016 или Windows 10, нельзя использовать для подготовки диска шаблона виртуальной машины с экранированием Linux. Only use the Protect-TemplateDisk cmdlet available on Windows Server, version 1709 or the Remote Server Administration Tools available on Windows Server 2019 to prepare a Linux shielded VM template disk.

# 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

Теперь диск шаблона готов для использования для настройки экранированных виртуальных машин на базе Linux. Если вы используете System Center диспетчер виртуальных машин для развертывания виртуальной машины, теперь можно скопировать VHDX в библиотеку VMM.

Вы также можете извлечь каталог подписей тома из VHDX. Этот файл используется для предоставления сведений о сертификате подписи, имени диска и версии владельцам виртуальных машин, которые хотят использовать шаблон. Они должны импортировать этот файл в Мастер файла данных для экранирования, для того чтобы авторизовать вас, как автора шаблона, обладающего сертификатом подписи, на создание этих и будущих дисков шаблонов для них.

Чтобы извлечь каталог подписей тома, выполните следующую команду в PowerShell:

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