Pasang hard drive terenkripsi LUKS saat boot

24

Saya memiliki Xubuntu 14.04 pada perangkat SSD ( HOME dienkripsi dengan benar selama instalasi), selain itu saya memiliki HDD dengan partisi terenkripsi dengan data tambahan yang ingin saya pasang di / mnt / hdd . Untuk membuat ini, saya mengikuti langkah-langkah berikut:

(Sebelumnya saya telah mengenkripsi disk dengan LUKS setelah posting ini http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/ )

Periksa UUID

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

Buat keyfile dengan frasa sandi yang tepat dan simpan di HOME saya (yang juga dienkripsi).

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

Tambahkan kuncinya

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

Entri baru di / etc / crypttab

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

Perbarui ramdisk awal

sudo update-initramfs -u -k all

Lalu, untuk mengujinya, saya menggunakan perintah follow untuk memulai cryptdisks:

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

Untuk memeriksa hddenkripsi telah dipetakan:

ls /dev/mapper/
control  hddencrypted

Buat titik mount

mkdir /mnt/hdd

Entri baru di / etc / fstab

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

Validasi fstab tanpa reboot:

sudo mount -a

Pasang partisi terenkripsi saat boot

Sekarang saya telah memasangnya di / mnt / hdd seperti yang saya usulkan. Tapi saya ingin membuat ini secara otomatis setelah reboot. Tetapi sebelum saya bisa masuk, saya mendapatkan kesalahan ini:

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

Semua ini membuat saya berpikir bahwa / etc / crypttab tidak dapat mengakses keyfile yang terletak di HOME saya (partisi terenkripsi lainnya). Saya tidak tahu urutan yang mengikuti sistem untuk tidak terenkripsi dan me-mount unit. HOME saya harus tidak dienkripsi sebelum HDD saya karena memberikan akses untuk membaca keyfile.

Saya akan sangat menghargai wawasan mengapa ini terjadi.

UPDATE: Jika saya menemukan keyfile di / boot (tidak dienkripsi), alih-alih di / home / [USERNAME] saya (dienkripsi) the / dev / sda1 dan memperbarui entri di / etc / crypttab dengan sempurna dipasang pada saat boot.

zeugor
sumber
Bagaimana cara /home/$USERdienkripsi? Enkripsi disk lengkap seperti LUKS atau berbasis ecryptfs?
David Foerster

Jawaban:

9

File kunci dalam direktori / boot dapat dibaca oleh sistem operasi lain yang di-boot pada mesin Anda yang dapat me-mount sistem file pada / boot yang berada. Dengan demikian, enkripsi tidak terlalu efektif. Argumen ini berlaku untuk semua lokasi file utama pada sistem file yang tidak dienkripsi.

Untuk menghindari file kunci pada sistem file yang tidak dienkripsi, kata sandi dapat digunakan untuk dekripsi. Buat kata sandi yang kuat untuk perangkat. Kemudian, ubah baris di / etc / crypttab menjadi

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

dan biarkan entri di / etc / fstab tidak dimodifikasi. Ubuntu 14.04 / 16.04 / 18.04 meminta Anda untuk kata sandi saat memulai.

Dominik Grether
sumber
menggabungkan jawaban @ solt87 dan jawaban ini akan melengkapi jawaban ini.
6

Apakah itu berfungsi jika Anda mengganti "default" di fstab dengan

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

(Menurut halaman manual mount , itu sama dengan "default" kecuali untuk "pengguna".)

solt87
sumber
1

Pastikan partisi hddencrypted terdaftar setelah partisi home, di keduanya /etc/fstabdan /etc/crypttab. Seperti yang crypttab (5)dinyatakan laman manual:

Urutan catatan dalam crypttab penting karena skrip init berurutan melalui crypttab melakukan hal mereka.

Anda juga dapat mencoba menambahkan noearlyopsi ke partisi terakhir di /etc/crypttab:

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

Dalam situasi normal, Anda dapat mengindikasikan bahwa partisi home harus di-mount terlebih dahulu dengan menambahkannya ke CRYPTDISKS_MOUNTdalam /etc/default/cryptdisks, tetapi karena itu sendiri terenkripsi, saya punya perasaan bahwa itu bukan ide yang baik.

Aryeh Leib Taurog
sumber
1
Ini tidak akan berfungsi karena ubuntu mencoba mendekripsi semua partisi dan kemudian me-mount-nya. Dengan demikian file kunci tidak akan tersedia.
Christian Wolf