วิธีการตั้งค่าระบบไฟล์ที่เข้ารหัสและพื้นที่สลับโดยใช้เครื่องมือ 'Cryptsetup' ใน Linux - ตอนที่ 3
LFCE (ย่อมาจาก Linux Foundation Certified Engineer) ได้รับการฝึกอบรมและมีความเชี่ยวชาญในการติดตั้ง จัดการ และแก้ไขปัญหาบริการเครือข่ายในระบบ Linux และรับผิดชอบด้าน การออกแบบ การใช้งาน และการบำรุงรักษาสถาปัตยกรรมระบบอย่างต่อเนื่อง
ขอแนะนำโปรแกรมการรับรอง Linux Foundation (LFCE)
แนวคิดเบื้องหลังการเข้ารหัสคือการอนุญาตให้เฉพาะบุคคลที่เชื่อถือได้เท่านั้นที่สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนของคุณได้ และเพื่อป้องกันไม่ให้ข้อมูลตกไปอยู่ในมือของผู้ไม่หวังดีในกรณีที่เครื่อง/ฮาร์ดดิสก์ของคุณสูญหายหรือถูกขโมย
กล่าวง่ายๆ ก็คือ คีย์ใช้เพื่อ "ล็อก " การเข้าถึงข้อมูลของคุณ เพื่อให้สามารถใช้งานได้เมื่อระบบทำงานและปลดล็อกโดยผู้ใช้ที่ได้รับอนุญาต นี่หมายความว่าหากบุคคลพยายามตรวจสอบเนื้อหาของดิสก์ (เสียบเข้ากับระบบของตนเองหรือโดยการบูตเครื่องด้วย LiveCD/DVD/USB) เขาจะค้นหาเฉพาะข้อมูลที่อ่านไม่ได้แทนที่จะเป็นไฟล์จริง
ในบทความนี้ เราจะพูดถึงวิธีตั้งค่าระบบไฟล์ที่เข้ารหัสด้วย dm-crypt (ย่อมาจาก Device Mapper และ Cryptographic) ซึ่งเป็นเครื่องมือเข้ารหัสระดับเคอร์เนลมาตรฐาน โปรดทราบว่าเนื่องจาก dm-crypt เป็นเครื่องมือระดับบล็อก จึงสามารถใช้เพื่อเข้ารหัสอุปกรณ์ พาร์ติชัน หรืออุปกรณ์วนซ้ำแบบเต็มเท่านั้น (จะไม่ทำงานบนไฟล์หรือไดเรกทอรีปกติ)
การเตรียมไดรฟ์/พาร์ติชัน/อุปกรณ์วนซ้ำสำหรับการเข้ารหัส
เนื่องจากเราจะล้างข้อมูลทั้งหมดที่มีอยู่ในไดรฟ์ที่เราเลือก (/dev/sdb) ก่อนอื่น เราจำเป็นต้องสำรองข้อมูลไฟล์สำคัญใดๆ ที่มีอยู่ในพาร์ติชันนั้นก่อนดำเนินการต่อไป.
ล้างข้อมูลทั้งหมดจาก /dev/sdb เราจะใช้คำสั่ง dd ที่นี่ แต่คุณสามารถทำได้ด้วยเครื่องมืออื่นๆ เช่น shred ต่อไป เราจะสร้างพาร์ติชันบนอุปกรณ์นี้ /dev/sdb1 ตามคำอธิบายในส่วนที่ 4 – สร้างพาร์ติชันและระบบไฟล์ใน Linux ของซีรีส์ LFCS
dd if=/dev/urandom of=/dev/sdb bs=4096
การทดสอบการสนับสนุนการเข้ารหัส
ก่อนที่เราจะดำเนินการต่อไป เราต้องแน่ใจว่าเคอร์เนลของเราได้รับการคอมไพล์ด้วยการสนับสนุนการเข้ารหัส:
grep -i config_dm_crypt /boot/config-$(uname -r)
ตามที่ระบุไว้ในภาพด้านบน จำเป็นต้องโหลดโมดูลเคอร์เนล dm-crypt เพื่อตั้งค่าการเข้ารหัส
การติดตั้ง Cryptsetup
Cryptsetup เป็นอินเทอร์เฟซส่วนหน้าสำหรับการสร้าง กำหนดค่า เข้าถึง และจัดการระบบไฟล์ที่เข้ารหัสโดยใช้ dm-crypt
aptitude update && aptitude install cryptsetup [On Ubuntu]
yum update && yum install cryptsetup [On CentOS]
zypper refresh && zypper install cryptsetup [On openSUSE]
การตั้งค่าพาร์ติชันที่เข้ารหัส
โหมดการทำงานเริ่มต้นสำหรับ cryptsetup คือ LUKS (Linux Unified Key Setup) ดังนั้นเราจะยึดตามนั้น เราจะเริ่มต้นด้วยการตั้งค่าพาร์ติชัน LUKS และข้อความรหัสผ่าน:
cryptsetup -y luksFormat /dev/sdb1
คำสั่งด้านบนรัน cryptsetup ด้วยพารามิเตอร์เริ่มต้น ซึ่งสามารถแสดงรายการด้วย
cryptsetup --version
หากคุณต้องการเปลี่ยนพารามิเตอร์ cipher, hash หรือ key คุณสามารถใช้ –cipher, < b>–hash และ –key-size แฟล็ก ตามลำดับ โดยค่าที่นำมาจาก /proc/crypto
ต่อไปเราต้องเปิดพาร์ติชัน LUKS (เราจะได้รับพร้อมท์ให้ใส่ข้อความรหัสผ่านที่เราป้อนไว้ก่อนหน้านี้) หากการตรวจสอบสิทธิ์สำเร็จ พาร์ติชันที่เข้ารหัสของเราจะพร้อมใช้งานภายใน /dev/mapper ด้วยชื่อที่ระบุ:
cryptsetup luksOpen /dev/sdb1 my_encrypted_partition
ตอนนี้ เราจะฟอร์แมตพาร์ติชันเป็น ext4
mkfs.ext4 /dev/mapper/my_encrypted_partition
และสร้างจุดเมานท์เพื่อเมานต์พาร์ติชั่นที่เข้ารหัส สุดท้ายนี้ เราอาจต้องการยืนยันว่าการดำเนินการเมานต์สำเร็จหรือไม่
mkdir /mnt/enc
mount /dev/mapper/my_encrypted_partition /mnt/enc
mount | grep partition
เมื่อคุณเขียนหรืออ่านจากระบบไฟล์ที่เข้ารหัสของคุณเสร็จแล้ว เพียงยกเลิกการต่อเชื่อม
umount /mnt/enc
และปิดพาร์ติชัน LUKS โดยใช้
cryptesetup luksClose my_encrypted_partition
การทดสอบการเข้ารหัส
สุดท้ายนี้ เราจะตรวจสอบว่าพาร์ติชันที่เข้ารหัสของเราปลอดภัยหรือไม่:
1. เปิดพาร์ติชัน LUKS
cryptsetup luksOpen /dev/sdb1 my_encrypted_partition
2. กรอกข้อความรหัสผ่านของคุณ
3. ติดตั้งพาร์ติชัน
mount /dev/mapper/my_encrypted_partition /mnt/enc
4. สร้างไฟล์จำลองภายในจุดเมานท์
echo “This is Part 3 of a 12-article series about the LFCE certification” > /mnt/enc/testfile.txt
5. ตรวจสอบว่าคุณสามารถเข้าถึงไฟล์ที่คุณเพิ่งสร้างขึ้นได้
cat /mnt/enc/testfile.txt
6. ถอนติดตั้งระบบไฟล์
umount /mnt/enc
7. ปิดพาร์ติชัน LUKS
cryptsetup luksClose my_encrypted_partition
8. ลองเมาต์พาร์ติชันเป็นระบบไฟล์ปกติ มันควรจะบ่งบอกถึงข้อผิดพลาด
mount /dev/sdb1 /mnt/enc
เข้ารหัส Swap Space เพื่อความปลอดภัยเพิ่มเติม
ข้อความรหัสผ่านที่คุณป้อนก่อนหน้านี้เพื่อใช้พาร์ติชันที่เข้ารหัสจะถูกจัดเก็บไว้ในหน่วยความจำ RAM ในขณะที่เปิดอยู่ หากมีใครได้กุญแจนี้มา เขาจะสามารถถอดรหัสข้อมูลได้ นี่เป็นเรื่องง่ายโดยเฉพาะในกรณีของแล็ปท็อป เนื่องจากในขณะที่ไฮเบอร์เนตเนื้อหาของ RAM จะถูกเก็บไว้ในพาร์ติชั่นสว็อป
เพื่อหลีกเลี่ยงไม่ให้ขโมยสามารถเข้าถึงสำเนาคีย์ของคุณได้ ให้เข้ารหัสพาร์ติชั่นสลับโดยทำตามขั้นตอนเหล่านี้:
1 สร้างพาร์ติชันเพื่อใช้เป็น swap ด้วยขนาดที่เหมาะสม (/dev/sdd1 ในกรณีของเรา) และเข้ารหัสตามที่อธิบายไว้ก่อนหน้านี้ ตั้งชื่อเพียง “swap ” เพื่อความสะดวก'
2.ตั้งค่าเป็น swap และเปิดใช้งาน
mkswap /dev/mapper/swap
swapon /dev/mapper/swap
3. จากนั้น เปลี่ยนรายการที่เกี่ยวข้องใน /etc/fstab
/dev/mapper/swap none swap sw 0 0
4. สุดท้าย แก้ไข /etc/crypttab และรีบูต
swap /dev/sdd1 /dev/urandom swap
เมื่อระบบบูทเสร็จแล้ว คุณสามารถตรวจสอบสถานะของพื้นที่สว็อปได้:
cryptsetup status swap
สรุป
ในบทความนี้ เราได้สำรวจวิธีการเข้ารหัสพาร์ติชันและพื้นที่สลับ ด้วยการตั้งค่านี้ ข้อมูลของคุณควรปลอดภัยมาก รู้สึกอิสระที่จะทดลองและอย่าลังเลที่จะติดต่อเราหากคุณมีคำถามหรือความคิดเห็น เพียงใช้แบบฟอร์มด้านล่าง เรายินดีเป็นอย่างยิ่งที่ได้รับการติดต่อจากคุณ!