Cho phép mã hóa đĩa sau khi cài đặt


61

Tôi đang chạy 13.10 Saucy. Nếu tôi không kích hoạt mã hóa đĩa trong khi cài đặt, có cách nào để kích hoạt nó trên thực tế không?

Tôi đã tìm thấy điều này , nói rằng mã hóa phải xảy ra khi cài đặt, nhưng nó cũng đề cập đến Fedora. Tôi có thể dễ dàng khởi động vào một đĩa trực tiếp nếu có bất kỳ cách nào để làm điều đó từ đó.


Mã hóa toàn bộ đĩa hoặc chỉ thư mục / nhà của bạn?
Joren

Đĩa đầy đủ. (Câu hỏi tiếp theo: những gì lên và xuống của toàn bộ đĩa so với chỉ / nhà? :))
Isaac Dontje Lindell

/ mã hóa đĩa nhà không bao gồm không gian trao đổi. Dữ liệu nhạy cảm có thể được ghi vào trao đổi không được mã hóa, nếu chỉ / nhà được mã hóa. Điều này có thể được phục hồi. Ubuntu có giải mã tự động / home trong quá trình đăng nhập. Mã hóa toàn bộ đĩa cần mật khẩu ở cả khởi động và đăng nhập. Thay đổi kích thước ổ đĩa được mã hóa là một quá trình khó khăn. Nếu bạn có ổ đĩa ngoài, rất dễ mã hóa sau khi cài đặt trong 13.10 Saucy Salamander: sao lưu dữ liệu của bạn, khởi chạy "đĩa" từ bảng điều khiển, chọn ổ đĩa ngoài, nhấp vào cog, chọn mã hóa, mở khóa ổ đĩa mới được mã hóa của bạn , sao chép lại dữ liệu.
dùng75798

Câu trả lời:


57

Nếu bạn muốn kích hoạt mã hóa thư mục nhà của mình, bạn sẽ cần cài đặt và sử dụng các gói này: ecryptfs-utilscryptsetup. Ngoài ra, bạn sẽ cần một tài khoản người dùng khác với đặc quyền của quản trị viên (sudo). Tài liệu đầy đủ có ở đây:

Nếu bạn muốn kích hoạt mã hóa toàn bộ đĩa sau khi cài đặt, câu trả lời ngắn gọn bây giờ có lẽ là: không, bạn không thể . Dù sao, nếu bạn quan tâm đến điều này, câu hỏi của bạn là trùng lặp:


8
Vui lòng bao gồm ít nhất các bước cơ bản của cách liên kết của bạn tại đây. Chỉ trong trường hợp liên kết của bạn ngoại tuyến, thay đổi hoặc không thể truy cập tạm thời.
con-f-sử dụng

1
@ con-f-use Nếu bạn đọc kỹ (không nhầm lẫn), các bước rất cơ bản được bao gồm trong câu trả lời.
Radu Rădeanu

1
Điều gì xảy ra nếu bạn có một chia sẻ samba trong thư mục nhà của bạn được mã hóa? Người dùng mạng có thể không đọc các tệp nữa hay họ được giải mã qua chia sẻ?
Rush Frisby

21

Câu hỏi tiếp theo: những gì lên và xuống của đĩa đầy đủ so với chỉ / nhà?

Mã hóa trong / home được thực hiện bằng hệ thống tệp không gian người dùng được gọi là ecryptfs. Nó được thực hiện rất tốt và được đan chặt vào hệ thống xác thực mặc định để bạn sẽ không có nhược điểm về khả năng sử dụng: khi bạn nhập tài khoản của mình (từ vỏ từ xa hoặc từ màn hình đăng nhập mặc định) mật khẩu của bạn được sử dụng để mở khóa an toàn , sau đó được sử dụng để mã hóa / giải mã các tệp của bạn trong thư mục chính của bạn một cách nhanh chóng (Hệ thống tệp được gắn kết sẽ nằm trực tiếp trong / home / tên người dùng). Khi bạn đăng xuất / home / tên người dùng không được đếm và chỉ các tệp được mã hóa vẫn hiển thị trong hệ thống (thường là trong /home/.ecryptfs/username/.Private/). Chúng trông giống như một loạt các tập tin ngẫu nhiên / ngẫu nhiên vì tên tệp cũng được mã hóa. Rò rỉ thông tin duy nhất là: kích thước tệp, dấu thời gian và số lượng tệp (với mã hóa toàn bộ đĩa cũng bị ẩn).

Nếu hệ thống của bạn được chia sẻ giữa nhiều người dùng, đây là một tính năng rất hay ngay cả khi bạn quyết định thêm mã hóa toàn bộ đĩa cùng với điều này: sự an toàn của mã hóa toàn bộ đĩa bị tắt khi máy hoạt động và chạy trong khi ở nhà ( mã hóa ecryptfs) được bật miễn là bạn đăng xuất.

Vì vậy, mã hóa toàn bộ đĩa và mã hóa gia đình không nhất thiết phải loại trừ lẫn nhau.

Đây là danh sách các thiết lập có thể, tùy thuộc vào các nhu cầu bảo mật khác nhau:

  • ĐẦY ĐỦ Disk Encryption CHỈ: Nếu bạn là người duy nhất sử dụng máy tính của bạn và máy tính của bạn có thể xử lý những phí của mã hóa đĩa đầy đủ (tất cả các máy tính để bàn hiện đại có thể làm điều đó mà không có sự Nhận ra người dùng, netbook và máy tính xách tay cũ không quá nhiều), bạn có thể sử dụng đầy đủ mã hóa ổ đĩa và đặt nhà trong cùng phân vùng với HĐH (/) của bạn.
  • ENCRYPTION FULL DISK ENCRYPTION HOME : Nếu bạn lo lắng về việc dữ liệu riêng tư của bạn được đọc trong khi máy tính của bạn được bật hoặc bạn chia sẻ máy tính của mình với những người dùng khác, thì bạn có thể về nhà trong một phân vùng khác từ / và sử dụng ecryptfs dọc theo toàn bộ đĩa mã hóa (đó là mã hóa / thông qua LUKS)
  • CHỈ CÓ MÔI TRƯỜNG ECRYPTFS : Nếu bạn không quá lo lắng về việc ai đó làm xáo trộn hệ thống của bạn khi bạn đi vắng nhưng bạn vẫn muốn giữ an toàn cho dữ liệu riêng tư của mình thì hãy bỏ qua mã hóa toàn bộ đĩa và chỉ sử dụng mã hóa điện tử (mã hóa tại nhà). Một phần thưởng bổ sung của kịch bản này là điều này khá dễ thiết lập ngay cả sau đóbạn đã cài đặt Ubuntu, chỉ bằng cách sử dụng ecryptfs-Migrate-home. Ngoài ra, đây là thiết lập Ubuntu mặc định trước khi nó thay đổi một vài bản phát hành trở lại, thêm khả năng mã hóa toàn bộ đĩa. Vì hầu hết các máy tính để bàn hiện đại có thể xử lý mã hóa toàn bộ đĩa mà không bị đổ mồ hôi và nó thêm một lớp bảo mật mỏng chống lại việc tiêm mã ngoại tuyến, mã hóa toàn bộ đĩa đã được thêm vào trình cài đặt. Mặc dù vậy, lưu ý rằng đối với hầu hết người dùng chỉ cần mã hóa nhà của họ bằng ecryptfs là đủ cho nhu cầu của họ: giữ cho bạn bè và máy tính xách tay thông thường đánh cắp dữ liệu riêng tư của họ. Ngoài ra, nếu bạn được một tổ chức nhắm mục tiêu riêng lẻ với phương tiện phù hợp, việc mã hóa toàn bộ đĩa hoặc mã hóa tại nhà sẽ không tạo ra nhiều khác biệt trừ khi bạn cũng thiết lập nhiều hành vi hoang tưởng khác (như: giữ hạt nhân trong một ổ bút riêng luôn ở bên bạn; liên tục kiểm tra giả mạo phần cứng / keylogger và vv)

Nếu tôi không kích hoạt mã hóa đĩa trong khi cài đặt, có cách nào để kích hoạt nó trên thực tế không?

Có và sẽ dễ dàng hơn nếu bạn hiện đang sử dụng LVM và có đủ dung lượng trên hệ thống của bạn để sao chép tất cả các tệp hệ thống không được mã hóa của bạn vào phân vùng LUKS được mã hóa. Hiện tại tôi không đi sâu vào chi tiết vì tôi không biết liệu bạn có đang sử dụng LVM hay không và bây giờ bạn không chỉ sử dụng ecrypfs và bỏ qua rắc rối về mã hóa toàn bộ đĩa cho đến lần cài đặt mới tiếp theo.


3

Vâng, bạn có thể tạo một bản sao lưu của tất cả các thư mục quan trọng và phần mềm được cài đặt. Đảm bảo 13.10 của bạn được cập nhật đầy đủ để tránh xung đột phiên bản. Thông thường những thứ cần sao lưu sẽ là:

Sau đó, bạn cài đặt lại hệ thống chỉ được mã hóa. Cập nhật nó để mở rộng đầy đủ. Sau đó di chuyển bản sao lưu sang hệ thống được mã hóa và cài đặt tất cả phần mềm từ phiên bản trước.

Chỉ cần chắc chắn không ghi đè lên tập tin quan trọng để mã hóa, khi đưa trở lại phía sau lên (ví dụ /etc/fstab, /etc/cryptab, một số nội dung liên quan grub và một số nội dung trong /bootnên không được thay thế bằng các tập tin sao lưu).


1

Từ một Ubuntu 16.04 hoạt động, tôi đã thành công trong việc mã hóa phân vùng gốc sau khi cài đặt, với phân vùng gốc chứa mọi thứ ngoại trừ / boot. Tôi đặt / khởi động trên một USB có thể tháo rời riêng biệt. Đáng chú ý là tôi đã làm điều này trước khi nâng cấp lên Ubuntu 18 và bản nâng cấp hoạt động tốt trên phiên bản đĩa được mã hóa.

Việc mã hóa không được thực hiện "tại chỗ", điều này rất tốt với tôi vì dù sao tôi cũng không muốn ghi đè lên phiên bản làm việc cho đến khi thiết lập mới hoạt động.

Thực hiện đúng quy trình cực kỳ đơn giản và nhanh chóng. (Mặc dù việc tìm ra quy trình đúng rất tốn thời gian vì tôi đã làm theo một số khách hàng tiềm năng sai.)

ĐỀ CƯƠNG

  1. Tạo một đĩa USB linux trực tiếp - thật tiện lợi khi kích hoạt tính bền bỉ. Khởi động trên đĩa USB trực tiếp đó.
  2. Tạo một nhóm khối lượng mã hóa luks trên một phân vùng trống. (Trong trường hợp của tôi, nó nằm trên cùng một đĩa với linux gốc, nhưng nó có thể là một đĩa khác.) Tạo / (root) và trao đổi khối lượng logic trên phân vùng được mã hóa đó. Chúng sẽ hoạt động như các phân vùng ảo khi có liên quan đến linux đã sao chép.
  3. Sao chép các tập tin từ root cũ sang root mới.
  4. Thiết lập và phân vùng một USB khác để hoạt động như một đĩa khởi động rời.
  5. Thiết lập một số tệp trong thư mục gốc mới, thực hiện một số phép thuật và chroot vào thư mục gốc mới và sau đó cài đặt grub vào đĩa khởi động từ môi trường gốc mới của chroot'd.

CHI TIẾT

1 - Khởi động với đĩa USB linux trực tiếp - thật tiện lợi khi bật tính năng bền bỉ.

Đã cài đặt Ubuntu 16 trên usb với unetbootin. GUI cho phép "kiên trì" được chỉ định, nhưng một bước khác cũng được yêu cầu để duy trì hoạt động bền bỉ - sửa đổi /boot/grub/grub.cfgđể thêm --- persistentnhư sau:

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- persistent
    initrd  /casper/initrd
}

Khởi động bằng USB trực tiếp

2- Tạo một nhóm âm lượng được mã hóa luks trên một phân vùng trống. Tạo / (root) và trao đổi khối lượng logic trên phân vùng được mã hóa đó.

Giả sử phân vùng không sử dụng được mã hóa là /dev/nvme0n1p4.

Tùy chọn , nếu bạn có dữ liệu cũ trên phân vùng bạn muốn ẩn trước khi mã hóa và định dạng, bạn có thể xóa ngẫu nhiên phân vùng. Xem thảo luận tại đây .

dd if=/dev/urandom of=/dev/nvme0n1p4 bs=4096 status=progress

Thiết lập mã hóa.

cryptsetup -y -v luksFormat /dev/nvme0n1p4

Bạn sẽ được yêu cầu đặt mật khẩu.

cryptsetup luksOpen /dev/nvme0n1p4 crypt1

Bạn sẽ được yêu cầu nhập mật khẩu. Lưu ý rằng đó crypt1là một tên người dùng tùy ý quyết định. Bây giờ tạo khối lượng và định dạng.

pvcreate /dev/mapper/crypt1
vgcreate crypt1-vg /dev/mapper/crypt1

lvcreate -L 8G crypt1-vg -n swap
mkswap /dev/crypt1-vg/swap

lvcreate -l 100%FREE crypt1-vg -n root
mkfs.ext4 /dev/crypt1-vg/root

Sử dụng các tiện ích này để xem khối lượng và hiểu thứ bậc.

pvscan
vgscan
lvscan
ls -l /dev/mapper
ls -l /dev/crypt1

3- Sao chép tập tin từ root cũ sang root mới

mkdir /tmp/old-root 
mount /dev/ubuntu-vg/root /tmp/old-root/
mkdir /tmp/new-root
mount /dev/crypt1-vg/root /tmp/new-root/
cp -a /tmp/old-root/. /tmp/new-root/

umount /tmp/old-root
umount /tmp/new-root

cp -a ... bản sao trong chế độ lưu trữ, bảo quản tất cả các chế độ tập tin và cờ.

4 - Thiết lập và phân vùng một USB khác để hoạt động như một đĩa khởi động rời.

Tôi đã sử dụng gparted cho việc này. Thiết lập hai phân vùng. Phân vùng đầu tiên là vfat, thứ hai ext2. Mỗi cái là 512 MB, bạn có thể lấy đi với ít hơn. Giả sử thiết bị /dev/sdf.

# The first partition: (will be /dev/sdf1)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: fat32
Label: (leave)

# The second partition: (will be /dev/sdf2)
Free space preceding (leave default value)
New size 512 MiB
Free space following (leave default value)
Create as: Primary Partition
Partition Name: (leave)
File System: ext4
Label: (leave) 

5- Thiết lập một số tệp trong thư mục gốc mới, thực hiện một số phép thuật và chroot vào thư mục gốc mới và sau đó cài đặt grub vào đĩa khởi động từ môi trường gốc mới của chroot'd.

Tìm một số UUID để sử dụng sau. Lưu ý các đầu ra từ các lệnh sau:

blkid /dev/sdf1
blkid /dev/sdf2
blkid /dev/nvme0n1p4

Gắn kết phân vùng gốc và phân vùng khởi động

sudo mount /dev/mapper/crypt1--vg-root /mnt
sudo mount /dev/sdf2 /mnt/boot
sudo mount /dev/sdf1 /mnt/boot/efi

Cài đặt tập tin /mnt/etc/fstab

/dev/mapper/crypt1--vg-root /               ext4    errors=remount-ro 0       1
/dev/mapper/crypt1--vg-swap none    swap    sw              0       0
UUID=[uuid of /dev/sdf2] /boot           ext2    defaults        0       2
UUID=[uuid of /dev/sdf1]  /boot/efi       vfat    umask=0077      0       1

trong đó "[uuid of ...]" chỉ là kết hợp chữ-số-gạch nối.

Tạo tập tin /mnt/etc/cryptab

# <target name> <source device>     <key file>  <options>
crypt1 UUID=[uuid of /dev/nvme0n1p4] none luks,discard,lvm=crypt1--vg-root

Một số phép thuật cần thiết để vào môi trường thư mục gốc:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
chroot /mnt

Bây giờ hãy thiết lập đĩa USB khởi động với grub:

apt install --reinstall grub-efi-amd64
grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable
update-initramfs -k all -c
update-grub

Bây giờ bạn sẽ có thể khởi động lại và khởi động bằng đĩa khởi động USB mới được tạo.

Xử lý sự cố-

(a) Mạng phải được kết nối cho apt install --reinstall grub-efi-amd64lệnh. Nếu mạng được kết nối nhưng DNS bị lỗi, hãy thử

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

(b) Trước khi gọi initramfs, vmlinuz...tệp hiện tại được sử dụng trong linux gốc phải có trong thư mục gốc mới. Nếu không, hãy tìm nó và đặt nó ở đó.

(c) Các grub-installlệnh sẽ bằng cách tìm kiếm mặc định tất cả các đĩa linux khác, nó có thể tìm thấy ngay cả khi họ không mounted, và đặt chúng trong menu boot trên USB boot mới. Thông thường điều này là không mong muốn, vì vậy có thể tránh được bằng cách thêm dòng này vào /boot/default/grub.cfg:

GRUB_DISABLE_OS_PROBER=true

GHI CHÚ: Có thể thêm tệp văn bản có khóa mã hóa vào USB khởi động rời.


0

Câu trả lời đơn giản: Không.

Câu trả lời phức tạp:

Mã hóa đĩa hoặc phân vùng sẽ xóa mọi thứ hiện tại trên đĩa hoặc phân vùng đó, vì vậy để mã hóa đĩa bạn cũng nên xóa nội dung của đĩa. Bạn nên sao lưu dữ liệu phù hợp trước khi bắt đầu. Rõ ràng, điều này có nghĩa là bạn nên cài đặt lại hệ thống để sử dụng mã hóa toàn bộ đĩa, không còn cách nào khác. Điều này là do dữ liệu ngẫu nhiên sẽ được ghi trên toàn bộ đĩa để gây khó khăn hơn cho việc khôi phục dữ liệu.

Nhưng, ngày nay bạn không cần mã hóa phân vùng gốc của mình. Hãy nhớ rằng nếu một cái gì đó đi dây bạn ra khỏi hệ thống của bạn mà không có khả năng khôi phục dữ liệu. Bạn chỉ nên xem xét mã hóa thông tin cá nhân của bạn.

Xem câu hỏi liên quan Làm thế nào để mã hóa toàn bộ đĩa sau khi cài đặt?


"Ra khỏi hệ thống của bạn mà không có khả năng khôi phục dữ liệu" <--- Điều đó không chính xác. Miễn là một người có khóa mã hóa, dữ liệu có thể được phục hồi bằng Live Medium.
con-f-use

@ con-f-use tính đến việc có một điều kiện "nếu có gì đó xảy ra" có nghĩa là nếu một cái gì đó cực kỳ xấu xảy ra với ổ đĩa / phân vùng mà nó được mã hóa.
Braiam

Vâng, nếu bạn là người khó tính, người ta cũng nên duy trì một bản sao lưu gần đây của tiêu đề LUKS trên đĩa được mã hóa. Nhưng tôi bao gồm nó trong "khóa mã hóa". Ngoài ra, không có hại trong mã hóa toàn bộ từ quan điểm phục hồi dữ liệu. Tuy nhiên, thực tế là bạn có thể biết phiên bản Ubuntu nào ở đó, chương trình nào được cài đặt và vv cung cấp một vectơ tấn công có thể trên các đĩa không được mã hóa hoàn toàn. Ngoài ra SSD thường làm. Vì vậy, đối với sự hoang tưởng vẫn không có cách nào xung quanh mã hóa toàn bộ đĩa.
con-f-use

"Nhưng, ngày nay bạn không cần mã hóa phân vùng gốc của mình." Hãy nói cho chính mình, tôi hoàn toàn không đồng ý. "Mã hóa đĩa hoặc phân vùng sẽ xóa mọi thứ hiện tại trên đĩa hoặc phân vùng đó, vì vậy để mã hóa đĩa, bạn cũng nên xóa nội dung của đĩa." Một lần nữa, không đồng ý. Truecrypt là một ví dụ rất hay về việc thực hiện FDE trên Windows với các đĩa hiện có. Trong thực tế, đó là phương pháp cài đặt thực tế - không được mã hóa và sau khi thực hiện, hãy mã hóa nó. Nó không thay đổi câu trả lời ở chỗ không có khả năng atm trên Ubuntu, nhưng các tuyên bố của bạn rất phân loại và không chính xác.
Cookie

@Cookie tại sao bạn sẽ mã hóa một phân vùng có những thứ bạn có thể cài đặt sau này? . Windows cập nhật và nếu bạn không thể tìm thấy một hệ thống mã hóa Linux có thể mã hóa phân vùng sau khi cài đặt, thì tuyên bố của tôi là chính xác ngay từ bây giờ, điều đó là không thể.
Braiam
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.