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

Область применения: Windows Server 2022, Windows Server 2019

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

Необходимые компоненты

Чтобы подготовить и проверить экранированную виртуальную машину 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 и обновлений ОС

Внимание

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

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

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

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

Примечание.

Шифрование дисков 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 установите экранированный удаленный сервер виртуальной машины Администратор istration Tools, выполнив следующую команду:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. Откройте диспетчер Hyper-V на компьютере управления и подключитесь к серверу виртуализации. Это можно сделать, щелкнув "Подключение на сервер..." в области "Действия" или щелкните правой кнопкой мыши диспетчер Hyper-V и выберите "Подключение на сервер..." Укажите DNS-имя сервера Hyper-V и при необходимости учетные данные, необходимые для подключения к нему.

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

  6. Затем создайте новую виртуальную машину для установки ОС Linux на. В области действий нажмите кнопку "Создать>виртуальную машину", чтобы открыть мастер. Укажите понятное имя виртуальной машины, например "Предварительно шаблонизованный Linux" и нажмите кнопку "Далее".

  7. На второй странице мастера выберите поколение 2 , чтобы убедиться, что виртуальная машина подготовлена с помощью профиля встроенного ПО на основе UEFI.

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

  9. В диспетчере Hyper-V выберите только что созданную виртуальную машину и щелкните Подключение... в области действий, чтобы подключиться к виртуальной консоли виртуальной машины. В появившемся окне нажмите кнопку "Пуск ", чтобы включить виртуальную машину.

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

    • Диск должен быть секционирован с помощью макета таблицы секционирования GUID (GPT)
    • Корневой раздел должен быть зашифрован с помощью dm-crypt. Парольная фраза должна быть задана для парольной фразы (все строчные буквы). Эта парольная фраза будет случайным образом, а секция повторно зашифрована при подготовке экранированного виртуальной машины.
    • Загрузочный раздел должен использовать файловую систему ext2 .
  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 диспетчер виртуальных машин для развертывания виртуальных машин, установите гостевой агент 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), которые не поддерживаются мастером дисков шаблона.

    Чтобы удалить точки проверка, откройте диспетчер Hyper-V, выберите виртуальную машину, щелкните правой кнопкой мыши верхнюю проверка точку в области контрольных точек, а затем нажмите кнопку "Удалить поддерев контрольной точки".

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

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

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

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

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

Свойство certificate Обязательное значение
Алгоритм ключа RSA
Минимальный размер ключа 2048 бит
Алгоритм подписи SHA256 (рекомендуется)
Использование ключа Цифровая подпись

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

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

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

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

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

Внимание

Средства удаленного сервера Администратор istration, доступные в Windows Server 2016 или Windows 10, нельзя использовать для подготовки диска шаблона виртуальной машины с экранированием Linux. Используйте только командлет Protect-TemplateDisk, доступный в Windows Server версии 1709 или средства удаленного сервера Администратор istration Tools, доступные в Windows Server 2019, чтобы подготовить экранированный диск шаблона виртуальной машины 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

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

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

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

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