การตั้งค่าไดรฟ์ข้อมูลที่เข้ารหัสบน SUSE Linux Enterprise Server นั้นง่ายขึ้นเมื่อคุณแบ่งงานออกเป็นสองชั้น LUKS หรือ Linux Unified Key Setup จะปกป้องอุปกรณ์บล็อก เช่น ดิสก์หรือพาร์ติชั่น หลังจากที่คุณปลดล็อกอุปกรณ์นั้นแล้ว Linux จะแสดงอุปกรณ์ที่แมปไว้ตามปกติภายใต้/dev/mapper/ซึ่งคุณสามารถสร้างระบบไฟล์และเมานต์ได้เหมือนกับอุปกรณ์จัดเก็บข้อมูลอื่นๆ
คู่มือนี้ใช้ดิสก์รองเฉพาะ/dev/sdbเป็นตัวอย่าง ไดรฟ์ที่เชื่อมต่อจะปรากฏที่/data/secureและการแมปที่ปลดล็อกแล้วจะเรียกว่าsecuredataแทนที่ชื่อเหล่านั้นด้วยค่าบนเซิร์ฟเวอร์ของคุณ
หมายเหตุเกี่ยวกับเวอร์ชัน:ขั้นตอนการทำงานผ่านบรรทัดคำสั่งด้านล่างนี้เหมาะสำหรับ SUSE Linux Enterprise Server เวอร์ชันปัจจุบันที่มีการเข้ารหัสcryptsetupเอกสารประกอบ SUSE Linux Enterprise Server 16.0 ที่เผยแพร่ในปี 2026 มีการสนับสนุนการเข้ารหัสใน Cockpit ในขณะที่คู่มือความปลอดภัยและการเสริมความแข็งแกร่งของ SLES 15 SP7 อธิบายเกี่ยวกับพาร์ติชั่นที่เข้ารหัสแบบ LUKS ใน YaST การใช้ CLI ในที่นี้ทำให้มองเห็นแต่ละเลเยอร์ของพื้นที่จัดเก็บข้อมูลได้ชัดเจนและง่ายต่อการแก้ไขปัญหา ดูเอกสารประกอบ SUSE Linux Enterprise Server 16.0และคู่มือการเข้ารหัส SLES 15 SP7สำหรับเอกสารจากผู้ผลิต
LUKS ทำอะไรได้บ้าง และทำอะไรไม่ได้บ้าง
LUKS เป็นรูปแบบมาตรฐานของ Linux สำหรับอุปกรณ์บล็อกที่เข้ารหัสบนดิสก์ โดยจะจัดเก็บข้อมูลเมตาของการเข้ารหัสไว้ในส่วนหัวของ LUKS และอนุญาตให้ไดรฟ์ที่เข้ารหัสหนึ่งตัวมีข้อมูลรับรองการปลดล็อกได้หลายชุดcryptsetupโดยปกติแล้ว Current จะสร้าง LUKS2 เว้นแต่คุณจะร้องขอรูปแบบอื่นอย่างชัดเจน
การเข้ารหัสช่วยปกป้องข้อมูลขณะที่ไม่ได้ใช้งาน หากมีคนขโมยฮาร์ดดิสก์ที่ปิดเครื่องอยู่ พวกเขาจะไม่สามารถอ่านข้อมูลที่เข้ารหัสไว้ได้หากไม่มีคีย์หรือรหัสผ่านที่ถูกต้อง อย่างไรก็ตาม เมื่อปลดล็อกและเชื่อมต่อไดรฟ์แล้ว สิทธิ์การเข้าถึงตามปกติของ Linux จะควบคุมการเข้าถึง LUKS ไม่ได้ปกป้องไฟล์จากกระบวนการที่เข้าถึงระบบไฟล์ที่เชื่อมต่ออยู่แล้วอย่างถูกต้อง
ก่อนที่คุณจะเริ่มต้น
เตรียมสิ่งเหล่านี้ให้พร้อมก่อนเรียกใช้คำสั่งลบข้อมูลถาวร:
- พื้นที่ว่างสำหรับดิสก์หรือพาร์ติชั่นที่จัดเตรียมไว้โดยเฉพาะ คู่มือนี้ใช้
/dev/sdb.
- การเข้าถึงระดับรูทผ่านทาง
sudoเชลล์รูท
- โปรแกรม
cryptsetupยูทิลิตี้ ตรวจสอบกับcryptsetup --versionหากยังไม่ได้ติดตั้ง ให้ติดตั้งแพ็กเกจผ่านกระบวนการจัดการซอฟต์แวร์ของ SUSE ตามปกติ
- รหัสผ่านที่ปลอดภัยและสามารถกู้คืนได้ผ่านกระบวนการตรวจสอบสิทธิ์ที่องค์กรของคุณอนุมัติ
- ทำการสำรองข้อมูลล่าสุดของทุกสิ่งที่สำคัญบนอุปกรณ์เป้าหมาย
คำเตือนสำคัญ: cryptsetup luksFormatการดำเนินการนี้จะเขียนส่วนหัว LUKS ใหม่และทำให้ข้อมูลที่มีอยู่บนอุปกรณ์เป้าหมายไม่สามารถเข้าถึงได้ SUSE ยังเตือนด้วยว่าการแปลงพาร์ติชันที่มีอยู่ให้เป็นพื้นที่จัดเก็บข้อมูลที่เข้ารหัสบนระบบที่กำลังทำงานอยู่จะทำลายข้อมูลในพาร์ติชันนั้น อย่าดำเนินการต่อจนกว่าคุณจะระบุอุปกรณ์เป้าหมายได้อย่างถูกต้อง
ขั้นตอนที่ 1: เลือกแผ่นดิสก์ที่ถูกต้อง
เริ่มต้นด้วยการระบุรายชื่ออุปกรณ์บล็อก:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINTS
lsblk -f
ตรวจสอบขนาด ชื่ออุปกรณ์ ระบบไฟล์ที่มีอยู่ และจุดเชื่อมต่อ ในตัวอย่างนี้/dev/sdbคือดิสก์แยกต่างหากขนาด 20 GB ที่ไม่มีระบบไฟล์เชื่อมต่ออยู่ เซิร์ฟเวอร์ของคุณอาจใช้พาร์ติชัน เช่น/dev/sdb1, ชื่อ NVMe เช่น/dev/nvme1n1p1, หรือดิสก์เสมือน เช่น แทน /dev/vdbก็ได้
คำบรรยายภาพ: ตรวจสอบอุปกรณ์เป้าหมายโดยระบุชื่อ ขนาด และสถานะการเมานต์ก่อนเรียกใช้คำสั่งฟอร์แมต LUKS ใดๆ
อย่าระบุดิสก์โดยใช้เพียงตัวอักษรเท่านั้น ชื่ออุปกรณ์อาจเปลี่ยนแปลงได้หลังจากมีการเปลี่ยนแปลงฮาร์ดแวร์หรือการกำหนดค่าเครื่องเสมือน ก่อนที่จะดำเนินการคำสั่งใดๆ ที่ส่งผลเสียต่อข้อมูล โปรดเปรียบเทียบlsblkกับรายการอุปกรณ์จัดเก็บข้อมูล การตั้งค่าไฮเปอร์ไวเซอร์ หรือข้อมูลการนำเสนอ SAN ของคุณ
ขั้นตอนที่ 2: เริ่มต้นใช้งานอุปกรณ์ด้วย LUKS
สร้างคอนเทนเนอร์ที่เข้ารหัส:
sudo cryptsetup luksFormat /dev/sdb
luksFormatคำสั่งนี้จะเริ่มต้นเมตาเดตาของ LUKS และแจ้งให้ยืนยันและป้อนรหัสผ่าน การตั้งค่าการเข้ารหัสปัจจุบันจะใช้ LUKS2 เป็นค่าเริ่มต้น คุณสามารถตรวจสอบผลลัพธ์ได้ในภายหลังด้วยคำสั่ง:
sudo cryptsetup luksDump /dev/sdb
คำบรรยายภาพ: ขั้นตอนการจัดรูปแบบ LUKS เป็นขั้นตอนที่ทำลายข้อมูล ดังนั้น cryptsetup จึงขอการยืนยันอย่างชัดเจนก่อนที่จะสร้างคอนเทนเนอร์ที่เข้ารหัส
อย่าเพิ่มตัวเลือกการเข้ารหัส ขนาดคีย์ หรือ PBKDF เพียงเพราะคุณเห็นในบทช่วยสอนเก่าๆ Cryptsetup และ SUSE มีค่าเริ่มต้นที่ทันสมัยอยู่แล้ว และการเปลี่ยนแปลงโดยไม่มีข้อกำหนดที่ระบุไว้อาจลดความเข้ากันได้หรือทำให้การกู้คืนทำได้ยากขึ้น
ขั้นตอนที่ 3: เปิดอุปกรณ์ที่เข้ารหัสไว้
คอนเทนเนอร์ LUKS ไม่สามารถฟอร์แมตด้วยระบบไฟล์ปกติได้จนกว่าจะปลดล็อก เปิดคอนเทนเนอร์แล้วสร้างการแมปอุปกรณ์ชื่อsecuredata:
sudo cryptsetup open /dev/sdb securedata
หลังจากป้อนรหัสผ่านแล้ว การแมปที่ถอดรหัสแล้วจะปรากฏดังนี้:
/dev/mapper/securedata
คุณสามารถตรวจสอบได้ด้วย:
sudo cryptsetup status securedata
lsblk -f
คำบรรยายภาพ: การปลดล็อกคอนเทนเนอร์ LUKS จะสร้างอุปกรณ์บล็อกที่แมปไว้ซึ่งตั้งชื่อไว้securedataภายใต้/dev/mapper.
ขั้นตอนที่ 4: สร้างระบบไฟล์บนแผนที่ที่ปลดล็อกแล้ว
เลเยอร์ LUKS เข้ารหัสบล็อกข้อมูล ไม่ได้สร้างไดเร็กทอรีหรือไฟล์ด้วยตัวเอง สร้างระบบไฟล์บนอุปกรณ์ที่แมปไว้ ไม่ใช่บนดิสก์ที่เข้ารหัสแบบดิบ ตัวอย่างนี้ใช้ ext4:
sudo mkfs.ext4 /dev/mapper/securedata
หากมาตรฐานการจัดเก็บข้อมูลของคุณต้องการ XFS หรือระบบไฟล์อื่นที่รองรับ ให้ใช้ระบบไฟล์นั้นแทน กฎสำคัญคือ ระบบไฟล์ต้องอยู่บน/dev/mapper/securedataในขณะที่/dev/sdbยังคงเป็นคอนเทนเนอร์ LUKS ที่เข้ารหัสไว้
คำอธิบายภาพ: สร้างระบบไฟล์ Linux ปกติภายในแมปปิ้งที่ไม่ได้ล็อก ไม่ใช่สร้างโดยตรงบนดิสก์สำรองที่เข้ารหัสไว้
ขั้นตอนที่ 5: สร้างจุดเชื่อมต่อและทดสอบไดรฟ์
สร้างไดเร็กทอรีและเชื่อมต่อระบบไฟล์ใหม่:
sudo mkdir -p /data/secure
sudo mount /dev/mapper/securedata /data/secure
df -h /data/secure
ในขั้นตอนนี้ ไดรฟ์พร้อมใช้งานแล้ว สร้างไฟล์ทดสอบขนาดเล็กหากเหมาะสมกับสภาพแวดล้อมของคุณ อ่านไฟล์นั้นกลับมา แล้วลบออก การตรวจสอบนี้ยืนยันเส้นทางแบบเต็มจาก LUKS unlock ผ่านระบบไฟล์ไปยังไดเร็กทอรีที่เมานต์ไว้
คำบรรยายภาพ: การทดสอบการเมานต์ที่สำเร็จจะยืนยันว่าการแมปที่ถอดรหัสแล้วและระบบไฟล์สามารถใช้งานได้ก่อนที่คุณจะกำหนดค่าพฤติกรรมขณะบูตเครื่อง
ขั้นตอนที่ 6: บันทึก UUID ที่เสถียร
สำหรับการกำหนดค่าแบบถาวร ควรเลือกใช้ตัวระบุที่เสถียรแทนที่จะสันนิษฐานว่าดิสก์จะถูกเรียกว่าอะไรเสมอไป/dev/sdbแสดงทั้ง UUID ของ LUKS และ UUID ของระบบไฟล์:
sudo blkid /dev/sdb
sudo blkid /dev/mapper/securedata
อุปกรณ์ดิบควรรายงานประเภท เช่นcrypto_LUKS. อุปกรณ์ที่แมปแล้วควรรายงานประเภทของระบบไฟล์และ UUID ของตัวเอง โปรดแยก UUID ทั้งสองนี้ให้ชัดเจน: UUID ของ LUKS ใช้ระบุคอนเทนเนอร์ที่เข้ารหัส ในขณะที่ UUID ของระบบไฟล์ใช้ระบุระบบไฟล์ภายในคอนเทนเนอร์นั้น
คำบรรยายภาพ: คอนเทนเนอร์ที่เข้ารหัสและระบบไฟล์ภายในมีตัวระบุที่แยกจากกัน ซึ่งใช้เพื่อวัตถุประสงค์ในการกำหนดค่าที่แตกต่างกัน
ขั้นตอนที่ 7: กำหนดค่าการปลดล็อกและการเชื่อมต่อเมื่อบูตเครื่อง
ในระบบ Linux ที่ใช้ systemd นั้น/etc/crypttabจะอธิบายถึงอุปกรณ์บล็อกที่เข้ารหัสซึ่งควรเปิดใช้งานระหว่างการบูต โดยรายการพื้นฐานที่ต้องป้อนรหัสผ่านจะมีสี่ช่อง ได้แก่ ชื่อการแมป อุปกรณ์ที่เข้ารหัส ไฟล์คีย์ และตัวเลือก
โดยใช้ UUID ของ LUKS จากขั้นตอนก่อนหน้า ตัวอย่างการป้อนข้อมูลคือ:
securedata UUID=<LUKS-UUID> none luks
จากนั้นเพิ่มระบบไฟล์ที่เมานต์แล้วลงใน/etc/fstab. คุณสามารถอ้างอิงอุปกรณ์ที่แมปไว้หรือ UUID ของระบบไฟล์ได้ คำแนะนำของ SUSE สำหรับ SLES 15 SP7 ระบุว่า YaST มักใช้ชื่ออุปกรณ์แมปเปอร์สำหรับจุดเมานต์ LUKS ที่กำหนดค่าใหม่ เนื่องจากทำงานได้อย่างมีประสิทธิภาพกับตัวสร้าง systemd ตัวอย่างการป้อนข้อมูลที่ตรงไปตรงมาคือ:
/dev/mapper/securedata /data/secure ext4 defaults 0 2
คำบรรยายภาพ: crypttabรายการนี้จะเปิดคอนเทนเนอร์ที่เข้ารหัส ในขณะที่fstabรายการที่สองจะเชื่อมต่อระบบไฟล์ที่เปิดเผยผ่านอุปกรณ์แมปเปอร์
ก่อนรีบูตเครื่อง ให้ตรวจสอบข้อผิดพลาดง่ายๆ ก่อน โดยสามารถเรียกใช้คำสั่งต่อไปนี้:
sudo systemctl daemon-reload
sudo mount -a
mount -aช่วยตรวจจับfstabปัญหาได้หลายอย่าง แต่ไม่สามารถทดแทนการทดสอบลำดับการปลดล็อกขณะบูตเครื่องจริงได้
ขั้นตอนที่ 8: รีบูตและตรวจสอบเส้นทางการบูตจริง
สำหรับไดรฟ์ข้อมูลสำรองทั่วไป การแก้ไข/etc/crypttabและ/etc/fstabการกำหนดค่าถาวรมักเป็นหัวใจสำคัญ รีบูตเซิร์ฟเวอร์และตรวจสอบว่าคุณได้รับข้อความแจ้งให้ป้อนรหัสผ่านตามที่คาดไว้ การแมป LUKS เปิดขึ้น และระบบไฟล์เชื่อมต่อแล้ว:
sudo reboot
lsblk -f
sudo cryptsetup status securedata
findmnt /data/secure
หากอุปกรณ์ที่เข้ารหัสมีความจำเป็นในช่วงเริ่มต้นของขั้นตอน initramfs—เช่น เนื่องจากอุปกรณ์นั้นมีพื้นที่จัดเก็บข้อมูลที่จำเป็นก่อนที่ระบบไฟล์รูทปกติจะพร้อมใช้งานอย่างสมบูรณ์—การออกแบบของคุณอาจต้องสร้าง initramfs ใหม่ด้วยdracutอย่าเพิ่มการสร้าง initramfs ใหม่โดยอัตโนมัติในทุกการตั้งค่าไดรฟ์ข้อมูล ความจำเป็นในการทำเช่นนั้นขึ้นอยู่กับว่าอุปกรณ์นั้นต้องพร้อมใช้งานเมื่อใดในระหว่างการบูต
คำบรรยายภาพ: การสร้าง initramfs ใหม่dracutมีความสำคัญสำหรับพื้นที่จัดเก็บข้อมูลที่เข้ารหัสในช่วงเริ่มต้นการบูต สำหรับวอลุ่มข้อมูลรองทั่วไป อาจต้องการเพียงแค่crypttab, fstab, และการทดสอบการรีบูตเท่านั้น
สำรองข้อมูลส่วนหัว LUKS
ส่วนหัวของไฟล์ LUKS ประกอบด้วยข้อมูลเมตาและข้อมูลช่องคีย์ที่สำคัญ หลังจากที่ไดรฟ์ทำงานแล้ว ควรพิจารณาสำรองข้อมูลส่วนหัวแบบออฟไลน์:
sudo cryptsetup luksHeaderBackup /dev/sdb --header-backup-file /root/securedata-luks-header.img
จากนั้นย้ายไฟล์สำรองข้อมูลไปยังตำแหน่งที่ปลอดภัยซึ่งแยกต่างหากจากดิสก์ที่เข้ารหัสไว้ ให้ถือว่าไฟล์สำรองข้อมูลนี้มีความสำคัญ: การสำรองข้อมูลเฉพาะส่วนหัวพร้อมรหัสผ่านที่ถูกต้องในขณะที่ทำการสำรองข้อมูลอาจเพียงพอที่จะถอดรหัสพื้นที่ข้อมูลได้ โครงการ cryptsetup ได้อธิบายพฤติกรรมนี้ไว้ในคำถามที่พบบ่อย (FAQ ) อย่างเป็นทางการของโครงการ cryptsetup แล้ว
ข้อผิดพลาดทั่วไปที่ผู้เริ่มต้นควรหลีกเลี่ยง
| ความผิดพลาด | ทำไมเรื่องนี้ถึงสำคัญ | แนวทางที่ปลอดภัยกว่า |
กำลังทำงานluksFormatบนดิสก์ที่ไม่ถูกต้อง | ข้อมูลที่มีอยู่จะไม่สามารถเข้าถึงได้อีกต่อไป | ตรวจสอบชื่ออุปกรณ์ ขนาด จุดเชื่อมต่อ และข้อมูลพื้นที่จัดเก็บข้อมูลก่อน |
การจัดรูปแบบ/dev/sdbด้วย ext4 หลังจากสร้าง LUKS แล้ว | วิธีนี้จะเขียนทับเลเยอร์ LUKS แทนที่จะสร้างระบบไฟล์ภายในเลเยอร์นั้น | รันmkfsบน/dev/mapper/securedata. |
| ลืมรหัสผ่าน | LUKS ถูกออกแบบมาเพื่อให้ไม่สามารถกู้คืนข้อมูลได้โดยง่ายหากไม่มีรหัสที่ลงทะเบียนไว้ | ใช้กระบวนการกู้คืนข้อมูลลับที่ได้รับการอนุมัติจากองค์กรของคุณ และเก็บรักษาวัสดุสำหรับการกู้คืนที่ผ่านการทดสอบแล้ว |
| สมมติว่าการเข้ารหัสเข้ามาแทนที่สิทธิ์การเข้าถึงในระบบ Linux | ข้อมูลที่เชื่อมต่อแล้วจะพร้อมใช้งานสำหรับกระบวนการที่มีสิทธิ์ในระบบปฏิบัติการเพียงพอ | รักษาความเป็นเจ้าของ สิทธิ์การเข้าถึง นโยบาย SELinux/AppArmor และการควบคุมแอปพลิเคชันให้เหมาะสม |
| การใช้ชื่ออุปกรณ์ที่ไม่เสถียรในการตั้งค่าบูต | ตัวอักษรประจำดิสก์อาจเปลี่ยนแปลงได้ | ให้ใช้ UUID หรือชื่อ mapper ที่เสถียรตามความเหมาะสม |
| ข้ามการทดสอบการรีบูต | การติดตั้งด้วยตนเองสามารถใช้งานได้แม้ว่าการตั้งค่าขณะบูตเครื่องจะไม่ถูกต้องก็ตาม | ทดสอบลำดับการเริ่มต้นระบบใหม่จริงในระหว่างช่วงเวลาการบำรุงรักษา |
YaST และ Cockpit เป็นทางเลือกที่เหมาะสม
หากคุณต้องการใช้งานเวิร์กโฟลว์แบบกราฟิก SUSE มีอินเทอร์เฟซการจัดการที่รองรับให้ใช้งาน คู่มือความปลอดภัยและการเสริมความแข็งแกร่งของ SLES 15 SP7 อธิบายเกี่ยวกับพาร์ติชั่นที่เข้ารหัสใน Expert Partitioner ของ YaST นอกจากนี้ เอกสารประกอบของ SUSE Linux Enterprise Server 16.0 ยังอธิบายการกำหนดค่าพาร์ติชั่นที่เข้ารหัสใน Cockpit รวมถึงรหัสผ่านและตัวเลือกการเข้ารหัส ใช้เอกสารประกอบ Expert Partitioner ของ SLES 15 SP7หรือคู่มือการดูแลระบบ Cockpit ของ SLES 16.0หากมาตรฐานการทำงานของคุณเอื้ออำนวยต่อเครื่องมือเหล่านั้น
เช็คสุดท้าย
การตั้งค่าที่สำเร็จควรใช้งานได้ต่อเนื่องมากกว่าแค่คำสั่งเดียว คุณควรจะสามารถรีบูต ปลดล็อกไดรฟ์ด้วยวิธีที่กำหนด ตรวจสอบว่าsecuredataการแมปทำงานอยู่ ตรวจสอบว่า/data/secureไดรฟ์ถูกเมานต์ และอ่านไฟล์ที่คาดหวังได้ นอกจากนี้ คุณควรทราบด้วยว่ากระบวนการกู้คืนรหัสผ่านและการสำรองข้อมูลส่วนหัว LUKS ถูกจัดเก็บไว้ที่ใด
นี่คือแบบจำลองทางความคิดที่มีประโยชน์: ดิสก์ทางกายภาพเก็บคอนเทนเนอร์ LUKS การปลดล็อกจะสร้างอุปกรณ์แมปเปอร์ อุปกรณ์แมปเปอร์เก็บระบบไฟล์ และระบบไฟล์ถูกเมานต์ที่ไดเร็กทอรี เมื่อเข้าใจชั้นต่างๆ เหล่านี้แล้ว การแก้ไขปัญหา LUKS ส่วนใหญ่ก็จะง่ายขึ้นมาก