Шифрование дисков виртуальных машин

Виртуализация vSphere, Hyper-V, Xen и Red Hat

Более 5350 заметок о виртуализации, виртуальных машинах VMware, Microsoft и Xen, а также Kubernetes

VM Guru / News / Шифрование виртуальных машин в VMware vSphere 6.5 — как это работает?

Вебинары VMC о виртуализации:

Постер VMware vSphere PowerCLI 6.3:

Постер VMware ESXi 5.1:

Постер VMware Hands-on Labs 2015:

Постер VMware Platform Services Controller 6.0:

Постер VMware vCloud Networking:

Постер VMware NSX (референсный):

Постер VMware vCloud SDK:

Постер VMware vCloud Suite:

Постер VMware vCenter Server Appliance:

Порты и соединения VMware vSphere 6:

Порты и соединения VMware Horizon 7:

Порты и соединения VMware NSX:

Управление памятью в VMware vSphere 5:

Как работает кластер VMware High Availability:

Постер VMware vSphere 5.5 ESXTOP (обзорный):

Постер Veeam Backup & Replication v8 for VMware:

Постер Microsoft Windows Server 2012 Hyper-V R2:

Шифрование образов дисков виртуальных машин

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

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

Qemu поддерживает несколько типов образов дисков. «Родным» и наиболее гибким типом является qcow2, который поддерживает сжатие, шифрование и создание снапшотов виртуальных машин. Наиболее простым — raw, который проще всего конвертировать в другие типы для разных средств виртуализации (VirtualBox, VMware, Hyper-V). Для того, чтобы не привязываться к конкретному типу образов, используем стандартные средства шифрования для Linux-систем (LUKS).

Шифрование всего раздела жесткого диска, на котором хранятся файлы образов дисков виртуальных машин, производится с использованием драйвера уровня ядра dm-crypt и утилиты cryptsetup для шифрования обычных разделов диска или логических разделов LVM. Хранилище файлов образов дисков LVM предоставляет большую гибкость в управлении (например изменение размера раздела), чем использование простых разделов диска.

В качестве операционной системы под Qemu+KVM будем использовать RHEL-Server-6.2 x86_64. Для создания зашифрованного логического раздела требуется:

установить на хосте пакет cryptsetup-luks;

убедиться, что в системе есть минимум 10Гб свободного пространства;

создать новый логический раздел, например:

# lvcreate -L 10G -n guest01-crypt VolGroup

Logical volume «guest01-crypt» created

зашифровать созданный раздел, используя команду cryptsetup luksFormat. Эта команда предложит ввести пароль, который будет использоваться для расшифровки раздела:

# cryptsetup luksFormat /dev/VolGroup/guest01-crypt

This will overwrite data on /dev/VolGroup/guest01-crypt irrevocably.

Are you sure? (Type uppercase yes): YES

Enter LUKS passphrase:

используя команду cryptsetup luksDump, проверить, что раздел успешно зашифрован:

# cryptsetup luksDump /dev/VolGroup/guest01-crypt

для открытия раздела и создания в нем нужного устройства требуется использовать команду cryptsetup luksOpen:

# cryptsetup luksOpen /dev/VolGroup/guest01-crypt guest01-img

Enter LUKS passphrase for /dev/VolGroup/guest01-crypt:

key slot 0 unlocked.

устройство можно использовать. Для получения полной информации об устройстве можно использовать команду dmsetup info:

# dmsetup info guest01-img

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

Перенос существующего образа диска (rhel6) в новое зашифрованное устройство (/dev/VolGroup/guest01-crypt) можно произвести следующим образом:

выключите виртуальную машину;

# virsh shutdown rhel6

проверьте, что машина перестала функционировать:

проверьте текущее местоположение образа диска. Для этого можно использовать команду virsh dumpxml:

# virsh dumpxml rhel6

используйте команду qemu-img info для получения информации о формате и размере файла;

# qemu-img info /var/lib/libvirt/images/rhel6.img

file format: qcow2

virtual size: 10G (10737418240 bytes)

перенесите копию диска в созданное устройство, используя утилиту dd:

# dd if=/var/lib/libvirt/images/rhel6.img of=/dev/mapper/guest01-img bs=4k

2621440+0 records in

2621440+0 records out

10737418240 bytes (11 GB) copied, 159.602 seconds, 67.1 MB/s

используя команду virsh edit измените конфигурацию виртуальной машины в соответствии с измененным местоположением образа диска:

Запустите виртуальную машину командой virsh start:

# virsh start rhel6

Domain rhel6 started

При создании новой виртуальной машины, которая должна использовать защищенное хранилище с образами дисков, требуется указать libvirt, где будет находиться образ диска. Например, при использовании команды virt-install, потребуется сначала открыть предварительно созданный раздел командой cryptsetup luksOpen, после чего создавать виртуальную машину:

# virt-install —name guest01 —ram 512 —accelerate \

—extra-args «console=tty0 console=ttyS0,115200n8» \

—os-type linux —os-variant rhel5 \

—network network:default —nographics

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

Для полного правильного выключения виртуальной машины требуется:

выключить виртуальную машину командой virsh shutdown:

# virsh shutdown rhel6

Domain rhel6 is being shutdown

проверить, что не осталось работающих виртуальных машин, использующих образы дисков, которые будут закрыты:

Читайте также:  Ремонт дизельного двигателя hyundai porter
Оцените статью

Шифрование виртуальных машин в VMware vSphere 6.5 — как это работает?

Реклама:

Не так давно мы писали о новых возможностях платформы виртуализации VMware vSphere 6.5, где впервые появилась так давно запрашиваемая администраторами функция шифрования, как содержимого виртуальных дисков, так и шифрования горячих миграций vMotion.

Устроено это шифрование ВМ на базе алгоритма AES-NI, а управление ключами происходит по стандарту KMIP 1.1. Когда операция ввода-вывода приходит на диск виртуальной машины — она сразу же шифруется «на лету», что обеспечивает полную безопасность при попытке несанкционированного доступа к данным.

Шифруются не только виртуальные диски, но и конфигурационные файлы VMX, файлы снапшотов и все прочие файловые объекты, относящиеся к виртуальной машине.

Шифрование объектов ВМ идет за ее пределами, таким образом гостевая ОС не имеет доступа к ключам шифрования. Шифрованные виртуальные машины всегда перемещаются между хостами ESXi средствами также шифрованного vMotion.

Чтобы начать шифровать виртуальную машину, нужно назначить ей соответствующую политику хранения (Storage Policy):

Как работает VM Encryption в VMware vSphere 6.5:

  • Пользователь назначает политику VM Encryption на уровне виртуальной машины.
  • Для машины генерируется случайный ключ и шифруется ключом из key manager (KMS Key).
  • При включении ВМ сервер vCenter получает ключ из Key Manager, посылает его в VM encryption Module на сервере ESXi, что разлочивает ключ в гипервизоре.
  • Далее все операции ввода-вывода идут через encryption module, шифруя все входящие и исходящие SCSI-команды прозрачно для гостевой ОС.

Все это совместимо со сторонними системами управления ключами (и требует одну из них), которые построены на стандарте KMIP версии 1.1 или выше:

Для того, чтобы расшифровать виртуальную машину и хранить далее ее в обычном формате, нужно просто поставить дефолтную политику хранения (Datastore default).

Также будет специальный командлет PowerCLI , который может шифровать/расшифровывать ВМ, а также определять, какие из них в данный момент зашифрованы.

vCenter в системе шифрования работает только как клиент. Для управления ключами используется Key Management Server (KMS).

В механизме управления привилегиями теперь появилась роль No Cryptography Administrator. Если ее назначить, то стандартному администратору будут запрещены следующие привилегии:

  • Manage key servers
  • Manage keys
  • Manage encryption policies
  • Console access to encrypted VMs
  • Upload/download encrypted VMs

В качестве KMS можно использовать любые внешние системы, работающие по стандарту KMIP:

При использовании шифрования ВМ нужно учитывать следующие моменты:

  • Да, вам понадобится система управления ключами (внешний Key Management Server)
  • Не поддерживаются возможности SAN Backup.
  • Если для обычного метода бэкапа сделать резервную копию — она будет нешифрованной, если восстановить — то все будет в соответствии с политикой целевого хранилища (то есть, ВМ может оказаться незашифрованной после восстановления).
  • Сам сервер vCenter не может быть зашифрован — иначе его просто было бы нельзя включить.
  • Также не поддерживаются следующие возможности:
    • Suspend/resume
    • Шифрование ВМ со снапшотами и создание снапшотов для шифрованных ВМ
    • Serial/Parallel port
    • Content library
    • vSphere Replication

Для vMotion шифрование включается на уровне отдельной ВМ, а для передачи данных в момент синхронизации используются 256-битные ключи шифрования.

Есть 3 политики для шифрованного vMotion:

  • Disabled — отключено.
  • Opportunistic — шифрование только в случае, если это поддерживает источник и целевой хост ESXi, в противном случае vMotion будет нешифрованным.
  • Required — обязательно будет использоваться.

Перенос машин между хостами осуществляется путем обмена одноразовыми ключами, которые генерируются и обслуживаются сервером vCenter (не KMS).

В целом, шифрование виртуальных машин и миграций vMotion — штука классная, но помните, что вам потребуется для организации этого процесса внешний KMS-сервер.

Чтобы оставлять комментарии, вы должны быть зарегистрированы на сайте.

Зал Славы Рекламодателя
Все сайты о виртуализации: