gunakan ecryptfs untuk Ubuntu One dengan direktori home yang sudah terenkripsi

9

Saya ingin memiliki satu folder terenkripsi di Ubuntu One. Ada howtos saat ini di Internet cara mengaturnya dengan EncFS atau ecryptfs. Saya ingin menggunakan ecryptfs - bukan karena kecepatan karena kecepatan tidak terlalu penting jika Anda menyimpan data Anda di cloud - tetapi karena saya sudah menggunakan ecryptfs, terbiasa dengan itu dan karena itu jangan ' Saya tidak ingin menggunakan solusi lain juga.

Masalah dengan folder Ubuntu One adalah, bahwa itu adalah bagian dari folder home pengguna. Dengan versi Ubuntu baru-baru ini dalam banyak kasus folder rumah pengguna sudah dienkripsi dengan ecryptfs dan Anda tidak dapat menggunakan ecryptfs (untuk folder Ubuntu One) di atas ecryptfs (dari direktori home pengguna).

Jadi apa yang bisa dilakukan? Tentu saja gunakan EncFS sebagai gantinya. Atau pindahkan folder Ubuntu One dari folder home pengguna.

Ada ide atau saran lain?

spi
sumber

Jawaban:

4

Seperti yang sudah dinyatakan ecryptfs bukan solusi untuk masalah saya karena folder rumah saya sudah dienkripsi oleh ecryptfs. Memindahkan folder "Ubuntu One" dari pohon rumah juga bukan solusi karena pada saat itu konten "Ubuntu One" lainnya tidak dienkripsi lagi.

Saya telah memutuskan untuk menggunakan EncFS sebagai gantinya. Menyiapkan folder terenkripsi cukup sederhana. Tetapi bagaimana cara memasangnya secara otomatis sehingga aplikasi dapat menggunakannya untuk menyimpan file konfigurasi? Ada beberapa solusi:

  1. pam_mount
  2. gnome-encfs
  3. autofs
  4. afuse

Saya tidak suka ide 1 karena saya tidak ingin menggunakan kata sandi yang sama untuk EncFS sebagai kata sandi login saya.

Solusi 2 Saya tidak suka di satu sisi karena tidak ada paket apt yang tersedia untuk Ubuntu dan di sisi lain saya tidak ingin memiliki folder EncFS hanya dipasang tepat setelah masuk. Jika ada yang gagal atau foldernya akan dilepas setiap folder akses selanjutnya akan gagal.

Solusi 3 tidak berfungsi. Saya telah menggunakan autofs selama beberapa waktu untuk me-mount share dan folder CIFS melalui sshfs tetapi EncFS tidak didukung. Saya telah bermain-main dengan beberapa skrip untuk me-mount EncFS oleh autofs tetapi itu menjadi terlalu kompleks dan rawan kesalahan.

Jadi apa yang saya gunakan saat ini adalah solusi 4. Afuse tersedia sebagai paket apt. Afuse secara otomatis memasang folder EncFS segera setelah folder diakses dan melepasnya lagi setelah beberapa saat.

Berikut adalah langkah-langkah cepat cara mengatur semuanya (mungkin saya menambahkan beberapa detail di masa mendatang):

  • instal afuse
  • buat folder "Ubuntu One" untuk menyimpan konten yang dienkripsi

Contoh:

~ / Ubuntu \ One / .encrypted

  • buat folder sebagai folder teratas untuk digunakan untuk me-mount folder di dalamnya

Contoh:

~ / .fuse

  • buat beberapa skrip pembantu
  • buat entri autostart di Gnome untuk memulai afuse

Folder EncFS yang tidak terenkripsi akan dipasang di bawah ~ / .fuse. Dalam kasus saya folder dengan konten yang tidak terenkripsi bernama U1Enc, oleh karena itu semua data tetap dalam ~ / .fuse / U1Enc. Demi kenyamanan saya, saya membuat tautan dari ~ / U1Enc ke ~ / .fuse / U1Enc agar lebih mudah.

Gagasan dan skrip pembantu saya temukan di beberapa situs web. Inilah tautannya:

Mengotomatiskan sistem file FUSE
autofs: encfs di atas sshfs

Saya menggunakan skrip berikut:

~ / .afuse-fstab

U1Enc  encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m

~ / .creds / U1.encfs.sh (ditandai sebagai dapat dieksekusi dan hanya dapat diakses oleh pengguna sendiri)

#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT

~ / bin / afuse-handler.pl (ditandai sebagai executable dan dengan ~ / bin dalam $ PATH)

#!/usr/bin/perl -w

$fstab="$ENV{HOME}/.afuse-fstab";
$afusedir=$ARGV[0];
$afuse_mountpoint=$ARGV[1];

print "afusedir:$afusedir\n";
print "afuse_mountpoint:$afuse_mountpoint\n";

system("logger -t afuse 1:$ARGV[0] 2:$ARGV[1]");

open(FSTAB, $fstab ) or die("Can not open afuse-fstab at $fstab\n");
while( <FSTAB> ) {
        if( /^$afusedir/ ) {
                s/[^\s\/]+[\s]*//;
                s/%r/$afusedir/g;
                s/%m/$afuse_mountpoint/g;
                chomp;
                $cmd = $_;
                print "$cmd\n";
                system($_) == 0
                        or die "execution of FUSE filesystem failed!\n"
                             . "command:$cmd\n"
                             . "reason:$?\n";
        }
}

dan akhirnya ~ / bin / afuse.start.sh (ditandai lagi sebagai executable) yang saya daftarkan dengan Gnome / System / Settings untuk memulai afuse setelah masuk

#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse

Skrip terakhir meluncurkan afuse yang memulai afuse-handler untuk memasang folder EncFS di bawah ~ / .fuse segera setelah diakses. Afuse.handler sendiri memeriksa .afuse-fstab cara memasang folder. Kata sandi EncFS di-echo oleh U1.encfs.sh sehingga tidak ada intervensi pengguna yang diperlukan (karena file ini disimpan di folder rumah saya itu dienkripsi oleh ecryptfs jadi saya tidak melihat ada masalah keamanan yang besar).

Jaga berbagai versi EncFS. Pada Natty saat ini EncFS versi 1.7.4 diinstal. Itu tidak cocok dengan versi 1.6 yang lebih lama di Maverick. Saya harus memperbarui EncFS di Maverick ke 1.7.4 juga (melakukan ini dengan menyematkan apt / preferensi).

spi
sumber
0

Cara yang mungkin untuk melakukannya, adalah dengan menggunakan dua direktori yang berbeda:

~ / my_secret_data tidak akan disinkronkan, tetapi akan mengenkripsi semua file yang ditambahkan ke dalamnya dan kemudian memindahkan file terenkripsi dari ~ / my_secret_data / folder ke ~ / Ubuntu One / folder. Jika Anda telah menambahkan kunci GPG Anda ke semua komputer Anda, maka Anda akan dapat secara otomatis membuka file yang dienkripsi, tetapi yang lain tidak.

Itu tidak terlalu elegan, saya pikir, tetapi itu harus berhasil.

Jo-Erlend Schinstad
sumber
Itulah yang saya lakukan dengan EncFS. Data terenkripsi disimpan di ~ / Ubuntu \ One / .encrypted dan tidak terenkripsi di ~ / .fuse / U1Enc. Saya hanya menggunakan EncFS bukan GPG untuk kenyamanan pengguna - data bisa dienkripsi / didekripsi dengan cepat.
spi