Ổ cứng được mã hóa Mount LUKS khi khởi động


24

Tôi có Xubfox 14.04 trên thiết bị SSD ( HOME được mã hóa chính xác trong khi đặt), ngoài ra tôi có một ổ cứng có phân vùng được mã hóa với dữ liệu bổ sung mà tôi muốn gắn vào / mnt / hdd . Để thực hiện những điều này tôi đã làm theo các bước tiếp theo:

(Trước đây tôi đã mã hóa đĩa bằng LUKS sau bài đăng này http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubfox-1010/ )

Kiểm tra UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

Tạo một keyfile với cụm mật khẩu phù hợp và lưu nó trong HOME của tôi (cũng được mã hóa).

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

Thêm chìa khóa

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

Mục nhập mới trong / etc / crypttab

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

Cập nhật ramdisk ban đầu

sudo update-initramfs -u -k all

Sau đó, để kiểm tra nó, tôi đã sử dụng lệnh follow để bắt đầu cryptdisks:

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

Để kiểm tra hddencrypted đã được ánh xạ:

ls /dev/mapper/
control  hddencrypted

Tạo một điểm gắn kết

mkdir /mnt/hdd

Mục nhập mới trong / etc / fstab

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

Xác thực fstab mà không cần khởi động lại:

sudo mount -a

Gắn kết phân vùng được mã hóa khi khởi động

Bây giờ tôi đã gắn kết nó trong / mnt / hdd như tôi đề xuất. Nhưng tôi muốn làm điều này tự động sau khi khởi động lại. Nhưng trước khi tôi có thể đăng nhập, tôi gặp lỗi này:

the disk drive for /mnt/hdd is not ready yet or not permit

Tất cả điều này khiến tôi nghĩ rằng / etc / crypttab không thể truy cập vào keyfile được đặt trong HOME của tôi (phân vùng được mã hóa khác). Tôi không biết thứ tự mà hệ thống tuân theo để không được mã hóa và gắn kết các đơn vị. TRANG CHỦ của tôi không được mã hóa trước ổ cứng của tôi để cấp quyền truy cập để đọc keyfile.

Tôi sẽ đánh giá cao bất kỳ cái nhìn sâu sắc về lý do tại sao điều này xảy ra.

CẬP NHẬT: Nếu tôi định vị keyfile trong / boot (không được mã hóa), thay vì trong / home / [USERNAME] (được mã hóa), / dev / sda1 và cập nhật mục trong / etc / crypttab được gắn hoàn hảo vào thời gian khởi động.


Làm thế nào được /home/$USERmã hóa? Một mã hóa toàn bộ đĩa như LUKS hoặc dựa trên ecryptfs?
David Foerster

Câu trả lời:


9

Một tệp khóa trong thư mục / boot có thể được đọc bởi bất kỳ hệ điều hành nào khác được khởi động trên máy của bạn có khả năng gắn hệ thống tệp trên đó / boot được đặt. Do đó, mã hóa không thực sự hiệu quả. Đối số này áp dụng cho tất cả các vị trí tệp chính trên các hệ thống tệp không được mã hóa.

Để tránh các tệp chính trên hệ thống tệp không được mã hóa, mật khẩu có thể được sử dụng để giải mã. Tạo một mật khẩu mạnh cho thiết bị. Sau đó, thay đổi dòng trong / etc / crypttab thành

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

và giữ mục nhập trong / etc / fstab không thay đổi. Ubuntu 14.04 / 16.04 / 18.04 yêu cầu bạn nhập mật khẩu khi khởi động.


kết hợp câu trả lời của @ solt87 và câu trả lời này sẽ hoàn thành câu trả lời này.

6

Nó có hoạt động không nếu bạn thay thế "mặc định" trong fstab bằng

rw,suid,dev,exec,auto,user,async,relatime

(Theo trang man mount , nó giống như "mặc định" ngoại trừ "người dùng".)


1

Đảm bảo phân vùng hddencrypt được liệt kê sau phân vùng chính, ở cả hai /etc/fstab/etc/crypttab. Như crypttab (5)trang man nói:

Thứ tự của các bản ghi trong crypttab rất quan trọng vì các tập lệnh init lặp lại liên tục thông qua crypttab làm việc của chúng.

Ngoài ra, bạn có thể thử thêm noearlytùy chọn vào phân vùng sau trong /etc/crypttab:

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

Trong một tình huống bình thường, bạn có thể chỉ ra rằng phân vùng nhà phải được gắn trước bằng cách thêm nó CRYPTDISKS_MOUNTvào /etc/default/cryptdisks, nhưng vì nó được mã hóa, tôi có cảm giác đó không phải là một ý tưởng hay.


1
Điều này sẽ không hoạt động khi Ubuntu cố gắng giải mã tất cả các phân vùng và sau đó gắn kết chúng. Do đó, tập tin chính sẽ không có sẵn.
Christian Wolf
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.