การติดตั้งแบบกำหนดเองที่เข้ารหัสไว้


21

คอมพิวเตอร์ของฉันใช้งาน Ubuntu ฉันต้องการติดตั้ง Ubuntu บนสื่ออื่น ฉันต้องการเปิดใช้งานการเข้ารหัส แต่เนื่องจากตัวเลือกเริ่มต้นของตัวติดตั้งอูบุนตู (ลบ / ข้าง / ฯลฯ ... ) เกี่ยวกับไดรฟ์เริ่มต้นเท่านั้นฉันต้องเลือก "อย่างอื่น" และสร้างพาร์ติชันบนไดรฟ์อื่นด้วยตนเองฉันสร้าง ~ ส่วนที่ 128mb สำหรับบูตจากนั้นฉันก็เสียไปถ้าฉันสร้างพาร์ติชั่น encrytped พร้อมพื้นที่ส่วนที่เหลือฉันไม่สามารถแยกมันได้ดังนั้นฉันจึงไม่มี swap ถ้าฉันสร้างสองพาร์ติชั่นที่เข้ารหัสแทน, มันไม่ถูกต้องเพราะมันต้องการตั้งค่ารหัสผ่านที่แตกต่างกันสองอัน ...

ฉันจะตั้งค่าการสลับได้อย่างไร? (ระหว่างหรือหลังการติดตั้ง)


ดูเพิ่มเติมได้ที่askubuntu.com/questions/293028/…
Flimm

คำตอบ:


29

วิธีทำสิ่งนี้ให้สำเร็จด้วย LVM และพาร์ติชันที่เข้ารหัสลับเดียว

คำเตือน

ก่อนอื่น 128M นั้นเล็กเกินไปสำหรับการบู๊ต! ฉันใช้ 1G มิฉะนั้นสิ่งที่จะเกิดขึ้นคือคุณอาจลืมที่จะลบเมล็ดเก่าและ / boot จะเต็มและคุณจะต้องจัดการกับความเจ็บปวดจากการพยายามที่จะลบเมล็ดเก่าออกจากระบบเพื่อให้คุณได้รับaptหรือapt-getไปทำงาน อีกครั้ง แม้จะใช้กับ 1G ก็ตามอย่าลืมลบเมล็ดเก่าออกเป็นระยะ

ขั้นตอนต่อไปไม่ได้มีไว้สำหรับผู้ใช้มือใหม่
อัปเดต: ฉันได้สร้างสคริปต์ที่จะใช้งานการดำเนินการต่อไปนี้สำหรับคุณและอีกมากมาย! สิ่งที่คุณต้องทำคือเรียกใช้จาก Live OS ก่อนการติดตั้ง คุณสามารถค้นหาเขียนขึ้นบนบล็อกของฉัน


การติดตั้งล่วงหน้าจากระบบปฏิบัติการสด

คุณต้องการตั้งค่า LUKS และ LVM ขณะทำการแบ่งพาร์ติชันด้วยตนเอง! ฉันทดสอบสิ่งนี้บน Ubuntu 16.04.2

Boot Ubuntu จาก Live OS และเลือกตัวเลือกเพื่อลอง Ubuntu โดยไม่ต้องติดตั้ง ทำตามขั้นตอนที่ฉันได้อธิบายไว้ด้านล่าง สมมติว่าคุณกำลังติดตั้งใน / dev / sdb

  1. แบ่งพาร์ติชันของไดรฟ์ด้วยเครื่องมือที่คุณเลือก: ฉันใช้ fdisk เพื่อตั้งค่าของฉันบนตารางพาร์ติชัน msdos ดังนี้:
    • พาร์ติชันอื่น ๆ : ระบบปฏิบัติการที่มีอยู่ - เราไม่สนใจสิ่งเหล่านี้
    • sdb1: / boot (1G)
    • sdb2: พาร์ทิชัน LUKS (ส่วนที่เหลือของดิสก์)
  2. ติดตั้ง LUKS
    • sudo cryptsetup luksFormat --hash=sha512 --key-size=512 --cipher=aes-xts-plain64 --verify-passphrase /dev/sdb2
    • sudo cryptsetup luksOpen /dev/sdb2 CryptDisk
    • ในขณะที่ไม่จำเป็นก็เป็นความคิดที่ดีที่จะเติมพาร์ติชั่น LUKS ของคุณด้วยศูนย์เพื่อให้พาร์ติชั่นที่อยู่ในสถานะเข้ารหัสนั้นเต็มไปด้วยข้อมูลแบบสุ่ม sudo dd if=/dev/zero of=/dev/mapper/CryptDisk bs=4M ระวังนี่อาจใช้เวลานานมาก!
  3. ติดตั้ง LVM บน / 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

การติดตั้งจากระบบปฏิบัติการสด

  1. ตอนนี้คุณพร้อมที่จะติดตั้งแล้ว เมื่อคุณไปที่ส่วน "ประเภทการติดตั้ง" ของการติดตั้งให้เลือกตัวเลือก "อย่างอื่น" จากนั้นกำหนดพาร์ติชัน / dev / mapper / vg0- * ด้วยตนเองตามที่คุณต้องการกำหนดค่า อย่าลืมตั้ง / dev / sdb1 เป็น / boot พาร์ติชัน / boot ต้องไม่ถูกเข้ารหัส หากเป็นเช่นนั้นเราจะไม่สามารถบูตได้ เปลี่ยน "อุปกรณ์สำหรับการติดตั้งบูตโหลดเดอร์" เป็น / dev / sdb และดำเนินการติดตั้งต่อ
  2. เมื่อการติดตั้งเสร็จสมบูรณ์อย่ารีบูต ! เลือกตัวเลือกเพื่อ "ดำเนินการทดสอบต่อ"

การกำหนดค่าหลังการติดตั้งจากระบบปฏิบัติการสด

บิตนี้สำคัญมากถ้าคุณต้องการให้ระบบของคุณบูท! ฉันใช้เวลาค้นคว้าข้อมูลนี้เพื่อหาขั้นตอนหลังการติดตั้ง ในกรณีของฉันฉันทำจริงเพราะฉันต้องการกำหนดขนาดของ / boot บน / dev / sda แต่งานทั้งหมดที่ควรดำเนินการกับสถานการณ์ของคุณเช่นกัน

  1. ในเทอร์มินัลพิมพ์ต่อไปนี้และค้นหา UUID ของ / dev / sdb2 จดบันทึก UUID นั้นไว้ในภายหลัง
    • sudo blkid | grep LUKS
    • บรรทัดสำคัญบนเครื่องของฉันอ่าน /dev/sdb2: UUID="bd3b598d-88fc-476e-92bb-e4363c98f81d" TYPE="crypto_LUKS" PARTUUID="50d86889-02"
  2. ถัดไปให้นำระบบที่ติดตั้งใหม่มาติดตั้งอีกครั้งเพื่อให้เราสามารถทำการเปลี่ยนแปลงเพิ่มเติมได้

    • sudo mount /dev/vg0/root /mnt
    • sudo mount /dev/vg0/home /mnt/home # อาจไม่จำเป็น
    • sudo mount /dev/sdb1 /mnt/boot
    • sudo mount --bind /dev /mnt/dev # ฉันไม่แน่ใจว่าสิ่งนี้เป็นสิ่งจำเป็น
    • sudo mount --bind /run/lvm /mnt/run/lvm
    • (เฉพาะในกรณีที่คุณใช้ EFI): sudo mount /dev/sd*/your/efi/partition /mnt/boot/efi
  3. ตอนนี้เรียกใช้sudo chroot /mntเพื่อเข้าถึงระบบที่ติดตั้ง

  4. จาก chroot ให้ติดอีกสองสามอย่าง
    • mount -t proc proc /proc
    • mount -t sysfs sys /sys
    • mount -t devpts devpts /dev/pts
  5. ตั้งค่า crypttab ใช้เท็กซ์เอดิเตอร์ที่คุณโปรดปรานสร้างไฟล์ / etc / crypttab และเพิ่มบรรทัดต่อไปนี้เปลี่ยน UUID ด้วย UUID ของดิสก์
    • CryptDisk UUID=bd3b598d-88fc-476e-92bb-e4363c98f81d none luks,discard
  6. สุดท้ายให้สร้างไฟล์สำหรับบูตใหม่
    • update-initramfs -k all -c
    • update-grub
  7. รีบูทและระบบควรขอรหัสผ่านเพื่อถอดรหัสตอนบูต!

ขอขอบคุณเป็นพิเศษไปที่Martin Eve , EGIDIO DOCILEและคนที่blog.botux.frสำหรับบทเรียนที่พวกเขาโพสต์ ด้วยการดึงชิ้นส่วนจากโพสต์ของพวกเขาและทำการยิงปัญหาพิเศษเล็กน้อยในที่สุดฉันก็สามารถคิดออก

ฉันลองมาหลายครั้งแล้วและล้มเหลวไปเรื่อย ๆ บิตที่ฉันต้องทำงานเพื่อตัวเองตามข้อความแสดงข้อผิดพลาดคือsudo mount --bind /run/lvm /mnt/run/lvm


ขอบคุณมาก แต่ฉันยังคงติดอยู่ที่จุดเริ่มต้นที่ฉันต้องตั้งค่าพาร์ติชัน luks ไม่สามารถค้นหาได้ภายในเอาต์พุต fdisk -L
Yvain

และเมื่อฉันพยายามติดตั้งฝังศพใต้ถุนโบสถ์ฉันได้รับและข้อผิดพลาด: ไม่สามารถลบส่วนหัว
Yvain

ฉันเห็นคุณทำเครื่องหมายว่านี่เป็นวิธีแก้ปัญหา คุณทำให้มันทำงานหรือไม่ ถ้าไม่คุณใช้เครื่องมืออะไรในการสร้างพาร์ติชั่น? คุณต้องแบ่งพาร์ติชั่นดิสก์เป็นอันดับแรกด้วยเครื่องมือเช่น Gparted หรือ fdisk สร้างพาร์ติชั่นสำหรับ / boot และอีกอันสำหรับเข้ารหัส (EFI ต้องการพาร์ติชั่นที่ไม่เข้ารหัสอันที่สาม) ฉันไม่ได้ใช้ EFI ในการตั้งค่า หลังจากที่คุณสร้างพาร์ติชันสำหรับการเข้ารหัสแล้วคุณสามารถเรียกใช้cryptsetup luksFormatคำสั่งเพื่อเข้ารหัสได้จริง เมื่อสร้าง / dev / sdb2 คุณสามารถฟอร์แมตด้วยระบบไฟล์หรือไม่ cryptsetupจะลบระบบไฟล์ใด ๆ ที่มีอยู่
b_laoshi

1
@ Yvain - ฉันเชื่อว่านี่เป็นสิ่งที่ผิด Sha1 ไม่ถือว่าปลอดภัยแล้ว ควรใช้สิ่งที่มีความปลอดภัยมากขึ้น (เช่นตัวเลือก sha512)
ไมค์

1
+1 @b_laoshi ขอบคุณมากสำหรับคำตอบมันช่วยฉันได้มาก :)
Tummala Dhanvi

3

วิธีการบรรลุหลายพาร์ติชันที่เข้ารหัสนี้และไม่มี LVM

เนื่องจากคำตอบก่อนหน้าของฉันนั้นยาวมากฉันจึงโพสต์คำตอบที่สองซึ่งใช้แนวทางที่แตกต่างกันหากคุณไม่ต้องการใช้ LVM

คุณสามารถสร้างพาร์ติชันที่เข้ารหัสหลายพาร์ติชันและใช้สคริปต์decrypt_derivedเพื่อให้คุณต้องป้อนรหัสผ่านเพียงครั้งเดียว ลองอ่านโพสต์บล็อกนี้สำหรับคำแนะนำทีละขั้นตอน ผู้เขียนใช้ keyfile แต่สคริปต์ decrypt_derived LUKS ก็เพียงพอเช่นกัน


ฉันสิ้นสุดการถอดปลั๊กไดรฟ์หลักมีการติดตั้งที่มีความช่วยเหลือสำหรับ sd ของฉัน :) lol
Yvain

2

วิธีหนึ่งในการทำงานคือใช้ตัวติดตั้งเครือข่าย ubuntu https://www.ubuntu.com/download/alternative-downloads

ไม่ใช่ตัวติดตั้งแบบกราฟิก แต่มีตัวเลือกดิสก์ที่ชัดเจนหลังจากที่คุณเลือกการติดตั้งดิสก์แบบเต็มพร้อมการเข้ารหัส


0

นี่คือคำตอบสำหรับผู้ที่พยายามชนกับคำถามนี้และต้องการเปลี่ยนการแบ่งพาร์ติชันเริ่มต้นของ Ubuntu เล็กน้อย ตัวอย่างเช่นลบswapพาร์ติชันและเพิ่ม/bootขนาด ฉันคิดว่าหลาย ๆ คนคงจะหมดกำลังใจที่จะทำตามคำแนะนำของ b_laoshi เพราะจำนวนขั้นตอนที่ต้องใช้

ดังนั้นสำหรับการแบ่งพาร์ติชันแบบกำหนดเองอย่างง่ายด้วยการเข้ารหัสฉันแนะนำให้ใช้ "ลบดิสก์และติดตั้ง Ubuntu" ด้วยตัวเลือก "เข้ารหัสการติดตั้ง Ubuntu ใหม่เพื่อความปลอดภัย" สิ่งที่เราจะเปลี่ยนคือการกำหนดค่าสำหรับการแบ่งพาร์ติชันเริ่มต้นนี้

/lib/partman/recipes[-arch]/การกำหนดค่านี้มีอยู่ใน สำหรับตัวฉันเองฉันเปลี่ยนไป/lib/partman/recipes-amd64-efi/30atomicแล้ว ในการรับ 538M สำหรับefi, 1024M สำหรับ/bootและส่วนที่เหลือสำหรับ/กับ ext4 ฉันแก้ไขไฟล์เป็น

538 538 538 fat32
    $iflabel{ gpt }
    $reusemethod{ }
    method{ efi }
    format{ } .

1024 1024 1024 ext4
    $defaultignore{ }
    $lvmignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ /boot } .    

900 10000 -1 ext4
    $lvmok{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext4 }
    mountpoint{ / } .

โปรดทราบว่าเมื่อคุณเลือกดิสก์ที่จะลบในตัวติดตั้งแล้วระบบจะแจ้งให้คุณทราบถึงการสรุปของการแบ่งพาร์ติชันเพื่อให้คุณสามารถตรวจสอบว่ากลอุบายนั้นทำงานได้หรือไม่และคุณได้รับการแบ่งพาร์ติชันที่ต้องการ ดูเพิ่มเติม/ubuntu//a/678074/47073

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.