Bisakah saya menonaktifkan enkripsi disk penuh?

41

Saya baru-baru ini menginstal Ubuntu 12.10 dan membutuhkan kata sandi untuk boot (saya menginstalnya dengan sistem file terenkripsi).

Apakah saya harus menginstal ulang untuk mengubah ke sistem file tidak terenkripsi standar?

Zzealdor
sumber
Apakah Anda mengenkripsi seluruh instalasi Ubuntu, atau hanya direktori home Anda?
Flimm
Saya terenkripsi selama instalasi, jadi saya menduga seluruh instalasi.
Zzealdor
3
Saya pengguna baru jadi saya tidak yakin bagaimana hal-hal bekerja di Linux (Saya benar-benar muak dengan Microsoft!)
Zzealdor
@Rinzwind Mungkin tidak. Metode ini (ecryptfs) mengenkripsi direktori home dan tidak memerlukan kata sandi tambahan; kata sandi login digunakan.
Jan
1
@ user163872: Versi Ubuntu baru (12 dan 13) sangat lambat pada komputer lama seperti netbook. Anda harus menginstal Lubuntu, yang dirancang untuk kecepatan dan berjalan sangat cepat pada komputer yang lebih lama / lebih lambat, bahkan dengan RAM rendah (mis. 512MB). Lubuntu hampir sama dengan Ubuntu normal - hanya desktop / menu yang sedikit berbeda. Tetapi semua yang bekerja pada Ubuntu normal itu akan berfungsi juga di Lubuntu.
lara

Jawaban:

22

Jika Ubuntu meminta frasa sandi enkripsi selama boot (yaitu pada konsol teks sebelum layar login ditampilkan), ini menunjukkan bahwa metode enkripsi disk penuh digunakan. (Ada lebih dari satu cara untuk melakukan ini, tetapi saya akan tetap menjawabnya secara umum.) Enkripsi ditangani oleh lapisan perangkat lunak tambahan antara sistem file dan hard drive fisik, bukan sistem file itu sendiri.

Tidak ada metode atau alat sederhana untuk membatalkan ini. Dengan sedikit pengetahuan tentang cara kerja sistem Linux, itu bisa dilakukan. Anda harus memindahkan seluruh sistem file (atau semua file) ke partisi lain (dengan ruang kosong yang cukup) atau HDD eksternal. Kemudian, hapus wadah yang dienkripsi, dan buat ulang sistem file tanpa enkripsi. Terakhir, pastikan bahwa sistem file baru dikenali dengan benar oleh boot loader dan mount -asebelum reboot.

Jika memungkinkan, sebaiknya hindari prosedur yang memakan waktu dan rawan kesalahan ini. Lakukan instalasi baru. Untuk pengguna baru, ini adalah opsi tercepat dan teraman.

PS: Kemungkinannya adalah Anda dapat mengubah frasa sandi enkripsi, mungkin menjadi string kosong. Maka mendekripsi hanya perlu menekan Enter. Mungkin Anda bisa melangkah lebih jauh dan menekan passphrase prompt (sekarang tidak berguna). Namun, ini tidak menonaktifkan enkripsi. Data masih akan dienkripsi meskipun enkripsi tidak akan berguna karena kuncinya dapat ditebak secara sepele.

Jan
sumber
3
Secara teori, apakah Anda tidak dapat melakukan sesuatu seperti "dd if = / dev / mapper / sda5_crypt dari = / dev / sda5 bs = 32M"?
Roy
@ Roy, saya pikir itu akan berfungsi jika dan hanya jika yang berikut ini benar: 1. dddan driver yang mendasarinya tidak menulis sampai mereka selesai membaca setiap blok (mungkin ada flag dan pengaturan untuk memastikan ini) 2. baca / tulis blok tidak tumpang tindih tepi blok enkripsi (dapat diperiksa, mungkin melibatkan beberapa matematika) 3. informasi header penting yang diperlukan untuk dekripsi tidak ditimpa sebelum selesai (periksa format enkripsi yang mendasarinya, mungkin proses dari ujung-ke-mulai). Saya pikir itu mungkin tetapi akan membutuhkan pengaturan dan analisis yang lebih hati-hati.
fuzzyTew
20

Di bawah ini solusi saya yang berfungsi. Ingatlah bahwa saya bukan spesialis Linux, jadi ini mungkin bukan solusi terbaik. Tidak dapat menemukan yang lebih baik.

Memigrasi instalasi FDE ke partisi yang tidak dienkripsi

CATATAN : Setiap kali saya mengatakan, maksud saya

/dev/sda1 - boot partition
/dev/sda5 - encrypted partition
/dev/sda3 - clean non-encrypted EXT4 partition
/dev/sda2 - my newly created swap partition

Menyalin data dari sistem file root terenkripsi

Boot dari CD live. Saya telah menggunakan Ubuntu 13.10 32bit desktop ISO.

Pasang partisi Anda:

sudo cryptsetup luksOpen /dev/sda5 crypt1

Salin data sumber Anda ke partisi tujuan dan simpan dd PID ke variabel pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

Ini akan melakukan ping setiap proses dd detik dengan sinyal USR1 dan status hasil dd:

while sudo kill -USR $pid; do sleep 1; done

Alternatif untuk memantau DD

Jika Anda tidak suka 'metode saat' di atas, Anda dapat menggunakan arloji. Buka jendela terminal yang berbeda dan dapatkan PID:

pgrep -l '^dd$' | awk '{ print $1 }'

Ganti dengan ID proses Anda:

watch kill -USR1 <pid>

Anda akan melihat output di terminal dd Anda masing-masing 2s.

Mengkonfigurasi sistem file root dan partisi yang baru

Setelah selesai, Anda dapat memasang partisi yang tidak dienkripsi untuk melihat apakah tidak apa-apa:

sudo mount /dev/sda3 /mnt

Setelah itu lepaskan partisi Anda:

sudo umount /dev/sda3

Lepaskan partisi crypt:

sudo cryptsetup luksClose /dev/sda5

Jalankan gparted. Hapus partisi LUKS Anda (baik yang diperluas maupun yang logis). Ubah ukuran / dev / sda3 Anda dan pindah ke kiri. Buat partisi swap.

Catatan: Memindahkan / dev / sda3 Anda ke kiri mungkin butuh waktu lama. Bagi saya butuh 30 menit pada partisi 120GB dan drive SSD. Jika Anda memiliki 500GB + HDD, bersiaplah selama beberapa jam menunggu. Anda mungkin ingin membuat swap sebelum partisi Anda alih-alih memindahkan / dev / sda3 Anda.

Buat sistem file swap baru di partisi swap Anda:

sudo mkswap /dev/sda2 

dan simpan di suatu tempat UUID.

Dapatkan UUID partisi root Anda:

sudo blkid /dev/sda3

Edit fstab:

sudo nano /etc/fstab

Hapus atau komentari overlayfs dan tmpfs lines.

Tambahkan penggantian baris dengan hasil blkid:

UUID=<uuid_root> /  ext4 errors=remount-ro 0 1
UUID=<uuid_swap> none swap sw 0 0

Hapus file:

rm /etc/crypttab

Perbarui initramfs Anda untuk menghindari kesalahan seperti "cryptsetup: evms_activate tidak tersedia":

sudo -i
mount /dev/sda3 /mnt
mount -t proc none /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
mount /dev/sda1 /mnt/boot
chroot /mnt /bin/bash
apt-get remove --purge cryptsetup
update-initramfs -u -k all

Catatan akhir dan pemecahan masalah

Ini berhasil untuk saya, namun ada kemungkinan bahwa melakukan langkah demi langkah di atas mungkin tidak berhasil untuk Anda. Sebelum saya menemukan metode update-initramfs saya menginstal ulang kernel beberapa kali juga memodifikasi grub. Namun itu seharusnya tidak menjadi kasus untuk Anda. Ingatlah bahwa instruksi di atas dapat menghapus data Anda, jadi berhati-hatilah dan lakukan CADANGAN , SEBELUM memprosesnya.

Kalau-kalau Anda memiliki masalah kernel (chroot dan / boot terpasang):

uname -r
sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

Tentu saja ganti linux-image-3.XY-ZZ dengan tanggal kernel Anda dari uname.

atau GRUB (di luar chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && (boot-repair &)

Rincian lebih lanjut: https://help.ubuntu.com/community/Boot-Repair

Semoga berhasil

NeverEndingQueue
sumber
1
Saya percaya bahwa Anda harus mengganti UUID dari partisi swap /etc/initramfs-tools/conf.d/resumesecara manual dan saya akan merekomendasikan menyalin isi sistem file dengan cp -aatau rsync -akarena itu akan lebih cepat secara umum dan lebih aman untuk SSD.
LiveWireBT
Terima kasih telah membuat elaborasi saya lebih ramah pengguna. Saya tidak melakukan perubahan resume, juga takut menggunakan cp atau rsync, berpikir bahwa dd (salinan mentah dari perangkat ke perangkat) itu adalah alat yang tepat untuk tugas seperti itu. Saya melakukan itu pada VM, tetapi gambar ditempatkan pada SSD. Bisakah Anda menjelaskan: "lebih aman untuk SSD"?
NeverEndingQueue
Menggunakan ddsalinan seluruh partisi, bahkan blok yang harus kosong, yang menyebabkan penulisan yang tidak perlu ke SSD (dan pada beberapa itu bahkan merusak penulisan kinerja untuk hampir semua sel). Beberapa tahun yang lalu saya dan beberapa orang lain juga menemukan bahwa menyalin dengan dddan mengaktifkan TRIM (opsi buang EXT4) akan menyebabkan TRIM untuk menghapus blok yang dianggap kosong dan meninggalkan Anda dengan instalasi yang rusak setelah beberapa jam.
LiveWireBT
Pada metode pemantauan pertama harus USR1, bukan USR. Saya tahu itu sudah jelas, tetapi bisa menjadi masalah bagi pemula seperti saya;)
goodfellow
9

Dalam hal tidak apa-apa untuk menjaga enkripsi, tetapi untuk mematikan prompt passphrase, pendekatan yang jauh lebih sederhana adalah dengan hanya menetapkan kata sandi sepele seperti "kata sandi" dan kemudian menyimpan kata sandi sepele dalam initramfs di cleartext. Nonaktifkan kata sandi enkripsi LUKS .

Pada dasarnya, tambahkan skrip kait yang pada gilirannya menambahkan "skrip kunci" ke initramfs. Biasanya skrip ini digunakan untuk mendapatkan kata sandi melalui Bletooth, dari stik USB dll., Tetapi dalam hal ini, buat saja untuk mencetak kata sandi yang sepele.

Richard A
sumber