Cách sử dụng ecryptfs với thư mục không phải là nhà


14

Tôi muốn sử dụng ecryptfs để mã hóa một thư mục ngẫu nhiên (nghĩa là không phải thư mục chính của tôi hoặc thư mục con của chúng, chủ yếu là do giới hạn không gian đĩa trên phân vùng nhà của tôi) và gắn thư mục đó khi tôi đăng nhập vào tài khoản của mình. Tôi không thể thấy cách thực hiện việc này hoặc thậm chí nếu nó thực sự khả thi với phần mềm hiện có. Tôi đã thấy các bài đăng cung cấp các đề xuất mơ hồ (ví dụ: để sử dụng mount.ecryptfs_privatevới tùy chọn ALIAS), nhưng tôi vẫn chưa tìm thấy các hướng dẫn đơn giản, từng bước về cách thực hiện việc này. Ai đó có thể cung cấp các hướng dẫn này hoặc hướng dẫn tôi đến nơi để tìm thấy chúng?


2
Đây là phương pháp đơn giản nhất bạn sẽ tìm thấy: wiki.archlinux.org/index.php/ Kẻ
Rinzwind

1
Vấn đề của tôi với giải pháp này là tôi đã có một thư mục nhà được mã hóa. Nhìn vào mã cho ecryptsfs-setup-private, tôi không chắc chắn điều gì sẽ xảy ra nếu bạn đã có một ngôi nhà được mã hóa và không thực sự muốn thử vì sợ nó làm điều xấu.
dùng3004015

1
Bạn có hiểu tại sao một đôi dường như rất khó? Dường như với tôi rằng điều hợp lý sẽ là xây dựng một hệ thống chung để tạo lưu trữ và thư mục được mã hóa và tự động hóa chúng, sau đó xây dựng hệ thống đó để thực hiện thư mục chính, nhưng phần mềm này dường như đã được viết rất nhiều của những điều khó khăn. Bộ nhớ phải là .Private, thư mục phải ở chế độ Riêng tư, v.v.
user3004015

2
Sử dụng tệp zip được bảo vệ bằng mật khẩu không bảo mật bằng mật mã. Một cách tiếp cận tương tự là sử dụng gpg. Giả sử bạn muốn lưu trữ an toàn thư mục mydatasau đó bạn có thể sử dụng tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydatađể lưu trữ dữ liệu của mình và gpg --decrypt mydata.tar.gpg | tar -xkhôi phục dữ liệu của mình. Bạn có thể dễ dàng sử dụng khóa riêng / chung để bảo vệ dữ liệu của mình. Chỉ nên lưu trữ một lượng nhỏ dữ liệu với phương pháp này. @Rinzwind
Arne L.

1
Loại đánh bại mục đích mã hóa dữ liệu nếu bạn rm -fR mydata. Dữ liệu đó có thể được phục hồi từ đĩa sau khi bạn "xóa" nó. Tôi không chắc nó an toàn đến mức nào, nhưng thay vào đó tôi lại nghiêng về một mảnh vỡ "đệ quy" : find mydata -type f -exec shred -uz -- {} \;. Lưu ý, băm nhỏ chỉ có hiệu quả trên các hệ thống tệp không được ghi nhật ký và một số loại thiết bị nhất định .. Trường hợp quan trọng, người ta nên nghiên cứu cách tốt nhất. Tôi không nghĩ rằng đây là một thực hành an toàn: mã hóa và giải mã kho lưu trữ như thế này. Odds là nó sẽ không hiệu quả.
bambams

Câu trả lời:


8

Bạn chỉ nhìn vào các tập lệnh siêu dễ như ecryptsfs-setup-privateecryptsfs-mount-private, họ sử dụng các công cụ "chung chung" hơn mà bạn dường như đang tìm kiếm: mount.ecryptfsecryptfs-add-passphrase. Xem mantrang của họ để biết thêm.

Và liên kết Rinzwind đã đăng có tất cả thông tin bạn cần, tiếp tục xuống trang dưới Cài đặt thủ công . Chúng khá dài, nhưng phiên bản rất ngắn sẽ là:


Cách "Thiết lập thủ công" (wiki archlinux)

Đầu tiên chọn ALIAS theo ý muốn. Thông qua phần này, ALIAS sẽ là bí mật. Tạo các thư mục / tập tin cần thiết:

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

Các ~/.secret sẽ giữ dữ liệu được mã hóa. Thư mục ~/secretlà điểm gắn kết, nơi ~/.secretsẽ được gắn kết như một hệ thống tập tin ecryptfs.

[Bây giờ tạo cụm mật khẩu gắn kết thực tế (các tập lệnh dễ dàng sẽ chọn 32 ký tự giả ngẫu nhiên từ đó /dev/urandom), làm cho nó thành một cụm từ tốt]

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

Viết chữ ký đầu ra (ecryptfs_sig) từ lệnh trước vào ~ / .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • Một cụm mật khẩu thứ hai để mã hóa tên tệp có thể được sử dụng. Nếu bạn chọn như vậy, hãy thêm nó vào keyring:

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

    Nếu bạn chạy lệnh ở trên, hãy thêm chữ ký đầu ra của nó (ecryptfs_fnek_sig) vào ~ / .ecryptfs / secret.sig:

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

Cuối cùng, để gắn kết ~ / .secret trên ~ / secret:

$ mount.ecryptfs_private secret

Để ngắt kết nối ~ / .secret:

$ umount.ecryptfs_private secret

  • Hoặc bạn thực sự có thể tự làm bẩn tay mình và làm theo hướng dẫn Không có ecryptfs-utils .

  • Hoặc nếu bạn đã xem các kịch bản dễ dàngecryptsfs-setup-private & ecryptsfs-mount-private, bạn có thể sao chép chúng và chỉnh sửa chúng để trỏ đến các thư mục ưa thích của bạn, với một chút kỹ năng và sự kiên nhẫn.

  • Hoặc chỉ cần tự lưu trữ cụm mật khẩu (tốt nhất là an toàn) và làm như man ecryptfsví dụ của trang (phải đọc các trang hướng dẫn):

    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]".
    

Ngoài các thư mục nhà được mã hóa và một thư mục được mã hóa trong các thư mục eCryptfs lồng nhau

Và, một thư mục nhà được mã hóa thường lưu trữ các tệp trong /home/.ecryptfs/user/khi thư mục Riêng được mã hóa có các tệp trong thư mục nhà riêng của bạn. Bạn không thể sử dụng cả hai cùng một lúc, eCryptfs sẽ không thực hiện các thư mục được mã hóa lồng nhau. Nhưng có một ngôi nhà được mã hóa, và các thư mục được mã hóa bên ngoài nhà của bạn là ok.

  • Tôi vừa thử tạo một người dùng mới với một ngôi nhà được mã hóa sudo adduser --encrypt-home jack

    Nó tạo ra một /home/.ecryptfs/thư mục, với:

    • /home/.ecryptfs/jack/.ecryptfs/ - bọc các cụm mật khẩu và tập tin cấu hình để tự động đăng nhập nhà của jack
    • /home/.ecryptfs/jack/.Private/ - tập tin nhà được mã hóa thực tế, được gắn vào /home/jack/ khi đăng nhập.

      Và cũng là /home/jack/thư mục, nhưng nó chứa một liên kết vẫn ở đó dù đăng nhập hay không:

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

    • Tiếp theo tôi đăng nhập với tư cách là jack, nhưng liên kết vẫn ở đó, vì vậy cố gắng chạy ecryptfs-setup-privatekhiến nó nhìn vào /home/jack/.ecryptfs/nhưng thực sự thấy các tệp hiện có trong/home/.ecryptfs/jack/.ecryptfs nên không thể tạo tệp mật khẩu khác và thất bại vớiERROR: wrapped-passphrase file already exists, use --force to overwrite.

      Thử các bước "ALIAS" ở trên, sử dụng thư mục .secret bên trong nhà được mã hóa không thành công, với các lỗi sau:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      "Các thư mục được mã hóa lồng nhau bên trong các thư mục được mã hóa không được hỗ trợ với eCryptfs. Xin lỗi." - tác giả và bảo trì eCryptfs

    • Thay đổi thư mục ALIAS bên ngoài nhà của jack, thử /tmp/.secret//tmp/secret/ hoạt động . NHƯNG nếu jack đăng xuất, thư mục được mã hóa mới sẽ được gắn kết , vì vậy bạn phải ngắt kết nối nó ( umount.ecryptfs_private secret).


1
Cảm ơn đã trả lời đơn giản hóa. Một câu hỏi mặc dù: điều này có quan tâm đến vấn đề tự động gắn kết không? Xin lỗi vì quá dày đặc về vấn đề này, nhưng trang web bạn đã chỉ định và các trang hướng dẫn thực sự không dễ hiểu về việc thiết lập chế độ tự động gắn kết cho một tình huống không chuẩn. Vì tôi đã có một thư mục nhà được mã hóa, tôi đã có $ HOME / .ecryptfs / auto-mount và quấn-mật khẩu, nhưng cái đầu tiên trống và cái thứ hai đã có thứ gì đó trong đó. Tôi không hoàn toàn rõ ràng về cách thêm cụm mật khẩu mới và hướng dẫn nó tự động gắn thư mục.
dùng3004015

Được cập nhật với một thử nghiệm nhỏ, và anh chàng này ragingpenguin.com/2012/12/ xuất hiện một số may mắn sau hướng dẫn Wiki vòm về tự động gắn kết với PAM, nhưng anh ta khá kín tiếng về nó
Xen2050

Cảm ơn những nỗ lực của bạn. Tôi không quan tâm đến việc lồng các thư mục ecryptfs, nhưng tự động gắn một thư mục thứ hai ở vị trí thứ hai. Tôi sẽ cố gắng làm cho nó hoạt động khi tôi có một chút thời gian, nhưng nó chắc chắn không rõ ràng lắm ...
user3004015

Bạn có thể cắt nó thành một mountdòng, không cần .conftệp hoặc thêm khóa, chỉ cần đọc các man ecryptfstrang cho các tùy chọn có sẵn. Sau đó ném tập tin "chạy lúc đăng nhập" vào /home/user/.config/autostart/. Nhưng tính bảo mật của cụm mật khẩu có thể gặp rủi ro nếu được lưu trữ không đúng cách
Xen2050

Điều này là ecryptfs có một hệ thống gói mật khẩu mã hóa đẹp mắt bên trong một trình bao bọc được mở bằng mật khẩu đăng nhập. Điều này cung cấp bảo vệ bổ sung cho mật khẩu ecryptfs, sẽ rất tốt để có. Tôi không nghĩ việc đưa một cái gì đó vào .config / autostart sẽ cho phép điều này trừ khi tôi hiểu sai những gì tôi phải đưa vào tập lệnh.
dùng3004015

0

Nếu bạn muốn sử dụng nó như encfs, bạn có thể làm điều đó với mục sau trong /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 là từ tiếng Đức có nghĩa là bí mật, nhưng đảm bảo rằng đó không phải là một từ khóa. Bạn phải tạo các thư mục đầu tiên. Lần đầu tiên bạn nên bỏ ecryptfs_fnek_sig=1f7aefb9e239099fđi. Sau đó mount /tmp/geheimsẽ cho bạn thấy giá trị chính xác.

Bạn có thể lưu trữ mật khẩu ở nơi khác và đặt các tùy chọn tinh vi hơn. Bạn sẽ tìm thấy tất cả các tùy chọn trong man ecryptfs.


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

ví dụ:

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

sử dụng commANGE ở trên để tạo và gắn kết hệ thống được mã hóa trong đó các tệp được lưu trong RANDOMDIRECTORY được mã hóa và lưu vào EFILES.

ghi chú bổ sung. đảm bảo RANDOMDIRECTORY trống khi bạn bắt đầu. Khi bạn chạy lệnh ở trên và hệ thống được gắn kết và sẵn sàng hoạt động, mọi tệp bạn lưu trong RANDOMDIRECTORY sẽ được mã hóa vào EFILES nếu hệ thống được gắn kết. Để nhanh chóng / ngắt kết nối, bạn có thể tạo tập lệnh bash và chạy nó thông qua phím tắt ứng dụng hoặc tạo lệnh bí danh để gắn nhanh.

Tôi đã sử dụng điều này hơn một năm nay.

EDIT: về nhà để xác nhận, lệnh của bạn không phải là ecryptfs. encfs của nó tức là

encfs /destination/encrypted /destination/unencrypted

xin lỗi vì điều đó. Với điều này, bạn sẽ phải cài đặt một chương trình mới tho (có thể)


1
Tôi gõ lệnh ecryptfsvà nó trả lời lệnh không tìm thấy. man ecryptfsđưa ra trang man cho mount -t ecryptfs, nhưng không thực sự giải thích làm thế nào để tạo một hệ thống tập tin được mã hóa như vậy.
dùng3004015

Lưu ý rằng tôi đang sử dụng Ubuntu 14.04 LTS, vì vậy cài đặt của tôi tương đối gần đây. Là ecryptfslệnh bổ sung gần đây?
dùng3004015

encfs không giống như ecryptfs. Đây là hai khác nhau.
chéo
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.