LUKS: تشفير بيانات القرص الصلب في نظام Linux مع دعم NTFS

تخلاف LUKS تعني إعداد المفتاح الموحد لينكس وهو أسلوب شائع لتشفير القرص المستخدم بواسطة نواة لينكس ويتم تنفيذه بمساعدة حزمة cryptsetup.

أمر cryptsetup على سطر الأوامر يقوم بتشفير قرص الحجم على التجميع باستخدام مفتاح تشفير تماثلي المستمد من كلمة مرور مقدمة في كل مرة يتم فيها توصيل قرص حجم، قسم أو حتى جهاز قرص كامل (حتى عصا USB) في الهرم النظامي للملفات ويستخدم التشفير aes-cbc-essiv:sha256.

Linux Hard Disk Encryption Using LUKS

نظرًا لأن LUKS يمكنه تشفير جميع أجهزة الكتل (أقراص الصلبة، عصي USB، أقراص فلاش، أقسام، مجموعات الأقراص الخاصة الخ) على أنظمة لينكس يُوصى بشدة باستخدامه لحماية وسائط تخزين قابلة للإزالة، أقراص الحواسب المحمولة أو ملفات تبديل لينكس ولا يُوصى باستخدامه لتشفير مستوى الملفات.

NTFS (نظام الملفات ذو التكنولوجيا الجديدة) هو نظام ملفات مملوك تم تطويره بواسطة مايكروسوفت.

يوفر أوبونتو 14.04 الدعم الكامل لتشفير LUKS وأيضًا الدعم الأساسي لـ NTFS لنظام ويندوز بمساعدة حزمة ntfs-3g.

لإثبات فكرتي في هذا البرنامج التعليمي أضفت قرصًا صلبًا جديدًا (الرابع) على صندوق أوبونتو 14.04 (المرجع النظامي للقرص الصلب الجديد هو /dev/sdd) الذي سيتم تقسيمه إلى قسمين.

  1. يتم استخدام قسم واحد (/dev/sdd1 – أساسي) لتشفير LUKS.
  2. ويتم تنسيق القسم الثاني (/dev/sdd5 – تمديد) كـ NTFS للوصول إلى البيانات على نظامي لينكس وويندوز.

أيضًا ستتم تركيب الأقسام تلقائيًا على أوبونتو 14.04 بعد إعادة التشغيل.

الخطوة 1: إنشاء أقسام القرص

1. بعد أن يتم إضافة القرص الصلب الخاص بك جسديًا على جهازك، استخدم الأمر ls لعرض كل /dev/devices (القرص الرابع هو /dev/sdd).

# ls /dev/sd*
List Partitions in Linux

2. قم بفحص القرص الصلب الجديد الذي تمت إضافته باستخدام الأمر fdisk.

$ sudo fdisk –l /dev/sdd
Check Linux Hard Disk

لأنه لم يتم كتابة نظام ملفات بعد، لا يحتوي القرص على جدول تقسيم صحيح بعد.

3. الخطوات التالية تقطع القرص الصلب للحصول على نتيجة تقسيم يتكون من جزئين باستخدام أداة تقسيم الأقراص cfdisk.

$ sudo cfdisk /dev/sdd

4. تُفتح الشاشة التالية في وضع التفاعل مع أداة cfdisk. حدد مساحة القرص الصلب الخاصة بك Free space وانتقل إلى الخيار New باستخدام أسهم المفاتيح اليمينية واليسارية.

cfdisk Interactive Mode

5. اختر نوع التقسيم الخاص بك كـ Primary واضغط على Enter.

Select Your Partition Type

6. اكتب حجم التقسيم المطلوب الخاص بك بالميجابايت MB.

Write Down Partition Size

7. قم بإنشاء هذا التقسيم في بداية مساحة القرص الصلب الخاص بك.

Create a Partition

8. انتقل بعد ذلك إلى خيار Type للتقسيم واضغط Enter.

Partition Type

9. يعرض المطالب التالية قائمة بجميع أنواع أنظمة الملفات مع رمزها الرقمي (الرقم الست عشري). سيتم تشفير هذا التقسيم بـ Linux LUKS لذا اختر رمز 83 واضغط Enter مرة أخرى لإنشاء التقسيم.

Enter File System Type

10. يتم إنشاء التقسيم الأول ويعود موجه أداة cfdisk إلى البداية. لإنشاء التقسيم الثاني المستخدم كـ NTFS، حدد المساحة المتبقية Free space، انتقل إلى الخيار New واضغط على مفتاح Enter.

Create New Partition

11. في هذا الوقت، سيكون التقسيم تابعًا للتوسيع Extended Logical. لذلك، توجه إلى الخيار Logical ثم اضغط ثانيةً على Enter.

Select Logical Partition Type

12. قم بإدخال حجم التقسيم مرة أخرى. إذا كنت ترغب في استخدام المساحة المتبقية كتقسيم جديد، اترك القيمة الافتراضية للحجم واضغط فقط Enter.

Enter Size of Partition

13. اختر نوع كود التقسيم مرة أخرى. لنظام الملفات NTFS، اختر رمز الحجم 86.

Select Partition Type

14. بعد مراجعة والتحقق من التقسيمات، حدد Write، وأجب نعم على سؤال التفاعل التالي ثم Quit للخروج من أداة cfdisk.

Write Partition Table to Disk
Confirm Changes
Quit to leave cfdisk utility

تهانينا! تم إنشاء التقسيمات الخاصة بك بنجاح وهي الآن جاهزة ليتم تهيئتها واستخدامها.

15. للتحقق من جدول التقسيم على القرص مرة أخرى، أصدر أمر fdisk مرة أخرى لعرض معلومات مفصلة حول جدول التقسيم.

$ sudo fdisk –l /dev/sdd
Confirm Parition Table

الخطوة 2: إنشاء نظام ملفات التقسيم

نظام ملفات NTFS

16. لإنشاء نظام ملفات NTFS على التقسيم الثاني، قم بتشغيل أمر mkfs.

$ sudo mkfs.ntfs /dev/sdd5
Create NTFS Filesystem

17. لجعل التقسيم متاحًا، يجب تثبيته على نظام الملفات في نقطة تثبيت. قم بتثبيت التقسيم الثاني على القرص الرابع إلى نقطة التثبيت /opt باستخدام أمر mount.

$ sudo mount /dev/sdd5 /opt

18. بعد ذلك، قم بالتحقق مما إذا كانت القسم متاحة ومدرجة في ملف /etc/mtab باستخدام أمر cat.

$ cat /etc/mtab
Check Partition Availability

19. لفصل القسم، استخدم الأمر التالي.

$ sudo umount /opt
EXT4 LUKS

20. تأكد من تثبيت حزمة cryptsetup على النظام الخاص بك.

$ sudo apt-get install cryptsetup		[On Debian Based Systems]

# yum install cryptsetup				[On RedHat Based Systems]

21. الآن حان الوقت لتهيئة القسم الأول على القرص الصلب الرابع بنظام الملفات ext4 عبر إصدار الأمر التالي.

$ sudo luksformat  -t ext4  /dev/sdd1

أجب بـ “YES” بالأحرف الكبيرة عند السؤال “هل أنت متأكد؟” وأدخل كلمة المرور المرغوبة ثلاث مرات.

Format Partition

ملاحظة: اعتمادًا على حجم القسم الخاص بك وسرعة القرص الصلب، قد يستغرق إنشاء نظام الملفات وقتًا طويلاً.

22. يمكنك أيضًا التحقق من حالة جهاز القسم.

$ sudo cryptsetup luksDump  /dev/sdd1
Verify Partition Status

23. يدعم LUKS إضافة حد أقصى من 8 كلمات مرور. لإضافة كلمة مرور، استخدم الأمر التالي.

$ sudo cryptsetup luksAddKey /dev/sdd1
Add a Password

لإزالة كلمة مرور، استخدم.

$ sudo cryptsetup luksRemoveKey /dev/sdd1
Remove a Password

24. لكي يكون هذا القسم المشفر نشطًا، يجب أن يحتوي على إدخال اسم (يتم تهيئته) إلى دليل /dev/mapper بمساعدة حزمة cryptsetup.

تتطلب هذه الإعدادات بنية الأمر التالية:

$ sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

حيث يمكن أن يكون “اسم الجهاز” أي اسم وصفي تفضله! (لقد أطلقت عليه اسم crypted_volume). ستبدو الأمر الفعلي كما هو موضح أدناه.

$ sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume
Active Encrypted Partition

25. ثم تحقق مما إذا كان جهازك مدرجًا على الديريكتوري /dev/mapper ، وصلة رمزية، وحالة الجهاز.

$ ls /dev/mapper
$ ls –all /dev/mapper/encrypt_volume
Verify Encrypted Partition
$ sudo cryptsetup –v status encrypt_volume
Encrypted Partition Status

26. الآن لجعل جهاز التقسيم متاحًا على نطاق واسع، قم بتثبيته على نظامك تحت نقطة تثبيت باستخدام أمر mount.

$ sudo mount  /dev/mapper/crypted_volume  /mnt
Mount Encrypted Partition

كما يمكن رؤية أن التقسيم مثبت وقابل للوصول لكتابة البيانات.

27. لجعله غير متاح، قم بإلغاء تثبيته من نظامك وإغلاق الجهاز.

$ sudo umount  /mnt
$ sudo cryptsetup luksClose crypted_volume
Umount Encrypted Partition

الخطوة 3: تثبيت التقسيم تلقائيًا

إذا كنت تستخدم قرصًا صلبًا ثابتًا وتحتاج إلى تثبيت كلا التقسيمتين بشكل تلقائي بعد إعادة التشغيل، يجب عليك اتباع هذين الخطوتين.

28. قم أولاً بتعديل ملف /etc/crypttab وأضف البيانات التالية.

$ sudo nano /etc/crypttab
  1. اسم الهدف: اسم وصفي لجهازك (انظر النقطة أعلاه 22 بشأن EXT4 LUKS).
  2. محرك المصدر: تقسيم القرص الصلب الذي تم تهيئته لـ LUKS (انظر النقطة أعلاه 21 بشأن EXT4 LUKS).
  3. ملف المفتاح: اختر لا شيء
  4. الخيارات: حدد luks

ستبدو السطر النهائي كما يلي.

encrypt_volume               /dev/sdd1          none       luks
Mount Partition Automatically

29. ثم عدل ملف /etc/fstab وحدد اسم جهازك، نقطة التثبيت، نوع نظام الملفات وخيارات أخرى.

$ sudo nano /etc/fstab

في السطر الأخير، استخدم الصيغة التالية.

/dev/mapper/device_name (or UUID)	/mount_point     filesystem_type     options    dump   pass

ثم أضف المحتوى الخاص بك.

/dev/mapper/encrypt_volume      /mnt    ext4    defaults,errors=remount-ro     0     0
Add Partition Entry in Fstab

30. للحصول على معرف UUID للجهاز، استخدم الأمر التالي.

$ sudo blkid
Get Device UUID

31. لإضافة نوع القسم NTFS الذي تم إنشاؤه سابقًا ، استخدم نفس الصيغة كما هو موضح أعلاه في سطر جديد في fstab (يتم استخدام إعادة توجيه الملفات في Linux).

$ sudo su -
# echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab
Add NTFS Partition in fstab

32. للتحقق من التغييرات، قم بإعادة تشغيل الجهاز الخاص بك reboot، اضغط على Enter بعد رسالة التمهيد “Starting configure network device” واكتب كلمة مرور الجهاز passphrase.

Reboot Machine
Verify Partition is Mounted Automatically

كما يمكنك أن ترى تم توصيل كلاً من أقسام القرص تلقائيًا على تسلسل نظام الملفات في أوبونتو. كنصيحة، لا تستخدم أقراص التشفير تلقائيًا من ملف fstab على الخوادم البعيدة جسديًا إذا كان لديك القدرة على الوصول إلى تسلسل إعادة التشغيل لتوفير كلمة مرور القرص المشفر.

يمكن تطبيق نفس الإعدادات على جميع أنواع وسائط التخزين القابلة للإزالة مثل قرص USB، ذاكرة فلاشية، قرص صلب خارجي، إلخ لحماية البيانات الهامة أو السرية أو الحساسة في حالات التنصت أو السرقة.

Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/