sử dụng ecryptfs cho Ubuntu One với một thư mục nhà đã được mã hóa


9

Tôi muốn ý tưởng có một thư mục được mã hóa trên Ubuntu One. Có những howtos hiện tại trên Internet làm thế nào để thiết lập nó với EncFS hoặc ecryptfs. Tôi muốn sử dụng ecryptfs - không phải vì tốc độ vì tốc độ không thực sự quan trọng lắm nếu bạn lưu trữ dữ liệu của mình trên đám mây - nhưng vì tôi đã sử dụng ecryptfs, đã quen với nó và do đó không nên ' t thực sự muốn sử dụng một giải pháp khác là tốt.

Vấn đề với thư mục Ubuntu One là, đó là một phần của thư mục nhà của người dùng. Với nhiều phiên bản Ubuntu gần đây, trong nhiều trường hợp, thư mục nhà của người dùng đã được mã hóa bằng ecryptfs và bạn không thể sử dụng ecryptfs (cho thư mục Ubuntu One) trên đầu trang của ecryptfs (của thư mục nhà của người dùng).

Vậy người ta có thể làm gì? Tất nhiên sử dụng EncFS thay thế. Hoặc di chuyển thư mục Ubuntu One ra khỏi thư mục nhà của người dùng.

Bất kỳ ý tưởng hoặc đề xuất khác?

Câu trả lời:


4

Như đã nêu ecryptfs không phải là một giải pháp cho vấn đề của tôi vì thư mục nhà của tôi đã được mã hóa bởi ecryptfs. Di chuyển thư mục "Ubuntu One" ra khỏi cây nhà không phải là một giải pháp vì phần còn lại của nội dung "Ubuntu One" không được mã hóa nữa.

Tôi đã quyết định sử dụng EncFS thay thế. Thiết lập thư mục được mã hóa khá đơn giản. Nhưng làm thế nào để nó được gắn tự động để các ứng dụng có thể sử dụng nó để lưu trữ các tập tin cấu hình? Có một số giải pháp:

  1. pam_mount
  2. gnome-encfs
  3. tự động
  4. một cầu chì

Tôi không thích ý tưởng 1 vì tôi không muốn sử dụng cùng một mật khẩu cho EncFS làm mật khẩu đăng nhập của mình.

Giải pháp 2 Tôi không thích một mặt vì không có gói apt nào có sẵn cho Ubuntu và mặt khác tôi không muốn có thư mục EncFS chỉ được gắn sau khi đăng nhập. Nếu có lỗi hoặc thư mục sẽ bị ngắt truy cập tiếp theo sẽ thất bại.

Giải pháp 3 không hoạt động. Tôi đã sử dụng autofs khá lâu để gắn kết các chia sẻ và thư mục CIFS thông qua sshfs nhưng EncFS chỉ không được hỗ trợ. Tôi đã chơi xung quanh với một số tập lệnh để gắn EncFS bằng autofs nhưng điều đó trở nên quá phức tạp và dễ bị lỗi.

Vì vậy, những gì tôi hiện đang sử dụng là giải pháp 4. Afuse có sẵn dưới dạng gói apt. Afuse tự động gắn kết thư mục EncFS ngay khi thư mục được truy cập và ngắt kết nối lại sau một thời gian nhàn rỗi.

Dưới đây là các bước nhanh để thiết lập mọi thứ (có thể tôi sẽ thêm một số chi tiết trong tương lai):

  • cài đặt afuse
  • tạo thư mục "Ubuntu One" để lưu trữ nội dung được mã hóa

Thí dụ:

~ / Ubuntu \ One / .encrypted

  • tạo một thư mục như một thư mục hàng đầu để sử dụng để gắn kết các thư mục trong

Thí dụ:

~ / .fuse

  • tạo một số kịch bản trợ giúp
  • tạo một mục nhập tự động trong Gnome để khởi chạy afuse

Thư mục EncFS không được mã hóa được gắn bên dưới ~ / .fuse. Trong trường hợp của tôi, thư mục có nội dung không được mã hóa được đặt tên là U1Enc, do đó tất cả dữ liệu nằm trong ~ / .fuse / U1Enc. Để thuận tiện, tôi đã tạo một liên kết từ ~ / U1Enc đến ~ / .fuse / U1Enc để đến đó dễ dàng hơn.

Các ý tưởng và kịch bản trợ giúp tôi tìm thấy trên một số trang web. Đây là các liên kết:

Tự động hóa hệ thống tập tin FUSE
autofs: encfs trên sshfs

Tôi sử dụng các tập lệnh sau:

~ / .afuse-fstab

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

~ / .creds / U1.encfs.sh (được đánh dấu là có thể thực thi và chỉ có thể truy cập bởi chính người dùng)

#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT

~ / bin / afuse-handler.pl (được đánh dấu là có thể thực thi được và với ~ / bin trong $ 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";
        }
}

và cuối cùng ~ / bin / afuse.start.sh (được đánh dấu lại là có thể thực thi) mà tôi đã đăng ký với Gnome / System / Settings để bắt đầu sử dụng sau khi đăng nhập

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

Kịch bản cuối cùng khởi chạy afuse để khởi động trình xử lý afuse để gắn thư mục EncFS bên dưới ~ / .fuse ngay khi nó được truy cập. Bản thân afuse.handler kiểm tra .afuse-fstab cách gắn thư mục. Mật khẩu EncFS được lặp lại bởi U1.encfs.sh vì vậy không cần sự can thiệp của người dùng (vì tệp này được lưu trong thư mục nhà của tôi nên nó được mã hóa bởi ecryptfs vì vậy tôi không thấy có vấn đề bảo mật lớn).

Chăm sóc các phiên bản EncFS khác nhau. Trên Natty hiện tại phiên bản EncFS 1.7.4 được cài đặt. Điều đó không chơi tốt với phiên bản 1.6 cũ hơn trên Maverick. Tôi cũng phải cập nhật EncFS trên Maverick lên 1.7.4 (thực hiện điều này bằng cách ghim apt / Preferences).


0

Một cách có thể để làm điều đó là sử dụng hai thư mục khác nhau:

~ / my_secret_data sẽ không được đồng bộ hóa, nhưng sẽ mã hóa tất cả các tệp được thêm vào nó và sau đó di chuyển các tệp được mã hóa từ ~ / my_secret_data / thư mục sang ~ / Ubuntu One / thư mục. Nếu bạn đã thêm khóa GPG cho tất cả các máy tính của mình, thì bạn sẽ có thể tự động mở các tệp được mã hóa, nhưng các tệp khác thì không.

Nó không thanh lịch lắm, tôi nghĩ vậy, nhưng nó nên hoạt động.


Đó là những gì tôi đang làm với EncFS. Dữ liệu được mã hóa được lưu trữ trong ~ / Ubuntu \ One / .encrypted và không được mã hóa trong ~ / .fuse / U1Enc. Tôi chỉ sử dụng EncFS thay vì GPG để thuận tiện cho người dùng - dữ liệu được mã hóa / giải mã khi đang bay.
spi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.