Cài đặt tùy chỉnh được mã hóa


20

Máy tính của tôi chạy Ubuntu. Tôi muốn cài đặt Ubuntu trên một phương tiện khác. Tôi muốn kích hoạt mã hóa, nhưng vì các lựa chọn mặc định của trình cài đặt Ubuntu (xóa / bên cạnh / etc ...) chỉ liên quan đến ổ đĩa mặc định, tôi phải chọn "cái gì đó khác" và tạo các phân vùng trên ổ đĩa khác theo cách thủ công, tôi tạo ~ 128mb một phần để khởi động, sau đó tôi bị mất, nếu tôi tạo một phân vùng được mã hóa với phần còn lại của không gian, tôi không thể tách nó ra, vì vậy tôi không có trao đổi; thay vào đó, nếu tôi tạo hai phân vùng được mã hóa, có vẻ như không đúng vì nó muốn thiết lập hai mật khẩu khác nhau ...

Làm thế nào tôi có thể thiết lập trao đổi sau đó? (Trong hoặc sau khi cài đặt).


Câu trả lời:


28

Cách thực hiện điều này với LVM và một phân vùng được mã hóa

Cảnh báo

Trước hết 128M là quá nhỏ để khởi động! Tôi dùng 1G. Mặt khác, điều chắc chắn sẽ xảy ra là bạn có thể quên loại bỏ các hạt nhân cũ và / boot sẽ lấp đầy, và bạn sẽ phải đối phó với nỗi đau khi cố gắng loại bỏ các hạt nhân cũ khỏi hệ thống để bạn có thể lấy apthoặc apt-getlàm việc lần nữa. Ngay cả với 1G, thỉnh thoảng hãy đảm bảo bạn loại bỏ các hạt nhân cũ.

Các bước tiếp theo không dành cho người dùng mới làm quen.
CẬP NHẬT: Tôi đã tạo một tập lệnh sẽ thực hiện các thao tác sau cho bạn và hơn thế nữa! Tất cả bạn phải làm là chạy nó từ Live OS trước khi cài đặt. Bạn có thể tìm thấy một bài viết trên blog của tôi .


Cài đặt sẵn từ hệ điều hành trực tiếp

Bạn muốn thiết lập LUKS và LVM trong khi phân vùng thủ công! Tôi đã thử nghiệm điều này trên Ubuntu 16.04.2

Khởi động Ubuntu từ hệ điều hành trực tiếp và chọn tùy chọn dùng thử Ubuntu mà không cần cài đặt. Thực hiện theo các bước tôi đã vạch ra dưới đây. Giả sử bạn đang cài đặt vào / dev / sdb.

  1. Phân vùng ổ đĩa với công cụ bạn chọn: Tôi đã sử dụng fdisk để thiết lập ổ đĩa trên bảng phân vùng msdos như sau:
    • các phân vùng khác: HĐH hiện tại - chúng tôi không quan tâm đến những
    • sdb1: / khởi động (1G)
    • sdb2: phân vùng LUKS (phần còn lại của đĩa)
  2. Cài đặt LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • Mặc dù không cần thiết, nhưng nên điền vào phân vùng LUKS của bạn bằng các số 0 để phân vùng đó ở trạng thái được mã hóa, chứa đầy dữ liệu ngẫu nhiên. sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M HÃY THỬ, điều này có thể mất một thời gian thực sự dài!
  3. Thiết lập LVM trên / dev / mapper / CryptDisk
    • sudo pvcreate /dev/mapper/CryptDisk
    • sudo vgcreate vg0 /dev/mapper/CryptDisk
    • sudo lvcreate -n swap -L 2G vg0
    • sudo lvcreate -n root -L 10G vg0
    • sudo lvcreate -n home -l +100%FREE vg0

Cài đặt từ hệ điều hành trực tiếp

  1. Bây giờ bạn đã sẵn sàng để cài đặt. Khi bạn đến phần "Kiểu cài đặt" của cài đặt, hãy chọn tùy chọn "Thứ khác". Sau đó, gán thủ công các phân vùng / dev / mapper / vg0- * như bạn muốn có cấu hình. Đừng quên đặt / dev / sdb1 là / boot. phân vùng / boot không được mã hóa. Nếu có, chúng tôi sẽ không thể khởi động. Thay đổi "Thiết bị để cài đặt bộ tải khởi động" thành / dev / sdb và tiếp tục cài đặt.
  2. Khi cài đặt hoàn tất, không khởi động lại ! Chọn tùy chọn để "Tiếp tục kiểm tra".

Cấu hình sau khi cài đặt từ hệ điều hành trực tiếp

Bit này thực sự quan trọng nếu bạn muốn hệ thống của bạn khởi động! Tôi đã dành khá nhiều thời gian để nghiên cứu điều này để tìm ra các bước sau khi cài đặt. Trong trường hợp của tôi, tôi thực sự đã làm điều đó bởi vì tôi muốn tùy chỉnh kích thước của / boot on / dev / sda, nhưng tất cả công việc đó cũng sẽ chuyển sang tình huống của bạn.

  1. Trong một thiết bị đầu cuối, nhập nội dung sau và tìm UUID của / dev / sdb2. Hãy lưu ý về UUID đó cho sau này.
    • sudo blkid | grep LUKS
    • Dòng quan trọng trên máy của tôi đọc /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. Tiếp theo, hãy cài đặt lại hệ thống mới để chúng tôi có thể thực hiện thêm một số thay đổi.

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # điều này có lẽ không cần thiết
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # Tôi không hoàn toàn chắc chắn điều này là cần thiết
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (Chỉ khi bạn đang sử dụng EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. Bây giờ hãy chạy sudo chroot /mntđể truy cập hệ thống đã cài đặt

  4. Từ chroot, gắn kết thêm một vài điều
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. Thiết lập tiền điện tử. Sử dụng trình soạn thảo văn bản yêu thích của bạn, tạo tệp / etc / crypttab và thêm dòng sau, thay đổi UUID bằng UUID của đĩa.
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. Cuối cùng, xây dựng lại một số tập tin khởi động.
    • update-initramfs -k all -c
    • update-grub
  7. Khởi động lại và hệ thống nên yêu cầu mật khẩu để giải mã khi khởi động!

Cảm ơn đặc biệt đến Martin Eve , EGIDIO DOCILE và những người ở blog.botux.fr để biết hướng dẫn mà họ đã đăng. Bằng cách lấy các mảnh từ bài đăng của họ và thực hiện thêm một chút rắc rối khi chụp, cuối cùng tôi đã có thể tìm ra điều này.

Tôi đã thử điều này một số lần và thất bại nhiều lần. Bit mà tôi phải tự làm việc dựa trên các thông báo lỗi làsudo mount --bind /run/lvm /mnt/run/lvm


Rất cám ơn, nhưng tôi bị mắc kẹt ngay từ đầu khi tôi cần thiết lập phân vùng luks. Không thể tìm thấy nó trong đầu ra fdisk -L.
Yvain

Và khi tôi cố gắng thiết lập mật mã, tôi gặp phải lỗi: không thể xóa tiêu đề
Yvain

Tôi thấy bạn đánh dấu đây là một giải pháp. Bạn đã làm cho nó làm việc? Nếu không, bạn đã sử dụng công cụ nào để tạo phân vùng của mình? Trước tiên, bạn phải phân vùng đĩa bằng một công cụ như Gparted hoặc fdisk, tạo phân vùng cho / boot và một để mã hóa (EFI sẽ yêu cầu phân vùng không được mã hóa thứ ba). Tôi đã không sử dụng EFI trong thiết lập của mình. Chỉ sau khi bạn đã tạo phân vùng để mã hóa, bạn mới thực sự có thể chạy cryptsetup luksFormatlệnh để mã hóa nó. Khi tạo / dev / sdb2, bạn có thể định dạng nó bằng hệ thống tệp hoặc không. cryptsetupsẽ xóa bất kỳ hệ thống tập tin hiện có.
b_laoshi

1
@Yvain - Tôi tin điều này là sai. Sha1 không còn được coi là an toàn. Một cái gì đó an toàn hơn (như tùy chọn sha512 được đề xuất) chắc chắn nên được sử dụng.
mike

1
+1 @b_laoshi Cảm ơn rất nhiều vì câu trả lời, nó giúp tôi rất nhiều :)
Tummala Dhanvi

3

Cách thực hiện nhiều phân vùng được mã hóa này và không có LVM

Vì câu trả lời trước của tôi quá dài, tôi đang đăng câu trả lời thứ hai theo cách tiếp cận khác nếu bạn không muốn sử dụng LVM.

Bạn có thể tạo nhiều phân vùng được mã hóa và sử dụng tập lệnh decrypt_derive để bạn chỉ cần nhập mật khẩu một lần. Kiểm tra bài đăng trên blog này để được hướng dẫn từng bước. Tác giả sử dụng một keyfile, nhưng tập lệnh LUKS decrypt_derive cũng sẽ đủ.


Cuối cùng tôi đã rút ổ đĩa chính, các bản cài đặt được hỗ trợ có sẵn cho sd của tôi :) lol
Yvain

2

Một cách để thực hiện tác vụ là sử dụng trình cài đặt mạng ubfox https://www.ubfox.com/doad/alternative-doads

Nó không phải là một trình cài đặt đồ họa. Nhưng nó cung cấp cho bạn sự lựa chọn rõ ràng về đĩa sau khi bạn chọn cài đặt toàn bộ đĩa bằng mã hóa.

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.