Монтировать LUKS зашифрованный жесткий диск при загрузке

24

У меня Xubuntu 14.04 на SSD-устройстве ( HOME был правильно зашифрован во время инсталляции), дополнительно у меня есть жесткий диск с зашифрованным разделом с дополнительными данными, которые я хотел бы смонтировать в / mnt / hdd . Для этого я следовал следующим шагам:

(Ранее я зашифровал диск с помощью LUKS после этого поста http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/ )

Проверьте UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

Сделайте ключевой файл с правильной парольной фразой и сохраните его в моем ДОМЕ (который также зашифрован).

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

Добавьте ключ

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

Новая запись в / etc / crypttab

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

Обновите начальный рамдиск

sudo update-initramfs -u -k all

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

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

Для проверки был найден hdoncrypted :

ls /dev/mapper/
control  hddencrypted

Создать точку монтирования

mkdir /mnt/hdd

Новая запись в / etc / fstab

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

Проверьте fstab без перезагрузки:

sudo mount -a

Смонтировать зашифрованный раздел при загрузке

Теперь я смонтировал его в / mnt / hdd, как я предложил. Но я хотел бы сделать это автоматически после перезагрузки. Но прежде чем я могу войти, я получаю эту ошибку:

the disk drive for /mnt/hdd is not ready yet or not permit

Все это заставляет меня думать, что / etc / crypttab не может получить доступ к ключевому файлу, который находится в моем HOME (другом зашифрованном разделе). Я не знаю порядок следования системе зашифрованным и монтирующим устройства. Мой ДОМ должен быть незашифрован перед моим жестким диском для предоставления доступа к чтению ключевого файла.

Я был бы признателен за понимание того, почему это происходит.

ОБНОВЛЕНИЕ: Если я нахожу ключевой файл в / boot (без шифрования), а не в моем / home / [USERNAME] (зашифрованном), то / dev / sda1 и обновление записи в / etc / crypttab прекрасно монтируется во время загрузки.

zeugor
источник
Как /home/$USERзашифровано? Полное шифрование диска, такое как LUKS или на основе ecryptfs?
Дэвид Фёрстер

Ответы:

9

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

Чтобы избежать файлов ключей в незашифрованных файловых системах, для расшифровки можно использовать пароль. Создайте надежный пароль для устройства. Затем измените строку в / etc / crypttab на

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

и оставьте запись в / etc / fstab без изменений. Ubuntu 14.04 / 16.04 / 18.04 попросит вас ввести пароль при запуске.

Доминик Гретер
источник
объединяя ответ @ solt87 и этот ответ завершит этот ответ.
6

Это работает, если вы замените «по умолчанию» в fstab на

rw,suid,dev,exec,auto,user,async,relatime

(Согласно странице руководства по монтированию , это то же самое, что и «default», за исключением «user».)

solt87
источник
1

Убедитесь, что раздел hdoncrypted указан после домашнего раздела, как в, так /etc/fstabи в /etc/crypttab. Как crypttab (5)говорится в справочной странице:

Порядок записей в crypttab важен, потому что сценарии инициализации последовательно выполняют итерацию через crypttab.

Также вы можете попробовать добавить noearlyопцию в последний раздел в /etc/crypttab:

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

В обычной ситуации вы можете указать, что домашний раздел должен быть сначала смонтирован, добавив его в CRYPTDISKS_MOUNTin /etc/default/cryptdisks, но, поскольку он сам зашифрован, у меня сложилось впечатление, что это не очень хорошая идея.

Арье Лейб Таурог
источник
1
Это не будет работать, поскольку Ubuntu пытается расшифровать все разделы и затем смонтировать их. Таким образом, файл ключа не будет доступен.
Кристиан Вольф