Шифрование сервера Linux для удаленного доступа VM

Вариант использования

У меня есть машина сервера Ubuntu, перенесенная в VM (vmdk файл), который содержит веб-приложение. Я хочу отправить этот VM кому-то и препятствовать тому, чтобы он получил доступ к внутренней файловой системе VM - я не хочу позволять ему извлечь файловую систему машины из vmdk файла.

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

Решения?

Я, хотя об использовании шифрования жесткого диска (Полное шифрование диска с помощью LUKS или других решений как VeraCrypt), но мое основное беспокойство то, как это будет использоваться в серверной среде.

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

Существует ли способ дешифровать машину, возможно, используя вход в систему удаленного пользователя? (Я менее заинтересован от более сложных вопросов как атаки по сторонним каналам или Горячий VM, Клонирующийся). Или какое-либо другое решение, которое может встретить вариант использования?

Обновление

После того, как @vidarlo отвечают, что я решил пойти с решением FDE, поняв компромисс.

Ниже инструкций по конфигурации я использовал (Предположите, что начальная загрузка / находится на/dev/sda1, незашифрованный раздел и зашифрованный находятся на/dev/sdaX разделе).

Создайте новый случайный пароль и сохраните его в базе ключей удач:

sudo dd if=/dev/urandom of=/boot/keyfile bs=1024 count=4
sudo chmod 0400 /boot/keyfile
sudo cryptsetup luksAddKey /dev/sdaX /boot/keyfile

Получите UUID/dev/sda1 раздела путем выполнения:

sudo ls -l /dev/disk/by-uuid/

Обновите /etc/crypttab файл с этим содержанием:

sdaX_crypt UUID=<UUID_OF_SDAX> /dev/disk/by-uuid/<UUID_OF_SDA1>:/keyfile luks,keyscript=/lib/cryptsetup/scripts/passdev

Обновите initramfs

sudo update-initramfs -u

Перезагрузка

sudo reboot
0
задан 29 November 2018 в 05:33

1 ответ

Можно настроить решение с незашифрованным /boot, и файл ключей LUKS:

sudo cryptsetup luksAddKey /dev/sdx1 /boot/random_data_keyfile1

Изменить /etc/crypttab подходить:

sda5_crypt UUID=DEVICE_UUID /dev/disk/by-uuid/devicewithkey:/random_data_keyfile1 luks,keyscript=/lib/cryptsetup/scripts/passdev

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

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

1
ответ дан 27 October 2019 в 01:26

Другие вопросы по тегам:

Похожие вопросы: