Drive terenkripsi automount aman saat login pengguna


18

Direktori terenkripsi / beranda akan dipasang secara otomatis untuk saya ketika saya masuk. Saya memiliki hard drive internal kedua yang telah saya format dan dienkripsi dengan Utilitas Disk. Saya ingin secara otomatis dipasang ketika saya login, seperti direktori home / terenkripsi saya. Bagaimana saya melakukan ini?

Ada beberapa pertanyaan yang sangat mirip di sini, tetapi jawabannya tidak berlaku untuk situasi saya. Mungkin yang terbaik untuk menutup / menggabungkan pertanyaan saya di sini dan mengedit yang kedua di bawah, tetapi saya pikir itu mungkin telah ditinggalkan (dan karena itu tidak pernah ditandai sebagai diterima).

Solusi ini bukan metode yang aman, ini menghindari enkripsi.
Yang ini membutuhkan pengeditan fstab, yang mengharuskan memasukkan kata sandi tambahan saat boot. Ini tidak otomatis seperti pemasangan / home.
Pertanyaan ini sangat mirip, tetapi tidak berlaku untuk drive yang dienkripsi. Solusinya tidak akan bekerja untuk kebutuhan saya.
Ini satu tapi ini untuk drive NTFS, milik saya ext4.

Saya dapat memformat ulang dan mengenkripsi ulang drive kedua jika solusi memerlukan ini. Saya punya semua data yang didukung di tempat lain.


FS apa yang Anda gunakan untuk enkripsi? LUKS atau ecrytpfs?
daisy

@ AaronLewis saya hanya menggunakan Disk Utility Ubuntu untuk memformat drive, kemudian centang kotak 'mengenkripsi drive ini'. Jika saya harus menebak saya akan pergi dengan ecryptfs, karena ini adalah bagaimana / home dienkripsi secara default. Karena sangat mudah dilakukan, saya tidak pernah melihatnya.
Tom Brossman

Jawaban:


5

Anda tidak lagi membutuhkan solusi di atas.

Prasyarat:

Catatan: metode ini kurang aman daripada memasang drive terenkripsi secara manual. Jika seseorang memiliki akses fisik ke komputer Anda, Anda ceroboh dengan kata sandi root Anda, atau komputer Anda memiliki beberapa akun pengguna / tamu, metode ini tidak aman ; drive sekunder tetap terpasang ketika Anda logout tetapi tidak mematikan sistem, sehingga isinya terlihat oleh pengguna lain.

Bagian 1: Enkripsi drive sekunder.

  1. Di Unity dash ketik "disk" dan tekan enter.
  2. Di bawah "Perangkat" klik pada hard drive yang ingin Anda enkripsi.
  3. Di bawah "Volume" klik tombol roda gigi / tindakan lainnya.
  4. Klik "Format Volume". Untuk jenis, pilih "Dienkripsi, kompatibel dengan sistem Linux." Beri nama drive Anda dan berikan frasa lulus yang kuat.
  5. Klik "Format"

Bagian 2: Secara otomatis memasang HDD saat sistem dinyalakan.

  1. Biarkan aplikasi "Disk" tetap terbuka, dan klik roda penggerak.
  2. Klik "Edit Opsi Enkripsi."
  3. "Opsi Enkripsi Otomatis" akan dihidupkan, dan menu di bawah ini berwarna abu-abu. Nonaktifkan opsi enkripsi otomatis.
  4. Masukkan frasa sandi mulai dari saat Anda memformat disk. Klik "Oke".

Anda sekarang memiliki hard drive terenkripsi yang akan secara otomatis dipasang ketika komputer Anda boot.


1
Meskipun saya yakin seseorang akan menggunakan ini, itu bukan jawaban untuk pertanyaan yang diajukan, yang menentukan bahwa pemasangan sekunder harus terjadi saat pengguna masuk, sebagai lawan dari startup sistem. Ini membuat klaim awal bahwa "Anda tidak lagi memerlukan solusi di atas" tidak sesuai, dan saya mengundang penulis untuk menulis ulang jawaban yang sesuai.
mc0e

2
Saya pikir Anda salah di sini. Yaitu, pemasangan sekunder tidak terjadi saat pengguna masuk (hanya pada akun yang saya sebutkan telah dilakukan), dan tidak sedetik sebelumnya. Ketika istri saya masuk ke akun Ubuntu-nya di komputer yang sama, drive tidak dipasang. Jika dia mencoba memasang, itu meminta kunci enkripsi. Saya berpendapat, Anda tidak perlu jawaban di atas.
tryion

1
Setuju, ini adalah cara paling sederhana sekarang karena saya adalah satu-satunya pengguna di mesin. Ini tidak akan bekerja untuk semua orang, tetapi jika Anda memiliki instalasi Ubuntu dan Anda adalah pengguna utama / admin, ini adalah cara untuk pergi. Seharusnya benar-benar ada kotak centang "Jadikan ini berfungsi persis seperti yang dienkripsi / beranda" di suatu tempat, ini adalah kotak penggunaan sederhana.
Tom Brossman

@tryion Partisi LUKS tidak dikunci saat startup sistem, tetapi tidak dipasang. Jadi begitu komputer dinyalakan, ia dapat diakses sebagai partisi yang tidak terenkripsi. Kata sandi disimpan dalam teks-jelas di /etc/crypttab. Tidak diperlukan kata sandi pengguna untuk mengakses partion. Jadi pengaturan ini setara dengan tidak memiliki enkripsi sama sekali, dan bukan jawaban untuk pertanyaan itu.
Victor

Apakah ada opsi untuk menyimpannya di tempat lain menggunakan libsecret untuk tidak mengenkripsi pengguna tertentu, dan apakah ada panduan untuk hal ini bagi pengguna non-GUI / tanpa kepala.
MrMesees

10

Ketika saya menulis jawaban ini beberapa tahun yang lalu ini adalah cara terbaik untuk mengimplementasikan solusi. Saya sekarang menyarankan agar Anda melihat jawaban berikutnya menggunakan mount.ecryptfs_private sebagai gantinya.

Saya juga mencari cara untuk secara otomatis me-mount volume eCryptfs kedua. Kumpulan skrip dan modifikasi konfigurasi berikut akan secara aman dan otomatis me-mount volume Anda saat login, baik ke GUI atau CLI.

Ada solusi yang lebih baik yang sedang dalam proses pembuatan (meskipun saya pikir tidak cukup siap untuk pemasangan otomatis pada login pengguna, karena skrip ini akan memiliki umur simpan terbatas.):

ecryptfs pada harddrive yang terlalu kecil - bagaimana cara menambahkan tautan ke dalam enkripsi?

Keamanan skrip tergantung pada direktori home Anda yang dienkripsi dengan eCryptfs sehingga skrip dan file dengan kata sandi untuk membuka bocoran frasa sandi Anda dienkripsi. Jika Anda membiarkan komputer tidak terkunci dengan shell root terbuka setelah login, Anda dapat mengakses kata sandi, namun penggunaan sudo NOPASSWD memungkinkan pemasangan partisi secara aman tanpa memerlukan entri kata sandi atau membiarkan frasa sandi dalam file yang dapat dibaca oleh pengguna.

Satu kekurangan yang diketahui dari skrip-skrip ini adalah bahwa volume kedua Anda tidak akan dilepas pada saat logout, karena itu tidak cocok untuk sistem multi-pengguna.

Solusi saya diimplementasikan dengan beberapa bagian, dua skrip shell, satu yang melakukan pemasangan aktual dan lainnya yang berfungsi sebagai pembungkus untuk itu.

Ini adalah skrip pembungkus yang memvalidasi jika direktori sudah di-mount, jika tidak maka akan memanggil skrip pemasangan menggunakan sudo:

/ home / johnf / script / automount_ecryptfs

#!/bin/bash

MOUNT_POINT=/home/johnf/slow

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  sudo /home/johnf/scripts/mount_other_ecryptfs
fi

Skrip ini memanggil / home / johnf / scripts / mount_other_ecryptfs yaitu sebagai berikut.

Perhatikan bahwa skrip ini mengasumsikan bahwa Anda mengaktifkan enkripsi nama file, jika Anda tidak melakukannya, Anda perlu memodifikasi skrip untuk menangani deteksi (lihat ecryptfs-recover-private) atau Anda dapat menghapus opsi mount ecryptfs_fnek_sig.

Berikut ini adalah skrip / home / johnf / scripts / mount_other_ecryptfs:

#!/bin/bash

ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`

printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}

Anda juga perlu membuat file dengan kata sandi di dalamnya, file ini akan digunakan oleh perintah mount eCryptfs:

/ home / johnf / script / ecryptfs_passphrase:

passwd=secret_passphrase

Anda perlu mengubah izin pada beberapa file:

chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase

Sebelum membuat skrip, Anda perlu membuat konfigurasi sudoers untuk mengizinkan eksekusi skrip pemasangan menggunakan sudo tanpa memasukkan kata sandi sudo Anda.

Tambahkan berikut ini ke / etc / sudoers (atau file di /etc/sudoers.d). Anda ingin mengganti johnf dengan nama pengguna Anda. Diperlukan untuk menggunakan jalur absolut ke skrip pemasangan.

johnf   ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs

Langkah terakhir adalah memanggil skrip automount_ecryptfs saat login.

Pada Ubuntu Unity (dan mungkin gnome) menggunakan applet Aplikasi Startup untuk membuat program startup baru yang memanggil / home / johnf / scripts / automount_ecryptfs.

Untuk secara otomatis me-mount volume eCryptfs kedua saat login ke bash shell Anda ingin memodifikasi file ~ / .bashrc Anda. Tambahkan yang berikut ini:

/home/johnf/scripts/automount_ecryptfs

Dengan konfigurasi ini di tempat Anda sekarang harus secara otomatis me-mount volume eCryptfs kedua Anda.


Wow, jawaban yang bagus! Terpilih dan diterima. Belum bisa mengujinya tetapi ini terlihat sangat lengkap.
Tom Brossman

Penulis mount.ecryptfs_privatesekarang merekomendasikan penggunaannya ecryptfs-mount-private, juga olehnya, yang merupakan skrip pembungkus untuk mount.ecryptfs_private. thesimplecomputer.info/… mungkin layak dibaca untuk manfaat relatif dari ecryptfs dan LUKS.
mc0e

9

Membangun jawaban @ johnf tetapi menggunakan mount.ecryptfs_private sebagai gantinya:

  • dienkripsi /home/bob/(mis. pada SSD), dengan menggunakan home dir magic terenkripsi normal Ubuntu.
  • dienkripsi /media/hdd/bob_extra/(mis. pada HDD), untuk dipasang ke /home/bob/extra. Ini harus diautomatis saat masuk, seperti halnya dir home.
  • gunakan kunci / kredensial yang sama untuk keduanya.

menciptakannya

mkdir /media/hdd/bob_extra
cp /home/bob/.ecryptfs/Private.sig /home/bob/.ecryptfs/extra.sig
echo "/media/hdd/bob_extra /home/bob/extra ecryptfs none 0 0" > /home/bob/.ecryptfs/extra.conf

menguji

mount.ecryptfs_private extra

berjalan mount, Anda akan melihat:

...
/media/hdd/bob_extra on /home/bob/extra type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=12345678abcdef,ecryptfs_fnek_sig=abcdef12345678)

untuk melepas:

sudo umount /media/hdd/bob_extra

setup automount

Buat /home/bob/bin/automount_ecryptfs.extra, yang akan memasangnya jika belum di-mount.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  mount.ecryptfs_private extra
fi

Jadikan itu dapat dieksekusi ( chmod +x), lalu tambahkan ke /home/bob/.bashrc:

...
/home/bob/bin/automount_ecryptfs.extra

Kemudian tambahkan juga ke Aplikasi Startup Gnome.


+1 Terima kasih atas jawabannya. Saya memiliki pengaturan yang jauh lebih rumit sekarang dengan beberapa SSD dan symlink ke drive bersama, jadi saya tidak akan dapat menguji ini. Saya berharap mengenkripsi banyak HDD akan sesederhana mengenkripsi / home suatu hari nanti.
Tom Brossman

Lihat juga ecryptfs-mount-privateyang mirip lebih banyak fitur. Misalnya dapat secara otomatis menggunakan kunci dari keyring pengguna.
mc0e

Jawaban ini adalah tentang memasang direktori pribadi eCryptfs. Pertanyaannya adalah tentang pemasangan partisi LUKS yang dibuat dengan utilitas Disk .
Victor

1

Buat skrip di direktori home terenkripsi Anda ~/scripts/mount_storage.sh::

#!/bin/bash

sudo cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file ~/keys/storage_keyfile
sudo mount /dev/mapper/storage /storage

Tambahkan ke "Aplikasi Startup":

sh ~/scripts/mount_storage.sh

Tambahkan ke /etc/sudoers:

%sudo   ALL= NOPASSWD: /sbin/cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file *
%sudo   ALL= NOPASSWD: /bin/mount /dev/mapper/storage /storage

Anda harus membuat /storagetitik mount dan mengubah UUID dalam skrip di atas (temukan dengan blkid).


Apakah ada cara mudah untuk membuat skrip seperti ini berjalan setiap kali USB dicolokkan?
naught101

Saya belum mencobanya sendiri sehingga tidak bisa mengatakan dengan pasti tetapi saya tidak mengerti mengapa tidak. Anda perlu membuat aturan udev yang menargetkan perangkat USB tertentu dan menjalankan skrip di atas. Posting ini bisa menjadi titik awal, misalnya.
Raul Laasner

0

Saya khawatir ini bukan jawaban populer ...

Ini tidak akan mungkin untuk me-mount partisi terenkripsi secara otomatis, tanpa menghindari keamanan enkripsi itu sendiri.

Pikirkan apa artinya " secara otomatis ", dan pahamilah itu secara otomatis berarti mereka juga akan melihat data Anda.


Saya menggunakan 'Aman' secara subyektif, saya dapat menghapusnya dari pertanyaan. Saya hanya ingin drive terenkripsi penuh foto untuk dipasang ketika saya masuk, seperti / home. Saya tahu bahwa ini secara teori dimungkinkan, karena saya memiliki drive ketiga (yang juga dienkripsi) sebagai tujuan Déjà Dup. Drive itu hanya akan dipasang ketika utilitas cadangan menyala. Sepenuhnya otomatis, saya menyimpan kunci sehingga saya tidak memasukkannya setiap kali. Saya merasa nyaman dengan semua kunci saya ditangani secara otomatis setelah saya memasukkan kata sandi di layar login. Adakah cara untuk mewujudkannya? Terima kasih.
Tom Brossman

3
Secara otomatis dalam konteks ini berarti harus dipasang setelah Anda memasukkan kata sandi login Anda. Kata sandi login Anda dapat menjadi kunci, atau lebih sering kunci untuk kunci, untuk partisi terenkripsi Anda. Ini masuk akal aman (memberikan kata sandi masuk yang baik).
Javier Rivera

Itu tidak akan secara otomatis dipasang di komputer lain, yang merupakan alasan mengapa sebagian besar dari kita mengenkripsi beberapa disk. Dalam kasus saya ini adalah disk yang saya gunakan untuk membuat cadangan. Saya bekerja di ruang bersama dan tahu bahwa salah satu dari kalian yang memiliki banyak pengetahuan akan dapat menghindari apa pun yang saya lakukan dengan akses fisik ke disk / komputer saya: Saya hanya ingin mengurangi aksesibilitas ke file saya sehingga orang lain dapat tidak melakukannya.
Ramon Suarez

Dengan menjadikannya proses otomatis, mungkinkah seseorang yang mencuri komputer Anda, dapat mengakses kunci HD ekstra terenkripsi Anda ?? (dan tentu saja me-mount dan mengakses HD ini)
miguelfg

Skenario yang mudah dan jelas: Saya pasang drive USB ke server di kantor untuk membuat cadangan data. Saya membawa pulang USB drive untuk memastikan backup di luar lokasi kalau-kalau Sesuatu Buruk Terjadi ke server. Seseorang masuk ke mobil saya dan mengambil disk USB saat saya di toko dalam perjalanan pulang. Sekarang mereka harus 1) tahu di mana server berada, dan 2) masuk ke kantor untuk mendekripsi disk. Bagian itu jauh lebih sulit daripada "cukup tancapkan ke komputer mereka di rumah".
Ernie

0

Proses sebagai berikut harus aman. Mewajibkan frasa sandi menghentikan pengguna lain untuk mendapatkan akses ke volume, meskipun sudah terpasang.

1. Buka Disk, pilih drive dan klik pada volume LUKS. Klik pada roda gigi dan lepaskan "Default Sesi Pengguna". Pilih "Buka kunci saat startup sistem" dan "Perlu otorisasi tambahan untuk membuka kunci": masukkan deskripsi gambar di sini

2. Klik volume disk (di bawah volume LUKS). Klik pada roda gigi dan lepaskan "Default Sesi Pengguna". Pilih "Mount at system startup" dan "Show in user interface": masukkan deskripsi gambar di sini

Anda juga dapat memilih untuk meminta otentikasi tambahan untuk memasang volume, tetapi dalam hal itu pemasangan tidak otomatis bagi pengguna yang bersangkutan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.