Zamontuj zaszyfrowany dysk twardy LUKS podczas rozruchu

24

Mam Xubuntu 14.04 na urządzeniu SSD ( HOME został poprawnie zaszyfrowany podczas instalacji), dodatkowo mam dysk twardy z zaszyfrowaną partycją z dodatkowymi danymi, które chciałbym zamontować w / mnt / hdd . Aby je wykonać, wykonałem następujące kroki:

(Wcześniej zaszyfrowałem dysk za pomocą LUKS, śledząc ten post http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/ )

Sprawdź UUID

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

Utwórz plik klucza z odpowiednim hasłem i zapisz go w moim DOMU (który również jest zaszyfrowany).

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

Dodaj klucz

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

Nowy wpis w / etc / crypttab

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

Zaktualizuj początkowy ramdysk

sudo update-initramfs -u -k all

Następnie, aby go przetestować, użyłem polecenia follow, aby uruchomić cryptdiski:

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

Aby sprawdzić, czy hddencrypted został zamapowany:

ls /dev/mapper/
control  hddencrypted

Utwórz punkt montowania

mkdir /mnt/hdd

Nowy wpis w / etc / fstab

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

Sprawdź poprawność fstab bez restartu:

sudo mount -a

Zamontuj zaszyfrowaną partycję podczas rozruchu

Teraz mam zamontowany w / mnt / hdd, jak zaproponowałem. Ale chciałbym zrobić to automatycznie po ponownym uruchomieniu. Ale zanim mogę się zalogować, pojawia się ten błąd:

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

Wszystko to sprawia, że ​​myślę, że / etc / crypttab nie może uzyskać dostępu do pliku kluczy, który znajduje się w moim HOME (innej zaszyfrowanej partycji). Nie znam kolejności, w jakiej system wykonuje nieszyfrowane i montuje jednostki. Mój DOM powinien być niezaszyfrowany przed moim dyskiem twardym, aby umożliwić dostęp do odczytu pliku klucza.

Byłbym wdzięczny za wszelkie spostrzeżenia, dlaczego tak się dzieje.

AKTUALIZACJA: Jeśli zlokalizuję plik klucza w / boot (bez szyfrowania), zamiast w moim / home / [NAZWA UŻYTKOWNIKA] (zaszyfrowany) / dev / sda1 i zaktualizuję wpis w / etc / crypttab jest idealnie zamontowany w czasie uruchamiania.

zeugor
źródło
Jak jest /home/$USERszyfrowany? Pełne szyfrowanie dysku, takie jak LUKS lub oparte na ecryptfs?
David Foerster

Odpowiedzi:

9

Plik klucza w katalogu / boot może być odczytany przez dowolny inny system operacyjny uruchomiony na twoim komputerze, który jest w stanie zamontować system plików na tym / boot. Dlatego szyfrowanie nie jest tak naprawdę skuteczne. Ten argument dotyczy wszystkich kluczowych lokalizacji plików w niezaszyfrowanych systemach plików.

Aby uniknąć plików kluczy w nieszyfrowanych systemach plików, do odszyfrowania można użyć hasła. Utwórz silne hasło do urządzenia. Następnie zmień wiersz w / etc / crypttab na

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

i zachowaj wpis w / etc / fstab niezmodyfikowany. Ubuntu 14.04 / 16.04 / 18.04 prosi o podanie hasła przy uruchamianiu.

Dominik Grether
źródło
połączenie odpowiedzi @ solt87 z tą odpowiedzią uzupełniłoby tę odpowiedź.
6

Czy to działa, jeśli zastąpisz „domyślne” w fstab na

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

(Według strony podręcznika montowania jest to to samo co „domyślne”, z wyjątkiem „użytkownika”).

solt87
źródło
1

Upewnij się, że partycja hddencrypted jest wymieniona po partycji domowej, zarówno w, jak /etc/fstabi /etc/crypttab. Jak crypttab (5)podaje strona:

Kolejność rekordów w crypttabie jest ważna, ponieważ skrypty inicjują kolejno iterację po crypttabie.

Możesz także spróbować dodać noearlyopcję do drugiej partycji w /etc/crypttab:

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

W normalnej sytuacji, można wskazać, że partycja domu musi być zamontowany pierwszy dodając go do CRYPTDISKS_MOUNTw /etc/default/cryptdisks, ale ponieważ jest ono szyfrowane, mam wrażenie, że nie byłby to dobry pomysł.

Aryeh Leib Taurog
źródło
1
To nie zadziała, ponieważ Ubuntu próbuje odszyfrować wszystkie partycje, a następnie je zamontować. Dlatego plik klucza nie będzie dostępny.
Christian Wolf