Bagaimana cara saya pra-enkripsi mengenkripsi partisi root saja?

13

Saya memiliki 3 partisi: EFI ( /boot/efi), boot ( /boot) dan root ( /). Saya ingin mengenkripsi hanya / . Saya dapat melakukan ini secara manual melalui installer, tetapi saya ingin preseed itu.

Bagaimana cara saya mendefinisikannya? Resep saya (non-terenkripsi) terlihat seperti di bawah ini. Ini adalah semacam campuran saran untuk Partisi Sistem EFI yang saya temukan (tidak menemukan panduan yang jelas).

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

Bagaimana cara membuat sda3partisi fisik untuk enkripsi LUKS dan kemudian memiliki sistem file di atas itu?

MEMPERBARUI:

Saya menemukan bahwa saya dapat mengatur partisi menjadi crypto seperti di bawah ini, tetapi masih ada 3 masalah:

  1. Saya masih perlu membuat dan mengaktifkan volume terenkripsi pada partisi yang dipilih
  2. Saya masih perlu mengatur filesystem ext4 yang benar pada volume terenkripsi setelah dibuat dan diaktifkan
  3. Resep tidak memilih jenis enkripsi dm-cryptyang diperlukan untuk membuat dan mengaktifkan volume yang dienkripsi.

Masih berjuang keras

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .
Deitch
sumber
FYI, label seperti sda, sdb, sdc, dll tidak selalu menjaga surat-surat yang sama (a, b, c) antara sepatu (saya beralih setiap boot)
Xen2050
2
@ Xen2050 benar Anda, UUIDatau PARTUUIDatau LABELatau PARTLABELjauh lebih baik. Dalam kasus saya, saya mem-boot sebuah gambar ke format, jadi hanya ada satu drive masuk. Either way, bagaimana cara mengaturnya untuk crypt partisi tunggal? Saya bisa melakukannya secara interaktif, tetapi saya perlu preseed.
Deitch
Hmm, mungkin ada di suatu tempat, tetapi lebih banyak pertanyaan. Akan memposting q lainnya.
Deitch
@deitch - apakah ini konfigurasi partisi server atau klien atau hanya contoh partisi desktop? Ketiga partisi ini terlalu sedikit untuk maksud Anda - ada yang hilang / swap dan / home - jadi Anda harus mengatur entah bagaimana bagian yang diperluas dari harddisk dengan partisi logis - biasanya partisi hanya memperbolehkan 4 secara keseluruhan tetapi diperluas dengan partisi logis memungkinkan Maksimal 4 kali 63 partisi (dan GPT memungkinkan lebih banyak lagi) ?! - unix.stackexchange.com/questions/33555/… - tentang partisi master dan slave.
dschinn1001
@ dschinn1001 sebenarnya adalah templat untuk server yang aman. Sistem operasi inti ada pada drive yang dapat dilepas. Data pengguna dan swap ada di drive internal, yang ditemukan dan dipasang dengan tepat oleh layanan systemd. Tetapi mengabaikan itu .... bagaimana saya bisa mengatur root untuk dienkripsi tanpa LVM?
Deitch

Jawaban:

1

Pada awalnya, buka terminal root:

sudo -i

Kemudian isi partisi, yang harus dienkripsi, dengan data acak menggunakan perintah seperti ini:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

Anda harus mengganti sdxydengan partisi yang akan dienkripsi. Kemudian ketik

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

untuk mengenkripsi partisi sdxy. Buka volume dan beri nama root:

cryptsetup luksOpen /dev/sdxy root

Gunakan perintah ini untuk membuat sistem file ext4 di dalamnya:

mkfs.ext4 /dev/mapper/root

Selanjutnya Anda dapat memulai penginstal. Pilih "Sesuatu yang lain" ketika ditanya apa yang ingin Anda lakukan. Kemudian pilih titik pemasangan untuk semua partisi Anda yang tidak dienkripsi. Untuk rootpartisi Anda , pilih /dev/mapper/root, klik "Ubah". Kemudian pilih ext4untuk tipe sistem file dan atur titik mount ke /. Kemudian klik "Instal sekarang" dan instal Ubuntu secara normal.

Setelah selesai menginstal klik "Lanjutkan pengujian". Buka terminal dan ketik:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyzharus diganti dengan bootpartisi Anda . Selanjutnya, ketik:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

Buka terminal kedua dan ketik sudo blkid. Temukan UUID untuk root(yang mengatakan crypto_lukspada akhirnya) dan tempel ke /etc/crypttab. Maka file tersebut /etc/crypttabakan terlihat seperti ini:

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Tutup file dengan Ctrl+ x, ydan Enter. Ketik nano /etc/fstabterminal dan periksa apakah semuanya terlihat benar (misalnya UUID).

Akhirnya, keluar dari lingkungan chroot dan ketik:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

Ini menempatkan gambar header dari partisi yang dienkripsi ke dalam folder /rootdan menamainya root.img. Kemudian pindahkan gambar ke drive eksternal (jika lupa kata sandi). Sekarang Anda dapat reboot ke Ubuntu Anda yang baru diinstal.

Sumber: http://thesimplecomputer.info/full-disk-encryption-with-ubuntu

Earl Nick
sumber
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Karl Richter
@ Earl Anda menyarankan membangun partisi sebelumnya di lingkungan chroot (atau kemas), dan kemudian memasukkannya ke installer?
Deitch
Bagaimana saya melakukannya dengan preseeder?
Deitch
Saya tidak tahu, tapi itu setidaknya solusi untuk membuat rootpartisi -LUKS-terenkripsi tanpa LVM.
Earl Nick