В Ubuntu 11.10 возможно ли расшифровать 2 жестких диска, зашифрованных с помощью LUKS / LVM, введя только одну фразу-пароль при загрузке?


8

Вот конфигурация, которую я имею: - 2 жестких диска, - первый зашифрован с использованием LUKS и LVM. Я хотел бы добавить в группу томов зашифрованный второй жесткий диск. Я успешно установил и зашифровал его. Но когда я загружаюсь, мне нужно ввести 2 парольные фразы для расшифровки обоих жестких дисков.

Разве нет способа использовать только один?



это сработало для меня: unix.stackexchange.com/a/110102/50601
Тим Абелл

Ответы:


4

Наконец я нашел способ ввести только один пароль и зашифровать все мои физические диски.

Я шифрую первый парольной фразой, второй шифрую, используя ключевой файл, который храню на первом жестком диске (/ root / mykeyfile).

И со строкой исправления в файле / etc / crypttab это делает свое дело.

Обновите / etc / crypttab

sda5_crypt UUID = fb07f1e8-a569-4db9-9fd7-fc1994e093b5 нет

UDID sdb1_crypt = 4c0687f0-d7af-4f2e-9c57-5ca8e909d492 / root / mykeyfile luks


dd if = / dev / urandom of = / root / mykeyfile bs = 1024 count = 20 Это пример того, как создать случайную строку для использования в качестве «ключевого файла».
earthmeLon

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

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

0

В Ubuntu можно использовать производный ключ от корня в качестве дополнительного ключа в других файловых системах. Это позволяет сохранить ключ для других дисков вне самой файловой системы.

Прежде чем делать это, сначала убедитесь, что / tmp установлен только на оперативной памяти! Я предлагаю однопользовательский режим для этого изменения.

mount -t ramfs none /tmp

Затем вы можете экспортировать полученный ключ:

# replace vda5_crypt with the cryptsetup name of your root luks
# have a look in /dev/mapper or 'pvdisplay' to find it...
/lib/cryptsetup/scripts/decrypt_derived vda5_crypt > /tmp/key

А затем добавьте его на другое устройство (устройства):

# use your own disks here instead of sdb1 sdc1 sdd1 etc
cryptsetup luksAddKey /dev/sdb1 /tmp/key
cryptsetup luksAddKey /dev/sdc1 /tmp/key
cryptsetup luksAddKey /dev/sdd1 /tmp/key
rm /tmp/key

Это позволит сценариям инициализации ubuntu использовать производный ключ после разблокировки корня, чтобы разблокировать остальные блочные устройства и сделать их доступными аналогичным образом в / dev / mapper. Я не уверен, требуют ли они записи в / etc / crypttab - попробуйте их без первого, а если они не появятся, поместите их в crypttab без ключа, и он должен разблокировать их.

(Я не проверял ничего из этого.)


Я попытался без crypttab на Debian, и это не сработало. Даже с crypttab это не работает, но я стал ближе. sdb3_crypt UUID = 4a ... sda3_crypt luks, initramfs, keyscript = decrypt_derived. Опция initramfs необходима для того, чтобы получить сценарий decrypt_derived, включенный в initramfs. Но все равно не удается загрузить при запуске.
ау

-1

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

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

В качестве альтернативы вы можете расширить том LVM до второго диска. Если я правильно помню, шифрование должно быть перенесено.


1
LVM построен поверх основного зашифрованного тома. Расширение LVM без создания другого зашифрованного тома не будет шифровать дополнительное хранилище, добавленное в группу томов.
красться

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.