ค้นหาเว็บไซต์

วิธีเข้ารหัสไดรฟ์โดยใช้ LUKS ใน Fedora Linux


ในบทความนี้ เราจะอธิบายสั้นๆ เกี่ยวกับการเข้ารหัสแบบบล็อก การตั้งค่า Linux Unified Key (LUKS) และอธิบายคำแนะนำในการสร้างอุปกรณ์บล็อกที่เข้ารหัสใน Fedora Linux

บล็อกการเข้ารหัสอุปกรณ์

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

ความรู้เบื้องต้นเกี่ยวกับ LUKS

LUKS (การตั้งค่าคีย์แบบรวม Linux) เป็นมาตรฐานสำหรับการเข้ารหัสอุปกรณ์บล็อกใน Linux ซึ่งทำงานโดยการสร้างรูปแบบบนดิสก์สำหรับข้อมูลและนโยบายการจัดการข้อความรหัสผ่าน/คีย์ . โดยจัดเก็บข้อมูลการตั้งค่าที่จำเป็นทั้งหมดไว้ในส่วนหัวของพาร์ติชัน (หรือที่เรียกว่า ส่วนหัว LUKS) จึงทำให้คุณสามารถขนส่งหรือย้ายข้อมูลได้อย่างราบรื่น

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

การเตรียมอุปกรณ์บล็อก

คำแนะนำต่อไปนี้แสดงขั้นตอนในการสร้างและกำหนดค่าอุปกรณ์บล็อกที่เข้ารหัสหลังการติดตั้ง

ติดตั้งแพ็คเกจ cryptsetup

dnf install cryptsetup-luks

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

dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

คำเตือน: คำสั่งข้างต้นจะล้างข้อมูลที่มีอยู่ในอุปกรณ์

การฟอร์แมตอุปกรณ์ที่เข้ารหัส

จากนั้น ใช้เครื่องมือบรรทัดคำสั่ง cryptsetup เพื่อจัดรูปแบบอุปกรณ์เป็นอุปกรณ์ที่เข้ารหัส dm-crypt/LUKS

cryptsetup luksFormat /dev/sdb1

หลังจากรันคำสั่ง คุณจะได้รับแจ้งให้ป้อน YES (เป็นตัวพิมพ์ใหญ่) เพื่อระบุข้อความรหัสผ่านสองครั้งเพื่อให้อุปกรณ์ได้รับการฟอร์แมตเพื่อใช้ ดังที่แสดงในภาพหน้าจอต่อไปนี้

เพื่อตรวจสอบว่าการดำเนินการสำเร็จหรือไม่ ให้รันคำสั่งต่อไปนี้

cryptsetup isLuks /dev/sdb1 && echo Success

คุณสามารถดูสรุปข้อมูลการเข้ารหัสสำหรับอุปกรณ์ได้

cryptsetup luksDump /dev/sdb1

การสร้างแผนที่เพื่ออนุญาตการเข้าถึงเนื้อหาที่ถอดรหัส

ในส่วนนี้ เราจะกำหนดค่าวิธีเข้าถึงเนื้อหาที่ถอดรหัสของอุปกรณ์ที่เข้ารหัส เราจะสร้างการแมปโดยใช้อุปกรณ์เคอร์เนล-ผู้ทำแผนที่ ขอแนะนำให้สร้างชื่อที่มีความหมายสำหรับการแมปนี้ เช่น luk-uuid (โดยที่ <uuid> ถูกแทนที่ด้วย LUKS UUID ของอุปกรณ์ ( ตัวระบุที่ไม่ซ้ำแบบสากล)

หากต้องการรับอุปกรณ์ที่เข้ารหัสของคุณ UUID ให้เรียกใช้คำสั่งต่อไปนี้

cryptsetup luksUUID /dev/sdb1

หลังจากได้รับ UUID แล้ว คุณสามารถสร้างชื่อแผนที่ตามที่แสดง (คุณจะได้รับแจ้งให้ป้อนข้อความรหัสผ่านที่สร้างไว้ก่อนหน้านี้)

cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

หากคำสั่งสำเร็จ โหนดอุปกรณ์ชื่อ /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c ซึ่งแสดงถึงอุปกรณ์ที่ถอดรหัสแล้ว

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

dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

การสร้างระบบไฟล์บนอุปกรณ์ที่แมป

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

หากต้องการสร้างระบบไฟล์ ext4 บนอุปกรณ์ที่แมป ให้รันคำสั่งต่อไปนี้

mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

หากต้องการเมานต์ระบบไฟล์ด้านบน ให้สร้างจุดเมานต์สำหรับมัน เช่น /mnt/encrypted-device จากนั้นเมานต์ดังนี้

mkdir -p /mnt/encrypted-device
mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

เพิ่มข้อมูลการแมปลงใน /etc/crypttab และ /etc/fstab

ต่อไป เราต้องกำหนดค่าระบบให้ตั้งค่าการแมปสำหรับอุปกรณ์โดยอัตโนมัติ รวมทั้งติดตั้งอุปกรณ์เมื่อบูตเครื่อง

คุณควรเพิ่มข้อมูลการแมปในไฟล์ /etc/crypttab ในรูปแบบต่อไปนี้

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

ในรูปแบบข้างต้น:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – คือชื่อแผนที่
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – คือชื่ออุปกรณ์

บันทึกไฟล์และปิด

จากนั้น เพิ่มรายการต่อไปนี้ใน /etc/fstab เพื่อติดตั้งอุปกรณ์ที่แมปโดยอัตโนมัติเมื่อบูตระบบ

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

บันทึกไฟล์และปิด

จากนั้นเรียกใช้คำสั่งต่อไปนี้เพื่อ อัปเดต systemd หน่วยที่สร้างจากไฟล์เหล่านี้

systemctl daemon-reload

สำรองส่วนหัว LUKS

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

เพื่อสำรองส่วนหัว LUKS

mkdir /root/backups  
cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

และเพื่อเรียกคืนส่วนหัว LUKS

cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

นั่นคือทั้งหมด! ในบทความนี้ เราได้อธิบายวิธีการเข้ารหัสอุปกรณ์บล็อกโดยใช้ LUKS ในการเผยแพร่ Fedora Linux คุณมีข้อสงสัยหรือความคิดเห็นเกี่ยวกับหัวข้อหรือคำแนะนำนี้ โปรดใช้แบบฟอร์มคำติชมด้านล่างเพื่อติดต่อเรา