Ổ đĩa được mã hóa tự động an toàn khi đăng nhập người dùng


18

Một thư mục được mã hóa / nhà được tự động gắn cho tôi khi tôi đăng nhập. Tôi có một ổ cứng nội bộ thứ hai mà tôi đã định dạng và mã hóa bằng Disk Utility. Tôi muốn nó được tự động gắn kết khi tôi đăng nhập, giống như thư mục nhà được mã hóa / nhà của tôi. Làm thế nào để tôi làm điều này?

Có một số câu hỏi rất giống nhau ở đây, nhưng câu trả lời không áp dụng cho tình huống của tôi. Có thể tốt nhất là đóng / hợp nhất câu hỏi của tôi ở đây và chỉnh sửa câu hỏi thứ hai bên dưới, nhưng tôi nghĩ rằng nó có thể đã bị bỏ qua (và do đó không bao giờ được đánh dấu là chấp nhận).

Giải pháp này không phải là một phương pháp an toàn, nó phá vỡ mã hóa.
Cái này yêu cầu chỉnh sửa fstab, đòi hỏi phải nhập mật khẩu bổ sung khi khởi động. Nó không tự động như lắp / nhà.
Câu hỏi này rất giống nhau, nhưng không áp dụng cho một ổ đĩa được mã hóa. Giải pháp sẽ không hoạt động cho nhu cầu của tôi.
Đây là một nhưng nó là cho các ổ đĩa NTFS, của tôi là ext4.

Tôi có thể định dạng lại và mã hóa lại ổ đĩa thứ hai nếu một giải pháp yêu cầu điều này. Tôi đã có tất cả các dữ liệu sao lưu ở nơi khác.


Bạn sử dụng FS nào để mã hóa? LUKS hay ecrytpfs?
cúc

@AaronLewis Tôi chỉ sử dụng Tiện ích đĩa của Ubuntu để định dạng ổ đĩa, sau đó chọn hộp 'mã hóa ổ đĩa này'. Nếu tôi phải đoán tôi sẽ đi với ecryptfs, vì đây là cách / home được mã hóa theo mặc định. Vì nó rất dễ làm nên tôi chưa bao giờ nhìn vào nó.
Tom Brossman

Câu trả lời:


5

Bạn không còn cần các giải pháp trên.

Điều kiện tiên quyết:

  • cài đặt Ubuntu 14.04 LTS
  • một thư mục nhà được mã hóa (xem https://help.ubfox.com/community/EncryptedHome )
  • mong muốn tự động gắn ổ đĩa được mã hóa thứ cấp [chỉnh sửa] khi bạn đăng nhập.

Lưu ý: phương pháp này kém an toàn hơn so với việc gắn ổ đĩa được mã hóa thủ công. Nếu ai đó có quyền truy cập vật lý vào máy tính của bạn, bạn bất cẩn với mật khẩu gốc hoặc máy tính của bạn có nhiều tài khoản người dùng / khách, phương pháp này không an toàn ; ổ đĩa thứ cấp vẫn được gắn kết khi bạn đăng xuất nhưng không tắt hệ thống, vì vậy nội dung của nó sẽ hiển thị cho những người dùng khác.

Phần 1: Mã hóa ổ đĩa thứ cấp.

  1. Trong Unity dash gõ "đĩa" và nhấn enter.
  2. Bên dưới "Thiết bị" bấm vào ổ cứng bạn muốn mã hóa.
  3. Bên dưới "Tập" bấm vào nút cog / thêm hành động.
  4. Nhấp vào "Định dạng âm lượng". Đối với loại, chọn "Được mã hóa, tương thích với các hệ thống Linux." Đặt tên cho ổ đĩa của bạn và cung cấp cho nó một cụm từ vượt qua mạnh mẽ.
  5. Nhấp vào "Định dạng"

Phần 2: Tự động gắn ổ cứng khi khởi động hệ thống.

  1. Giữ ứng dụng "Đĩa" mở và nhấp vào răng cưa.
  2. Nhấp vào "Chỉnh sửa tùy chọn mã hóa."
  3. "Tùy chọn mã hóa tự động" sẽ được bật và menu bên dưới chuyển sang màu xám. Tắt tùy chọn mã hóa tự động.
  4. Nhập cụm từ từ khi bạn định dạng đĩa. Nhấp vào "Ok".

Bây giờ bạn có một ổ cứng được mã hóa sẽ tự động gắn kết khi máy tính của bạn khởi động.


1
Mặc dù tôi chắc chắn rằng ai đó sẽ sử dụng cho việc này, nhưng đó không phải là câu trả lời cho câu hỏi như được đặt ra, điều này xác định rằng việc gắn kết phụ sẽ xảy ra khi đăng nhập người dùng, trái ngược với khởi động hệ thống. Điều này khiến cho tuyên bố ban đầu rằng "Bạn không còn cần các giải pháp ở trên" không phù hợp và tôi mời tác giả sắp xếp lại câu trả lời cho phù hợp.
mc0e

2
Tôi nghĩ bạn sai ở đây. Đó là, việc gắn kết thứ cấp xảy ra khi đăng nhập người dùng (chỉ trên tài khoản mà thao tác tôi đã đề cập đã được thực hiện) và không phải là một giây trước khi thực hiện. Khi vợ tôi đăng nhập vào tài khoản Ubuntu của cô ấy trên cùng một máy tính, ổ đĩa không được gắn. Nếu cô ấy cố gắn nó, nó sẽ yêu cầu khóa mã hóa. Tôi duy trì, bạn không cần câu trả lời ở trên.
thử

1
Đồng ý, đây là cách đơn giản nhất vì tôi là người dùng duy nhất trên máy. Nó sẽ không hoạt động cho tất cả mọi người nhưng nếu bạn có cài đặt Ubuntu và bạn là người dùng chính / quản trị viên, đây là cách để đi. Thực sự cần phải có một hộp kiểm "Làm cho công việc này chính xác như mã hóa / nhà" ở đâu đó bây giờ, đó là một trường hợp sử dụng đơn giản.
Tom Brossman

@tryion Phân vùng LUKS được mở khóa khi khởi động hệ thống, nhưng không được gắn kết. Vì vậy, ngay sau khi máy tính được bật, nó có thể truy cập như một phân vùng không được mã hóa. Mật khẩu được lưu trữ trong Cleartext trong /etc/crypttab. Không có mật khẩu người dùng là cần thiết để truy cập vào các phần. Vì vậy, cài đặt này tương đương với việc không có mã hóa nào cả, và không phải là câu trả lời cho câu hỏi.
Victor

Có các tùy chọn để lưu trữ nó ở nơi khác bằng libsecret để giải mã cho một người dùng cụ thể không và có hướng dẫn cụ thể nào cho việc này đối với người dùng không sử dụng GUI / không đầu.
MrMesees

10

Khi tôi viết câu trả lời này vài năm trước đây là cách tốt nhất để thực hiện giải pháp. Bây giờ tôi muốn đề nghị bạn xem câu trả lời tiếp theo bằng cách sử dụng mount.ecryptfs_private.

Tôi cũng đang tìm cách để tự động gắn kết một khối lượng eCryptfs thứ hai. Bộ sưu tập tập lệnh và sửa đổi cấu hình sau đây sẽ bảo mật và tự động gắn kết âm lượng của bạn khi đăng nhập, vào GUI hoặc CLI.

Có một giải pháp tốt hơn đó là trong quá trình được tạo (mặc dù tôi nghĩ chưa hoàn toàn sẵn sàng để tự động cài đặt khi đăng nhập người dùng, vì vậy tập lệnh này sẽ có thời hạn sử dụng hạn chế.):

ecryptfs trên ổ cứng quá nhỏ - làm thế nào để thêm liên kết vào mã hóa?

Tính bảo mật của các tập lệnh phụ thuộc vào thư mục chính của bạn được mã hóa bằng eCryptfs để tập lệnh và tệp có mật khẩu mở khóa cụm mật khẩu của bạn được mã hóa. Nếu bạn để máy tính của mình được mở khóa với một vỏ gốc mở sau khi đăng nhập, bạn có thể truy cập mật khẩu, tuy nhiên việc sử dụng sudo NOPASSWD cho phép gắn phân vùng an toàn mà không cần nhập mật khẩu hoặc để lại mật khẩu trong tệp mà người dùng có thể đọc được.

Một thiếu sót được biết đến của các tập lệnh này là tập thứ hai của bạn sẽ không bị bỏ qua khi đăng xuất, vì vậy nó không đặc biệt phù hợp với nhiều hệ thống người dùng.

Giải pháp của tôi được triển khai với một số phần, hai tập lệnh shell, một tập lệnh thực hiện việc gắn thực tế và phần khác đóng vai trò là trình bao bọc cho nó.

Đây là tập lệnh bao bọc xác nhận nếu thư mục đã được gắn kết, nếu không thì nó sẽ gọi tập lệnh gắn kết bằng sudo:

/ home / johnf / scripts / 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

Tập lệnh này gọi / home / johnf / scripts / mount_other_ecryptfs như sau.

Lưu ý rằng tập lệnh này giả định rằng bạn đã bật mã hóa tên tệp, nếu bạn không cần phải sửa đổi tập lệnh để xử lý phát hiện (hãy xem ecryptfs-recovery-private) hoặc bạn có thể xóa tùy chọn gắn kết ecryptfs_fnek_sig.

Sau đây là tập lệnh / 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}

Bạn cũng sẽ cần tạo một tệp có mật khẩu của mình trong đó, tệp này sẽ được sử dụng bởi lệnh mount eCryptfs:

/ home / johnf / scripts / ecryptfs_passphrase:

passwd=secret_passphrase

Bạn cần sửa đổi các quyền trên một số tệp:

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

Trước khi tạo tập lệnh, bạn cần tạo cấu hình sudoers để cho phép thực thi tập lệnh gắn bằng sudo mà không cần nhập mật khẩu sudo của bạn.

Thêm phần sau vào / etc / sudoers (hoặc một tệp trong /etc/sudoers.d). Bạn sẽ muốn thay thế johnf bằng tên người dùng của bạn. Cần sử dụng đường dẫn tuyệt đối đến tập lệnh gắn.

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

Bước cuối cùng là gọi tập lệnh automount_ecryptfs khi đăng nhập.

Trên Ubuntu Unity (và có thể là gnome) sử dụng applet Ứng dụng khởi động để tạo chương trình khởi động mới gọi / home / johnf / scripts / automount_ecryptfs.

Để tự động gắn khối lượng eCryptfs thứ hai khi đăng nhập vào bash shell, bạn sẽ muốn sửa đổi tệp ~ / .bashrc của mình. Thêm những điều sau:

/home/johnf/scripts/automount_ecryptfs

Với cấu hình này, bạn sẽ tự động gắn kết khối lượng eCryptfs thứ hai của mình.


Wow, câu trả lời tuyệt vời! Nâng cao và chấp nhận. Không thể kiểm tra nó nhưng điều này có vẻ rất đầy đủ.
Tom Brossman

Tác giả của mount.ecryptfs_privatebây giờ khuyên bạn nên sử dụng ecryptfs-mount-private, cũng là một kịch bản bao bọc cho mount.ecryptfs_private. thesimplecomputer.info/ Từ có thể đáng để đọc vì giá trị tương đối của ecryptfs và LUKS.
mc0e

9

Dựa trên câu trả lời của @ johnf nhưng sử dụng mount.ecryptfs_private thay vào đó:

  • được mã hóa /home/bob/(ví dụ: trên SSD), sử dụng ma thuật thư mục nhà được mã hóa thông thường của Ubuntu.
  • được mã hóa /media/hdd/bob_extra/(ví dụ: trên ổ cứng), được gắn vào /home/bob/extra. Điều này sẽ tự động khi đăng nhập, giống như thư mục nhà.
  • sử dụng cùng khóa / thông tin đăng nhập cho cả hai.

tạo ra nó

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

kiểm tra nó

mount.ecryptfs_private extra

đang chạy mount, bạn sẽ thấy:

...
/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)

để ngắt kết nối:

sudo umount /media/hdd/bob_extra

thiết lập automount

Tạo /home/bob/bin/automount_ecryptfs.extra, sẽ gắn kết nó nếu nó chưa được gắn kết.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

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

Làm cho nó thực thi ( chmod +x), sau đó thêm nó vào /home/bob/.bashrc:

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

Sau đó, thêm nó vào Ứng dụng khởi động của Gnome.


+1 Cảm ơn câu trả lời. Bây giờ tôi có một thiết lập phức tạp hơn nhiều với nhiều ổ SSD và liên kết tượng trưng cho một ổ đĩa chung, vì vậy tôi sẽ không thể kiểm tra điều này. Tôi hy vọng việc mã hóa nhiều ổ cứng sẽ đơn giản như mã hóa / nhà vào một ngày nào đó.
Tom Brossman

Xem thêm ecryptfs-mount-privateđó là tương tự đặc trưng hơn. Ví dụ, nó có thể tự động sử dụng một khóa từ khóa của người dùng.
mc0e

Câu trả lời này là về việc gắn một thư mục riêng eCryptfs. Câu hỏi là về việc gắn phân vùng LUKS được tạo bằng tiện ích Disks .
Victor

1

Tạo một tập lệnh trong thư mục nhà được mã hóa của bạn ~/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

Thêm vào "Ứng dụng khởi động":

sh ~/scripts/mount_storage.sh

Thêm vào /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

Bạn cần phải tạo /storageđiểm gắn kết và thay đổi UUID trong tập lệnh trên (tìm nó với blkid).


Có cách nào dễ dàng để có được một tập lệnh như thế này để chạy bất cứ khi nào cắm USB không?
ngày

Tôi đã không thử điều này bản thân mình vì vậy không thể nói chắc chắn nhưng tôi không hiểu tại sao không. Bạn sẽ cần tạo quy tắc udev nhắm vào một thiết bị USB cụ thể và chạy tập lệnh trên. Bài viết này có thể là một điểm khởi đầu, ví dụ.
Raul Laasner ngày

0

Tôi sợ rằng đây sẽ không phải là một câu trả lời phổ biến ...

Sẽ không thể tự động gắn kết bất kỳ phân vùng được mã hóa nào mà không phá vỡ tính bảo mật của chính mã hóa.

Hãy suy nghĩ về " tự động " nghĩa là gì và hiểu điều đó tự động có nghĩa là họ cũng sẽ thấy dữ liệu của bạn.


Tôi đã sử dụng 'An toàn' một cách chủ quan, tôi có thể xóa nó khỏi câu hỏi. Tôi chỉ muốn ổ đĩa được mã hóa chứa đầy ảnh khi tôi đăng nhập, giống như / nhà là vậy. Tôi biết rằng về mặt lý thuyết là có thể, vì tôi có ổ đĩa thứ ba (cũng được mã hóa) làm đích đến cho Déjà Dup. Ổ đĩa đó chỉ được gắn khi tiện ích sao lưu kích hoạt. Hoàn toàn tự động, tôi có khóa được lưu nên tôi không nhập nó mỗi lần. Tôi cảm thấy thoải mái với tất cả các khóa của mình được xử lý tự động sau khi tôi nhập mật khẩu của mình vào màn hình đăng nhập. Bất kỳ ý tưởng làm thế nào để thực hiện điều này xảy ra? Cảm ơn.
Tom Brossman

3
Tự động trong ngữ cảnh này có nghĩa là nó sẽ được gắn sau khi bạn nhập mật khẩu đăng nhập. Mật khẩu đăng nhập của bạn có thể là khóa, hoặc thường xuyên là khóa của khóa, cho phân vùng được mã hóa của bạn. Điều này là an toàn hợp lý (cung cấp một mật khẩu đăng nhập tốt).
Javier Rivera

Nó sẽ không được tự động gắn vào một máy tính khác, đó là lý do tại sao hầu hết chúng ta mã hóa một số đĩa. Trong trường hợp của tôi, nó là một đĩa tôi sử dụng để tạo bản sao lưu. Tôi làm việc trong một không gian chung và biết rằng một trong số các bạn có nhiều kiến ​​thức sẽ có thể phá vỡ mọi thứ tôi làm với quyền truy cập vật lý vào đĩa / máy tính của tôi: Tôi chỉ muốn giảm khả năng truy cập vào các tệp của mình để bất kỳ ai khác có thể không làm điều đó
Ramon Suarez

Bằng cách biến nó thành một quy trình tự động, liệu ai đó có thể đánh cắp máy tính của bạn, có thể truy cập vào khóa HD được mã hóa thêm của bạn không ?? (và sau đó tất nhiên là gắn kết và truy cập HD này)
Miguelfg

Kịch bản dễ dàng, rõ ràng: Tôi cắm ổ USB vào máy chủ trong văn phòng để sao lưu dữ liệu. Tôi mang ổ USB về nhà để đảm bảo sao lưu ngoài trang web trong trường hợp có gì đó không hay xảy ra với máy chủ. Ai đó đột nhập vào xe của tôi và lấy đĩa USB khi tôi đang ở cửa hàng trên đường về nhà. Bây giờ họ phải 1) biết máy chủ thậm chí đang ở đâu và 2) đột nhập vào văn phòng để giải mã đĩa. Phần đó khó hơn nhiều so với "chỉ cắm nó vào máy tính của họ ở nhà".
Ernie

0

Tiến hành như sau nên được an toàn. Yêu cầu cụm mật khẩu ngăn người dùng khác truy cập vào âm lượng, ngay cả khi nó được gắn.

1.Mở đĩa, chọn ổ đĩa và bấm vào âm lượng LUKS. Nhấp vào cogwheels và bỏ chọn "Mặc định phiên người dùng". Chọn "Mở khóa khi khởi động hệ thống" và "Yêu cầu ủy quyền bổ sung để mở khóa": nhập mô tả hình ảnh ở đây

2. Nhấp vào ổ đĩa (bên dưới ổ LUKS). Nhấp vào cogwheels và bỏ chọn "Mặc định phiên người dùng". Chọn "Gắn kết khi khởi động hệ thống" và "Hiển thị trong giao diện người dùng": nhập mô tả hình ảnh ở đây

Bạn cũng có thể chọn yêu cầu xác thực bổ sung để gắn âm lượng, nhưng trong trường hợp đó, việc gắn sẽ không tự động đối với người dùng được đề cập.

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.