เมานต์ LUKS เข้ารหัสฮาร์ดไดรฟ์ตอนบูต


24

ฉันมี Xubuntu 14.04 บนอุปกรณ์ SSD (คนแรกได้รับการเข้ารหัสอย่างถูกต้องในช่วง intallation) นอกจากนี้ผมมีฮาร์ดดิสก์ที่มีพาร์ทิชันที่เข้ารหัสด้วยข้อมูลพิเศษที่ฉันต้องการที่จะติดใน/ mnt / HDD สำหรับการทำสิ่งเหล่านี้ฉันทำตามขั้นตอนต่อไป:

(ก่อนหน้านี้ฉันได้เข้ารหัสดิสก์ด้วย LUKS ที่ติดตามโพสต์นี้http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/ )

ตรวจสอบ UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

ทำ keyfileด้วยวลีรหัสผ่านที่ถูกต้องและบันทึกไว้ในหน้าแรกของฉัน(ซึ่งเข้ารหัสด้วย)

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

เพิ่มรหัส

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

รายการใหม่ใน / etc / crypttab

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

อัพเดต ramdisk เริ่มต้น

sudo update-initramfs -u -k all

จากนั้นเพื่อทดสอบฉันใช้คำสั่ง follow เพื่อเริ่ม cryptdisks:

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

วิธีตรวจสอบhddencryptedถูกแมป:

ls /dev/mapper/
control  hddencrypted

สร้างจุดยึด

mkdir /mnt/hdd

รายการใหม่ใน / etc / fstab

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

ตรวจสอบ fstab โดยไม่ต้องรีบูท:

sudo mount -a

เมานต์พาร์ติชันที่เข้ารหัสเมื่อบูต

ตอนนี้ฉันได้ติดตั้งใน / mnt / hdd ตามที่เสนอ แต่ฉันอยากทำโดยอัตโนมัติหลังจากรีบูต แต่ก่อนที่ฉันจะสามารถเข้าสู่ระบบฉันได้รับข้อผิดพลาดนี้:

the disk drive for /mnt/hdd is not ready yet or not permit

ทั้งหมดนี้ทำให้ฉันคิดว่า/ etc / crypttabไม่สามารถเข้าถึง keyfile ซึ่งอยู่ในหน้าแรกของฉัน(พาร์ติชันเข้ารหัสอื่น ๆ ) ฉันไม่ทราบลำดับที่ระบบตามเพื่อไม่เข้ารหัสและติดตั้งหน่วย หน้าแรกของฉันควรไม่ได้เข้ารหัสก่อน HDD ของฉันเพื่อให้สามารถเข้าถึงการอ่านคีย์ไฟล์

ฉันขอขอบคุณความเข้าใจที่ลึกซึ้งว่าทำไมสิ่งนี้จึงเกิดขึ้น

อัปเดต: หากฉันค้นหาคีย์ไฟล์ใน/ boot (ไม่มีการเข้ารหัส) แทนที่จะเป็นใน/ home / [USERNAME] (เข้ารหัส) the / dev / sda1และอัปเดตรายการใน/ etc / crypttabจะถูกติดตั้งอย่างสมบูรณ์ในเวลาบูต


จะ/home/$USERถูกเข้ารหัสอย่างไร? การเข้ารหัสดิสก์เต็มรูปแบบเช่น LUKS หรืออิงจาก ecryptfs หรือไม่
David Foerster

คำตอบ:


9

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

เพื่อหลีกเลี่ยงไฟล์สำคัญในระบบไฟล์ที่ไม่ได้เข้ารหัสสามารถใช้รหัสผ่านสำหรับการถอดรหัสได้ สร้างรหัสผ่านที่คาดเดายากสำหรับอุปกรณ์ จากนั้นเปลี่ยนบรรทัดใน / etc / crypttab เป็น

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

และเก็บรายการไว้ใน / etc / fstab โดยไม่ได้แก้ไข Ubuntu 14.04 / 16.04 / 18.04 ขอรหัสผ่านเมื่อเริ่มต้น


การรวมคำตอบของ @ solt87 และคำตอบนี้จะทำให้คำตอบนี้สมบูรณ์

6

ใช้งานได้หรือไม่หากคุณแทนที่ "ค่าเริ่มต้น" ใน fstab ด้วย

rw,suid,dev,exec,auto,user,async,relatime

(ตามหน้า man mountมันเหมือนกับ "ค่าเริ่มต้น" ยกเว้น "user")


1

ตรวจสอบให้แน่ใจพาร์ทิชัน hddencrypted ที่เป็น บริษัท จดทะเบียนหลังจากที่พาร์ทิชันที่บ้านทั้งในและ/etc/fstab /etc/crypttabในฐานะที่เป็นcrypttab (5)manpage รัฐ:

ลำดับของเรกคอร์ดใน crypttab มีความสำคัญเนื่องจากสคริปต์เริ่มตามลำดับวนซ้ำผ่าน crypttab ที่ทำสิ่งเหล่านั้น

นอกจากนี้คุณสามารถลองเพิ่มnoearlyตัวเลือกในพาร์ติชันหลังใน/etc/crypttab:

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

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


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