Cara menggunakan ecryptfs dengan direktori non-home

14

Saya ingin menggunakan ecryptfs untuk mengenkripsi direktori acak (mis., Bukan direktori home saya atau subdirektori darinya, terutama karena keterbatasan ruang disk pada partisi rumah saya) dan me-mount direktori itu ketika saya masuk ke akun saya. Saya tidak bisa melihat bagaimana melakukan ini atau bahkan jika itu benar-benar mungkin dengan perangkat lunak yang ada. Saya telah melihat posting yang memberikan saran yang tidak jelas (misalnya, untuk digunakan mount.ecryptfs_privatedengan opsi ALIAS), tetapi saya belum menemukan instruksi sederhana, langkah-demi-langkah tentang cara melakukan ini. Apakah seseorang dapat memberikan instruksi ini atau mengarahkan saya ke tempat menemukannya?

pengguna3004015
sumber
2
Ini adalah metode paling sederhana yang akan Anda temukan: wiki.archlinux.org/index.php/…
Rinzwind
1
Masalah saya dengan solusi ini adalah bahwa saya sudah memiliki direktori home terenkripsi. Melihat kode untuk ecryptsfs-setup-private, saya tidak yakin apa yang akan terjadi jika Anda sudah memiliki rumah terenkripsi dan tidak benar-benar ingin mencoba karena takut melakukan hal-hal buruk.
user3004015
1
Apakah Anda mengerti mengapa double tampaknya sangat sulit? Tampak bagi saya bahwa hal yang logis adalah membangun sistem generik untuk membuat penyimpanan dan folder terenkripsi dan mengotomatiskannya, dan kemudian membangun sistem untuk melakukan direktori home, tetapi perangkat lunak ini tampaknya telah ditulis dengan banyak hal bawaan. Penyimpanan harus. Privasi, direktori harus Privat, dll.
user3004015
2
Menggunakan file zip yang dilindungi kata sandi tidak aman secara kriptografis. Pendekatan serupa digunakan gpg. Katakanlah Anda ingin menyimpan folder dengan aman mydatamaka Anda dapat menggunakannya tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydatauntuk menyimpan data Anda dan gpg --decrypt mydata.tar.gpg | tar -xmengembalikan data Anda. Anda dapat dengan mudah menggunakan kunci pribadi / publik untuk melindungi data Anda yang tampaknya disarankan. Hanya sejumlah kecil data yang harus disimpan dengan metode ini. @Rinzwind
Arne L.
1
Jenis kekalahan tujuan mengenkripsi data jika Anda rm -fR mydata. Data itu dapat dipulihkan dari disk lama setelah Anda "menghapusnya". Saya tidak yakin bagaimana mengamankan itu, tapi saya akan bersandar kepada "rekursif" rusak gantinya: find mydata -type f -exec shred -uz -- {} \;. Catatan, merobek-robek hanya efektif pada sistem file non-journaled dan jenis perangkat tertentu .. Yang penting seseorang harus meneliti cara terbaik. Saya tidak berpikir ini adalah praktik yang aman: mengenkripsi dan mendekripsi arsip seperti ini. Kemungkinan itu tidak akan efektif.
bambams

Jawaban:

8

Anda hanya melihat skrip super-mudah seperti ecryptsfs-setup-privatedan ecryptsfs-mount-private, mereka menggunakan lebih banyak alat "generik" yang tampaknya Anda cari: mount.ecryptfsdan ecryptfs-add-passphrase. Lihat manhalaman mereka untuk info lebih lanjut.

Dan tautan yang diposting Rinzwind memiliki semua informasi yang Anda butuhkan, lebih jauh ke bawah halaman di bawah Pengaturan Manual . Mereka cukup panjang, tetapi versi yang sangat singkat adalah:


Cara "Pengaturan Manual" (archlinux wiki)

Pertama-tama pilih ALIAS yang Anda inginkan. Melalui bagian ini, ALIAS akan dirahasiakan. Buat direktori / file yang diperlukan:

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

The ~/.secretdirektori akan menyimpan data dienkripsi. The ~/secretdirektori adalah mount point di mana ~/.secretakan di-mount sebagai ecryptfs filesystem.

[Sekarang buat passphrase mount yang sebenarnya (skrip mudah akan memilih 32 karakter pseudo-acak /dev/urandom), buat yang bagus]

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

Tulis tanda tangan keluaran (ecryptfs_sig) dari perintah sebelumnya ke ~ / .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • Frasa sandi kedua untuk enkripsi nama file dapat digunakan. Jika Anda memilihnya, tambahkan ke keyring:

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    Jika Anda menjalankan perintah di atas, tambahkan tanda tangan keluarannya (ecryptfs_fnek_sig) ke ~ / .ecryptfs / secret.sig:

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

Akhirnya, untuk me-mount ~ / .secret on ~ / secret:

$ mount.ecryptfs_private secret

Untuk meng-unmount ~ / .secret:

$ umount.ecryptfs_private secret

  • Atau Anda bisa benar-benar membuat tangan Anda kotor sendiri dan mengikuti petunjuk Tanpa ecryptfs-utils .

  • Atau jika Anda sudah melihat skrip yang mudah ecryptsfs-setup-private& ecryptsfs-mount-private, Anda mungkin dapat menyalinnya dan mengeditnya untuk menunjuk ke direktori pilihan Anda, dengan sedikit keterampilan & kesabaran.

  • Atau simpan saja frasa sandi Anda sendiri (lebih baik secara aman) dan lakukan seperti contoh man ecryptfshalaman (harus membaca halaman manual):

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

Selain folder rumah terenkripsi dan folder terenkripsi di dalam folder eCryptfs bersarang di rumah

Dan, folder rumah terenkripsi biasanya menyimpan file dalam /home/.ecryptfs/user/, sedangkan folder pribadi terenkripsi memiliki file di dalam folder rumah Anda sendiri. Anda tidak dapat menggunakan keduanya sekaligus, eCryptfs tidak akan membuat folder terenkripsi bersarang. Tetapi memiliki rumah terenkripsi, dan folder terenkripsi di luar rumah Anda tidak masalah.

  • Saya baru saja mencoba membuat pengguna baru dengan rumah terenkripsi sudo adduser --encrypt-home jack

    Itu membuat /home/.ecryptfs/folder, dengan:

    • /home/.ecryptfs/jack/.ecryptfs/ - frasa sandi terbungkus & file konfigurasi ke rumah jackount otomatis saat masuk
    • /home/.ecryptfs/jack/.Private/- file rumah terenkripsi yang sebenarnya, dipasang ke /home/jack/saat login.

      Dan juga /home/jack/foldernya, tetapi berisi tautan yang tetap di sana baik yang masuk atau tidak:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • Selanjutnya saya login sebagai jack, tetapi tautannya masih ada, jadi mencoba menjalankan ecryptfs-setup-privatemenyebabkannya terlihat /home/jack/.ecryptfs/tetapi benar-benar melihat file yang ada /home/.ecryptfs/jack/.ecryptfssehingga gagal membuat file kata sandi lain & gagal denganERROR: wrapped-passphrase file already exists, use --force to overwrite.

      Mencoba "ALIAS" langkah-langkah di atas, menggunakan folder .secret di dalam rumah terenkripsi gagal, dengan kesalahan ini:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      "Bersarang direktori terenkripsi di dalam direktori terenkripsi tidak didukung dengan eCryptfs. Maaf." - Penulis & pengelola eCryptfs

    • Mengubah folder ALIAS di luar rumah jack, mencoba /tmp/.secret/& /tmp/secret/ bekerja . TETAPI jika jack log keluar folder terenkripsi baru akan tetap terpasang , jadi Anda harus menghapusnya ( umount.ecryptfs_private secret).

Xen2050
sumber
1
Terima kasih atas tanggapan yang disederhanakan. Namun satu pertanyaan: apakah ini menangani masalah pemasangan otomatis? Maaf karena padat tentang hal ini, tetapi halaman web yang Anda tunjukkan dan halaman manual benar-benar tidak mudah dipahami tentang pengaturan pemasangan otomatis untuk situasi yang tidak standar. Karena saya sudah memiliki direktori home terenkripsi, saya sudah memiliki $ HOME / .ecryptfs / auto-mount dan frasa-frasa, tapi yang pertama kosong dan yang kedua sudah ada sesuatu di dalamnya. Tidak sepenuhnya jelas bagi saya bagaimana cara menambahkan kata sandi baru dan memerintahkannya untuk memasang direktori secara otomatis.
user3004015
Diperbarui dengan sedikit pengujian, dan orang ini ragingpenguin.com/2012/12/... rupanya beruntung mengikuti panduan Wiki lengkung tentang pemasangan otomatis dengan PAM, tapi dia cukup
bungkam
Terima kasih atas usaha Anda. Saya tidak tertarik bersarang direktori ecryptfs, tetapi secara otomatis memasang direktori kedua di tempat kedua. Saya akan mencoba membuatnya bekerja ketika saya punya sedikit waktu, tapi itu jelas tidak begitu jelas ...
user3004015
Anda dapat memotongnya menjadi satu mountbaris, tidak perlu .conffile atau menambahkan kunci, cukup baca man ecryptfshalaman untuk opsi yang tersedia. Kemudian lemparkan file "jalankan saat login" /home/user/.config/autostart/. Tetapi keamanan frasa sandi bisa berisiko jika disimpan secara tidak benar
Xen2050
Masalahnya adalah ecryptfs memiliki sistem pembungkus kata sandi enkripsi yang bagus di dalam pembungkus yang dibuka dengan kata sandi masuk. Ini memberikan perlindungan tambahan untuk kata sandi ecryptfs, yang menyenangkan untuk dimiliki. Saya tidak berpikir memasukkan sesuatu di .config / autostart akan memungkinkan ini kecuali saya salah paham tentang apa yang seharusnya saya masukkan ke dalam skrip.
user3004015
0

Jika Anda ingin menggunakannya seperti ENFs, Anda dapat melakukannya dengan entri berikut di /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim adalah kata Jerman untuk rahasia, tetapi memastikan bahwa itu bukan kata kunci. Anda harus membuat direktori terlebih dahulu. Pertama kali Anda harus ecryptfs_fnek_sig=1f7aefb9e239099fpergi. Kemudian mount /tmp/geheimakan menunjukkan kepada Anda nilai yang benar.

Anda dapat menyimpan kata sandi di tempat lain dan mengatur opsi yang lebih canggih. Anda akan menemukan semua opsi di man ecryptfs.

niels
sumber
-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

misalnya:

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

gunakan perintah di atas untuk membuat dan me-mount sistem terenkripsi di mana file yang disimpan dalam RANDOMDIRECTORY dienkripsi dan disimpan ke EFILES.

catatan tambahan. pastikan RANDOMDIRECTORY kosong saat Anda memulai. Setelah Anda menjalankan perintah di atas, dan sistem di-mount dan siap untuk pergi, semua file yang Anda simpan di RANDOMDIRECTORY akan dienkripsi ke EFILES jika sistem di-mount. Untuk moount / unmount quick, Anda bisa membuat skrip bash, dan menjalankannya melalui pintasan aplikasi, atau membuat perintah alias untuk pemasangan cepat.

Saya telah menggunakan ini selama lebih dari satu tahun sekarang.

EDIT: pulang untuk mengkonfirmasi, perintahmu bukan ecryptfs. yaitu ENFF nya

encfs /destination/encrypted /destination/unencrypted

maaf soal itu. Dengan ini, Anda harus menginstal program baru (mungkin)

dr1094
sumber
1
Saya mengetikkan perintah ecryptfsdan merespons perintah yang tidak ditemukan. man ecryptfsmembuka halaman manual untuk mount -t ecryptfs, tetapi tidak benar-benar menjelaskan cara membuat sistem file yang dienkripsi.
user3004015
Perhatikan bahwa saya menggunakan Ubuntu 14.04 LTS, jadi instalasi saya relatif baru. Apakah ecryptfsperintah itu merupakan tambahan terbaru?
user3004015
encfs tidak sama dengan ecryptfs. Ini dua yang berbeda.
Diagon