หยุด crypttab ขอรหัสผ่านเพื่อแลกเปลี่ยน


10

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

/
/home
swap

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

root-root_crypt UUID=13c21bf6-4d92-42a7-877a-87cc31b1aa19 none luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 /root/keyfile luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 none luks
sda3_crypt UUID=e4677895-2114-4054-9f23-d36f6bb0e6a2 /root/keyfile luks,swap

วิธีนี้ใช้งานได้ดีสำหรับ / home ซึ่งติดตั้งโดยอัตโนมัติโดยไม่ต้องขอรหัสผ่าน แต่ cryptsetup ยังคงถามรหัสผ่านสำหรับพื้นที่สว็อป ฉันได้ลองเพิ่ม noauto ลงในพื้นที่ swap เพื่อไม่ให้ติดตั้งเลย - เมื่อระบบบู๊ตแล้วฉันสามารถเปิดใช้งานได้โดยไม่ต้องใส่รหัสผ่านดังนั้นฉันคิดว่าฉันเพิ่งจะเพิ่มสคริปต์ init ที่ต้องทำ มัน แต่แม้จะมี noauto cryptsetup ยังคงถามรหัสผ่าน

ขอบคุณ!


4
ด้วยเหตุผลนี้จึงแนะนำให้ใช้ LVM + LUKS ในกรณีที่มีหลายพาร์ติชัน สามารถใช้ Crypsetup ด้านบนหรือด้านล่างเลเยอร์ LVM (ด้านบน -> ระบบไฟล์ด้านล่าง -> ดิสก์) การใช้ cryptsetup ด้านล่าง LVM มีข้อดีที่คุณต้องการเพียงพาร์ติชั่นเข้ารหัสหนึ่งอัน (LVM อันเดียว)
Lekensteyn

คำตอบ:


10

มีคำถามเดียวกันนี่คือวิธีที่ฉันทำบน 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หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้


ยินดีต้อนรับสู่ถาม Ubuntu! จะมี +1 หากไม่เพียงคัดลอก / วางโดยไม่ดูแลการจัดรูปแบบ (ซึ่งฉันเพิ่งทำ) ฉันชอบ "มันสามารถสร้างขึ้นใหม่ได้ในการบู๊ตทุกครั้งโดยใช้ข้อความรหัสผ่านแบบสุ่ม" ที่นี่
gertvdijk

เพิ่มคำสั่งที่ฉันใช้จริงกับคำตอบฉันจะทดสอบที่ 12.10 เช่นกันจะอัปเดตคำตอบในภายหลัง
Prince

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

อย่าลองในวันที่ 12.10 เพราะฉันพบข้อผิดพลาดที่ป้องกันการบูตฉันได้รับ "cryptsetup lvm ไม่พร้อมใช้งาน" Google ค้นหารายงานข้อผิดพลาดที่ส่งคืน จำเป็นต้องดูมันอย่างลึกซึ้งยิ่งขึ้น แต่ไม่มีเวลาจะแจ้งให้คุณทราบในภายหลัง
เจ้าชาย

อัปเดตคำตอบระบบ 12.10 ของฉันทำงานได้อย่างสมบูรณ์และขอรหัสผ่านเดียวเท่านั้นฉันไม่ได้อัปเดต initramfs -u -k ทั้งหมดในตอนท้ายที่สร้างปัญหาที่ฉันกล่าวถึงในความคิดเห็นก่อนหน้า @gertcdijk จัดรูปแบบทุกอย่างหวังว่าคุณจะมีความสุขในตอนนี้
เจ้าชาย

4

นี่อาจเป็นการบ่งชี้ว่ามีการเข้าถึงพาร์ติชันการสลับระหว่างinitramfsส่วนของกระบวนการบู๊ต ณ จุดนี้ระบบไฟล์รูทยังไม่ถูกเมาท์ดังนั้นไฟล์คอนฟิกูเรชันใด ๆ ที่เก็บไว้จะไม่ปรากฏให้เห็น

ในขณะที่พื้นที่สว็อปถูกติดตั้งหลังจากระบบไฟล์รูทมีเหตุผลที่initramfsกระบวนการเริ่มต้นใช้งานเพื่อเข้าถึงพื้นที่สว็อป: เมื่อคุณจำศีลคอมพิวเตอร์ของคุณเนื้อหาของหน่วยความจำและสถานะของระบบจะถูกเขียนเพื่อสลับ ในการดำเนินการต่อจากโหมดไฮเบอร์เนตจำเป็นต้องตรวจสอบว่าพื้นที่สว็อปมีรูปภาพไฮเบอร์เนตซึ่งจะต้องใช้วลีรหัสผ่านหรือไม่

หากคุณไม่ทราบการสูญเสียความสามารถในการที่จะกลับมาจากการจำศีลคุณสามารถปิดการทำงานนี้โดยการแก้ไขและแสดงความคิดเห็นออกบรรทัดที่เริ่มต้นด้วย/etc/initramfs-tools/conf.d/resume RESUME=หลังจากทำการเปลี่ยนแปลงแล้วให้รันupdate-initramfs -uเพื่ออัพเดตinitramfsภาพ


อ้าขอบคุณ! ฉันไม่แน่ใจว่าฉันต้องการที่จะเสียสละจำศีล ฉันไม่ได้ใช้บ่อย แต่เมื่อแบตเตอรีหมดลงโดยไม่ทันสังเกตเห็นมันมีประโยชน์ คุณรู้หรือไม่ว่ามีวิธีให้ cryptsetup ใช้รหัสผ่านเดิมซ้ำอีกครั้งสำหรับ /
แบรด

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