มีคำถามเดียวกันนี่คือวิธีที่ฉันทำบน Ubuntu 12.04.1 และ 12.10
- ก่อนเริ่มให้แน่ใจว่าคุณมีการสำรองข้อมูลและยังสามารถบูตระบบของคุณด้วย ubuntu cd หรือ usb; ราวกับว่าคุณทำผิดระบบของคุณอาจไม่สามารถบู๊ตได้อีกต่อไปหรือคุณอาจสูญเสียข้อมูล ฉันถือว่าคุณมีระบบอูบุนตูที่เข้ารหัสด้วย LUKS ภายใน LUKS คุณมี 3 พาร์ติชันระบบบูต (ไม่เข้ารหัส), SYSTEM-SWAP (เข้ารหัส) และระบบ -OS (เข้ารหัส) -
คุณจำเป็นต้องปรับ UUIDs, SYSTEM-SWAP_crypt, SYSTEM-OS_crypt, SYSTEM-SWAP, SYSTEM-OS ให้เป็นรูปแบบที่ใช้กับระบบของคุณกรุณาดูลิงค์อ้างอิงด้านล่างโซลูชันของฉันสำหรับข้อมูลเพิ่มเติม
รับ UUIDs:
blkid
เตรียม>
swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt
บอก cryptsetup เพื่อคำนวณวลีรหัสผ่านของพาร์ติชัน swap จากคีย์ถอดรหัสของไดรฟ์ข้อมูลที่เก็บระบบไฟล์ราก>
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt
บอกระบบเกี่ยวกับ swap partition, แก้ไข crypttab>
nano /etc/crypttab
=? ตรวจสอบให้แน่ใจว่ามีสองบรรทัดที่ตรงกัน
SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
บอกระบบเกี่ยวกับการสลับพาร์ติชั่นแก้ไข fstab>
nano /etc/fstab
=? ให้แน่ใจว่าคุณมีสายนี้
/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0
บอกระบบเกี่ยวกับการแลกเปลี่ยนพาร์ติชันแก้ไขประวัติ>
nano /etc/initramfs-tools/conf.d/resume
=? ให้แน่ใจว่าคุณมีสายนี้
RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt
อัปเดต initramfs บนพาร์ติชันสำหรับบูต>
update-initramfs -u -k all
การอ้างอิง
คำตอบที่ได้รับแรงบันดาลใจจากการตั้งค่าระบบ Debian ที่เข้ารหัส (ลิงก์ถาวร):
หากคุณกำลังใช้ระบบ Debian ที่เข้ารหัสไว้คุณอาจมีข้อกำหนดด้านความปลอดภัยที่จะต้องปฏิบัติตาม หากเป็นเช่นนั้นคุณต้องใช้พาร์ทิชัน swap ที่เข้ารหัส
การสลับพาร์ติชั่นสามารถเข้ารหัสได้สองวิธี:
- มันสามารถสร้างขึ้นใหม่ได้ในการบู๊ตทุกครั้งโดยใช้ข้อความรหัสผ่านแบบสุ่มหรือ
- มันสามารถสร้างเช่นเดียวกับไดรฟ์ข้อมูลที่เข้ารหัสอื่น ๆ ด้วยวลีรหัสผ่านถาวร
หากคุณต้องการใช้ suspend-to-disk คุณไม่สามารถใช้วิธีแรกเนื่องจากจะเขียนทับหน่วยความจำที่เก็บไว้ในพาร์ทิชัน swap นอกจากนี้คุณไม่สามารถใช้ไฟล์คีย์เช่นพาร์ติชันอื่น ๆ ได้เนื่องจากระบบไฟล์รูทไม่ได้ (และต้องไม่ติดตั้ง) ในเวลาที่กระบวนการเริ่มทำงานและต้องอ่านพาร์ติชั่นถอดรหัสที่ถอดรหัส
วิธีที่ฉันแก้ปัญหานี้คือการบอก cryptsetup เพื่อคำนวณวลีรหัสผ่านของ swap partition จากคีย์ถอดรหัสของโวลุ่มที่มีระบบไฟล์รูท แพคเกจ cryptsetup /lib/cryptsetup/scripts/decrypt_derived
การดำเนินการนี้กับ ดังนั้นในการตั้งค่าพาร์ติชัน swap ฉันทำสิ่งต่อไปนี้โดยถือว่าhda2
เป็นพาร์ติชันที่ถือ swap ที่เข้ารหัสและระบบไฟล์รูทอยู่ในhda5_crypt
:
swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt
เพื่อบอกระบบเกี่ยวกับ swap partition นี้เราจำเป็นต้องเพิ่มมันเข้าไป
/etc/crypttab
และ/etc/fstab
; ตรวจสอบให้แน่ใจว่าไฟล์เหล่านั้นมีบรรทัดดังนี้:
/etc/crypttab:
hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
/etc/fstab:
/dev/mapper/hda2_crypt swap swap sw 0 0
เมื่อใช้สิ่งนี้ทันทีที่คุณกำหนดค่าระบบสำหรับ suspend-to-disk พาร์ติชัน swap จะถูกตั้งค่าโดยอัตโนมัติพร้อมกับระบบไฟล์รูทก่อนหน้านี้ในระหว่างการบูต หากต้องการทราบว่าพาร์ทิชัน swap ที่จะทำให้พร้อมใช้งาน ณ จุดนั้น cryptsetup ตรวจสอบสิ่งต่อไปนี้: asfasfafs - บรรทัดเหมือนRESUME=/dev/mapper/hda2_crypt
ใน/etc/initramfs-tools/conf.d/resume
- การตั้งค่าอุปกรณ์ดำเนินการต่อใน/etc/uswsusp.conf
(ดูuswsusp.conf(5)
) - รายการใน/etc/suspend.conf
- a resume=/dev/mapper/hda2_crypt
ในบรรทัดคำสั่งเคอร์เนล
คุณสามารถตรวจสอบ/usr/share/initramfs-tools/hooks/cryptroot
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้