Instal kustom terenkripsi

21

Komputer saya menjalankan Ubuntu. Saya ingin menginstal Ubuntu pada media lain. Saya ingin mengaktifkan enkripsi, namun karena pilihan default installer ubuntu (hapus / bersama / dll ...) hanya menyangkut drive default, saya harus memilih "sesuatu yang lain" dan membuat partisi pada drive lain secara manual, saya buat ~ 128MB bagian untuk boot, maka saya hilang, jika saya membuat partisi terenkripsi dengan sisa ruang saya tidak dapat membaginya, jadi saya tidak memiliki swap; jika sebaliknya saya membuat dua partisi terenkripsi, sepertinya tidak benar karena ingin mengatur dua kata sandi yang berbeda ...

Bagaimana saya bisa mengatur swap itu? (Selama atau setelah menginstal).

Yvain
sumber

Jawaban:

29

Cara melakukannya dengan LVM dan satu partisi terenkripsi

Peringatan

Pertama-tama 128M terlalu kecil untuk boot! Saya menggunakan 1G. Kalau tidak, apa yang pasti terjadi adalah bahwa Anda mungkin lupa untuk menghapus kernel lama dan / boot akan terisi, dan Anda harus berurusan dengan rasa sakit mencoba untuk menghapus kernel lama dari sistem sehingga Anda bisa mendapatkan aptatau apt-getbekerja lagi. Bahkan dengan 1G, pastikan Anda menghapus kernel lama dari waktu ke waktu.

Langkah selanjutnya tidak ditujukan untuk pengguna pemula.
UPDATE: Saya telah membuat skrip yang akan melakukan operasi berikut untuk Anda dan banyak lagi! Yang harus Anda lakukan adalah menjalankannya dari OS Live sebelum instalasi. Anda dapat menemukan artikel di blog saya .


Pra-instalasi dari OS live

Anda ingin mengatur LUKS dan LVM saat mempartisi secara manual! Saya menguji ini di Ubuntu 16.04.2

Boot Ubuntu dari OS Live dan pilih opsi untuk mencoba Ubuntu tanpa menginstal. Ikuti langkah-langkah yang saya uraikan di bawah ini. Mari kita asumsikan Anda menginstal ke / dev / sdb.

  1. Partisi drive dengan alat pilihan Anda: Saya menggunakan fdisk untuk mengatur tambang pada tabel partisi msdos sebagai berikut:
    • partisi lain: OS yang ada - kami tidak peduli tentang ini
    • sdb1: / boot (1G)
    • sdb2: partisi LUKS (sisa disk)
  2. Atur LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • Meskipun tidak perlu, itu adalah ide yang baik untuk mengisi partisi LUKS Anda dengan nol sehingga partisi, dalam keadaan terenkripsi, diisi dengan data acak. sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M WASPADALAH, ini bisa memakan waktu yang sangat lama!
  3. Atur LVM di / dev / mapper / CryptDisk
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

Instalasi dari OS langsung

  1. Sekarang Anda siap untuk menginstal. Saat Anda masuk ke bagian "Tipe instalasi" dari instalasi, pilih opsi "Sesuatu yang lain". Kemudian tetapkan secara manual partisi / dev / mapper / vg0- * sesuai keinginan Anda. Jangan lupa untuk mengatur / dev / sdb1 sebagai / boot. partisi / boot tidak boleh dienkripsi. Jika ya, kita tidak akan bisa boot. Ubah "Perangkat untuk instalasi pemuat boot" ke / dev / sdb, dan lanjutkan dengan instalasi.
  2. Ketika instalasi selesai, jangan reboot ! Pilih opsi untuk "Lanjutkan Pengujian".

Konfigurasi pasca instalasi dari OS langsung

Bit ini sangat penting jika Anda ingin sistem Anda untuk boot! Saya menghabiskan cukup banyak waktu meneliti ini untuk mengetahui langkah-langkah pasca-instalasi ini. Dalam kasus saya, saya benar-benar melakukannya karena saya ingin menyesuaikan ukuran / boot di / dev / sda, tetapi semua pekerjaan itu harus terbawa ke situasi Anda juga.

  1. Di terminal, ketik berikut ini dan cari UUID dari / dev / sdb2. Perhatikan UUID itu untuk nanti.
    • sudo blkid | grep LUKS
    • Baris penting di mesin saya berbunyi /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. Selanjutnya mari kita pasang kembali sistem yang baru diinstal sehingga kita dapat melakukan beberapa perubahan lagi.

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # ini mungkin tidak perlu
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # Saya tidak sepenuhnya yakin ini perlu
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (Hanya jika Anda menggunakan EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. Sekarang jalankan sudo chroot /mntuntuk mengakses sistem yang diinstal

  4. Dari chroot, pasang beberapa hal lagi
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. Atur crypttab. Menggunakan editor teks favorit Anda, buat file / etc / crypttab dan tambahkan baris berikut, ganti UUID dengan UUID disk Anda.
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. Terakhir, membangun kembali beberapa file boot.
    • update-initramfs -k all -c
    • update-grub
  7. Reboot, dan sistem harus meminta kata sandi untuk mendekripsi saat boot!

Terima kasih khusus kepada Martin Eve , EGIDIO DOCILE , dan orang-orang di blog.botux.fr untuk tutorial yang mereka posting. Dengan menarik potongan-potongan dari pos mereka dan melakukan sedikit pengambilan gambar masalah ekstra, saya akhirnya bisa mengetahui hal ini.

Saya mencoba ini beberapa kali dan gagal berulang kali. Bit yang saya harus kerjakan sendiri berdasarkan pesan kesalahan adalahsudo mount --bind /run/lvm /mnt/run/lvm

b_laoshi
sumber
Terima kasih banyak, namun saya terjebak di awal di mana saya perlu mengatur partisi luks. Tidak dapat menemukannya dalam keluaran fdisk -L.
Yvain
Dan ketika saya mencoba untuk mengatur crypt saya dapatkan dan kesalahan: gagal menghapus header
Yvain
Saya melihat Anda menandai ini sebagai solusi. Apakah Anda berhasil? Jika tidak, alat apa yang Anda gunakan untuk membuat partisi Anda? Anda harus mempartisi disk terlebih dahulu dengan alat seperti Gparted atau fdisk, membuat partisi untuk / boot dan satu untuk enkripsi (EFI akan membutuhkan partisi ketiga yang tidak dienkripsi). Saya tidak menggunakan EFI di pengaturan saya. Hanya setelah Anda membuat partisi untuk enkripsi Anda dapat benar-benar menjalankan cryptsetup luksFormatperintah untuk mengenkripsi itu. Setelah membuat / dev / sdb2, Anda dapat memformatnya dengan sistem file atau tidak. cryptsetupakan menghapus semua sistem file yang ada.
b_laoshi
1
@Yvain - Saya percaya ini salah. Sha1 tidak lagi dianggap aman. Sesuatu yang lebih aman (seperti opsi sha512 disarankan) pasti harus digunakan.
mike
1
+1 @b_laoshi Terima kasih banyak untuk jawabannya, ini sangat membantu saya :)
Tummala Dhanvi
3

Cara menyelesaikan beberapa partisi terenkripsi ini dan tidak ada LVM

Karena jawaban saya sebelumnya sangat panjang, saya memposting jawaban kedua yang menggunakan pendekatan yang berbeda jika Anda tidak ingin menggunakan LVM.

Anda dapat membuat beberapa partisi terenkripsi dan menggunakan skrip decrypt_derived sehingga Anda hanya perlu memasukkan kata sandi sekali. Lihatlah posting blog ini untuk petunjuk langkah demi langkah. Penulis menggunakan keyfile, tetapi skrip LUKS decrypt_derived akan mencukupi juga.

b_laoshi
sumber
Saya akhirnya mencabut drive utama, instalasi yang dibantu tersedia untuk sd saya :) lol
Yvain
2

Salah satu cara untuk melakukan tugas adalah dengan menggunakan penginstal jaringan ubuntu https://www.ubuntu.com/download/alternative-downloads

Ini bukan penginstal grafis. Tetapi ia menawarkan Anda pilihan disk eksplisit setelah Anda memilih instalasi disk lengkap dengan enkripsi.

ernstkl
sumber
0

Ini adalah jawaban bagi mereka yang terus menabrak pertanyaan ini yang ingin hanya sedikit mengubah partisi default Ubuntu. Misalnya, hapus swappartisi dan tambah /bootukurannya. Saya pikir banyak orang akan berkecil hati untuk mengikuti instruksi b_laoshi, karena jumlah langkah yang diperlukan.

Jadi untuk partisi kustom sederhana dengan enkripsi saya sarankan untuk menggunakan "Hapus disk dan instal Ubuntu" dengan "Enkripsi instalasi Ubuntu baru untuk opsi keamanan". Apa yang akan kita ubah adalah konfigurasi untuk partisi default ini.

Konfigurasi ini terkandung dalam /lib/partman/recipes[-arch]/. Bagi saya sendiri, saya telah berubah /lib/partman/recipes-amd64-efi/30atomic. Untuk mendapatkan efi538M untuk , 1024M untuk /boot, dan sisanya untuk /dengan ext4, saya mengedit file

538 538 538 fat32
    $iflabel{ gpt }
    $reusemethod{ }
    method{ efi }
    format{ } .

1024 1024 1024 ext4
    $defaultignore{ }
    $lvmignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ /boot } .    

900 10000 -1 ext4
    $lvmok{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ / } .

Perhatikan, bahwa setelah Anda memilih disk untuk dihapus di installer, ia akan meminta Anda dengan ringkasan partisi, sehingga Anda dapat memeriksa apakah triknya berhasil dan Anda mendapatkan partisi yang diinginkan. Lihat juga /ubuntu//a/678074/47073 .

Yrogirg
sumber