Làm thế nào để tôi preseed mã hóa chỉ phân vùng gốc?


13

Tôi có 3 phân vùng: EFI ( /boot/efi), boot ( /boot) và root ( /). Tôi muốn mã hóa chỉ / . Tôi có thể làm điều này bằng tay thông qua trình cài đặt, nhưng tôi muốn chèn sẵn nó.

Làm thế nào để tôi xác định nó? Công thức (không mã hóa) của tôi trông giống như dưới đây. Đó là một cái gì đó không phù hợp với các đề xuất cho Phân vùng hệ thống EFI mà tôi đã tìm thấy (không tìm thấy hướng dẫn rõ ràng).

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ / }
  .

Làm cách nào để tạo sda3một phân vùng vật lý cho mã hóa LUKS và sau đó có một hệ thống tệp trên đó?

CẬP NHẬT:

Tôi phát hiện ra rằng tôi có thể đặt phân vùng thành tiền điện tử như bên dưới, nhưng vẫn còn 3 vấn đề:

  1. Tôi vẫn cần tạo và kích hoạt các khối được mã hóa trên phân vùng đã chọn
  2. Tôi vẫn cần đặt hệ thống tệp ext4 chính xác trên ổ đĩa được mã hóa sau khi được tạo và kích hoạt
  3. Công thức không chọn loại mã hóa dm-cryptđược yêu cầu để tạo và kích hoạt khối lượng mã hóa.

Vẫn đang vật lộn

boot-root ::
  100 100 100 fat32
    $primary
    $iflabel{ gpt }
    $reusemethod( }
    use_filesystem{ } filesystem{ vfat }
    method{ efi } format{ }
    mountpoint{ /boot/efi }
  .
  300 300 300 ext4
    use_filesystem{ } filesystem{ ext4 }
    method{ format } format{ }
    mountpoint{ /boot }
  .
  100% 3000 100% ext4
    method{ crypto } format{ }
  .

FYI, các nhãn thích sda, sdb, sdc, vv không luôn luôn giữ các chữ cái tương tự (a, b, c) giữa khởi động (mỏ chuyển mỗi khi khởi động)
Xen2050

2
@ Xen2050 đúng bạn đang có, UUIDhoặc PARTUUIDhoặc LABELhoặc PARTLABELtốt hơn nhiều. Trong trường hợp của tôi, tôi đang khởi động một hình ảnh để định dạng, vì vậy chỉ có một ổ đĩa. Dù sao đi nữa, làm thế nào để tôi thiết lập nó để mã hóa phân vùng đơn? Tôi có thể làm điều đó một cách tương tác, nhưng tôi cần nó trước.
deitch

Hmm, có thể nhận được ở đâu đó, nhưng nhiều câu hỏi hơn. Sẽ đăng q khác.
deitch

@deitch - đây là cấu hình phân vùng máy chủ hay máy khách hay chỉ là ví dụ phân vùng máy tính để bàn? 3 phân vùng này quá ít so với ý định của bạn - thiếu / trao đổi và / home - vì vậy bạn phải thiết lập bằng cách nào đó một phần mở rộng của ổ cứng với các phân vùng logic - thông thường các phân vùng chỉ cho phép 4 trên toàn bộ nhưng được mở rộng với các phân vùng logic cho phép Tối đa 4 lần 63 phân vùng (và GPT cho phép nhiều hơn nữa)?! - unix.stackexchange.com/questions/33555/ - - liên quan đến phân vùng chủ và nô lệ.
dschinn1001

@ dschinn1001 thực sự là một mẫu cho một máy chủ an toàn. Hệ điều hành cốt lõi là trên một ổ đĩa di động. Dữ liệu người dùng và trao đổi nằm trên một ổ đĩa nội bộ, dịch vụ systemd tìm và gắn kết phù hợp. Nhưng bỏ qua điều đó .... làm thế nào tôi có thể thiết lập root để được mã hóa mà không cần LVM?
deitch

Câu trả lời:


1

Đầu tiên, mở một thiết bị đầu cuối gốc:

sudo -i

Sau đó điền vào phân vùng cần được mã hóa bằng dữ liệu ngẫu nhiên bằng lệnh như sau:

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sdxy

Bạn phải thay thế sdxybằng phân vùng sẽ được mã hóa. Sau đó gõ

cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 /dev/sdxy

để mã hóa phân vùng sdxy. Mở âm lượng và đặt tên cho nó root:

cryptsetup luksOpen /dev/sdxy root

Sử dụng lệnh này để tạo một hệ thống tập tin ext4 bên trong nó:

mkfs.ext4 /dev/mapper/root

Tiếp theo bạn có thể bắt đầu trình cài đặt. Chọn "Một cái gì đó khác" khi được hỏi bạn muốn làm gì. Sau đó chọn điểm gắn kết cho tất cả các phân vùng không được mã hóa của bạn. Đối với rootphân vùng của bạn , chọn /dev/mapper/root, nhấp vào "Thay đổi". Sau đó chọn ext4loại hệ thống tập tin và đặt điểm gắn kết thành /. Sau đó nhấp vào "Cài đặt ngay" và cài đặt Ubuntu bình thường.

Khi cài đặt xong bấm vào "Tiếp tục thử nghiệm". Mở một thiết bị đầu cuối và gõ:

sudo -i
cd /mnt
mkdir root
mount /dev/mapper/root root
mount /dev/sdyz root/boot

sdyznên được thay thế bằng bootphân vùng của bạn . Tiếp theo, gõ:

chroot root
mount -t proc proc /proc
mount -t sysfs sys /sys
nano /etc/crypttab

Mở một thiết bị đầu cuối thứ hai và gõ sudo blkid. Tìm UUID cho root( crypto_lukscái cuối cùng nói) và dán nó vào /etc/crypttab. Sau đó, tập tin /etc/crypttabsẽ trông giống như thế này:

root UUID=d68911dd-172a-4608-86d4-084eb72f409c none luks

Đóng tập tin với Ctrl+ x, yEnter. Nhập nano /etc/fstabvào thiết bị đầu cuối và kiểm tra xem mọi thứ có đúng không (ví dụ: UUID).

Cuối cùng, thoát khỏi môi trường chroot và gõ:

cryptsetup luksHeaderBackup /dev/sdxy --header-backup-file /root/root.img

Điều này đặt một hình ảnh của tiêu đề của phân vùng được mã hóa vào thư mục /rootvà đặt tên cho nó root.img. Sau đó di chuyển hình ảnh sang ổ đĩa ngoài (trong trường hợp quên mật khẩu). Bây giờ bạn có thể khởi động lại vào Ubuntu mới cài đặt của bạn.

Nguồn: http://thesimplecomputer.info/full-disk-encoding-with-ubfox


Chào mừng bạn đến hỏi Ubuntu! Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
Karl Richter

@Earl bạn đang đề xuất xây dựng phân vùng trước trong môi trường chroot (hoặc được đóng gói), sau đó dán nó vào trình cài đặt?
deitch

Làm thế nào tôi sẽ làm việc đó với preseeder?
deitch

Tôi không biết, nhưng đó ít nhất là một giải pháp để tạo ra một sự hợp tác được mã hóa rootLUKS mà không cần LVM.
Bá tước Nick
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.