كيفية إعداد قسم تبديل مشفر على نظام دبيان 12 الحالي

يُعد تشفير قسم التبادل (swap) على نظام Debian 12 الحالي خيارًا مفيدًا لمنع كتابة صفحات الذاكرة وكلمات المرور وأجزاء المستندات وغيرها من البيانات المؤقتة على القرص كنص عادي. بالنسبة للأجهزة التي لا تحتاج إلى وضع الإسبات، توفر Debian تصميمًا بسيطًا: وضع قسم التبادل خلف تشفير dm-crypt العادي، وإنشاء مفتاح تشفير عشوائي جديد عند كل عملية تشغيل.

يستخدم هذا الدليل هذا التصميم. وهو يفترض استخدام نظام Debian 12 "bookworm"، وقسم تبديل مخصص ، ونظام systemd كنظام بدء التشغيل. وقد صُممت الأوامر لتكون متحفظة عمدًا، لأن أي خطأ في مسار جهاز الكتلة قد يؤدي إلى الكتابة فوق القسم الخاطئ. لذا، اقرأ نقاط القرار أولًا، ثم استبدل مُعرّفات جهازك بدلًا من نسخ قيم المثال دون تدقيق.

تُفصّل وثائق cryptsetup الخاصة بنظام دبيان عملية التبديل المُشفّر، وتوصي بتعطيل التبديل، ثم إضافة القسم باستخدام /etc/crypttabالأمر المناسب /dev/urandom، ثم الانتقال /etc/fstabإلى الجهاز المُعيّن، ثم إعادة تفعيل التبديل. راجع ملف README الخاص بـ cryptsetup في دبيان . كما يُوثّق دليل crypttab(5) الخاص بنظام دبيان 12 حقول crypttab وخيارات dm-crypt العادية.

هل ينبغي عليك استخدام عملية تبديل مشفرة بمفتاح عشوائي؟

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

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

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

هل مساحة التبديل الخاصة بك محمية بالفعل بتشفير القرص؟

تحقق قبل إجراء أي تغيير. إذا كان مجلد التبديل المنطقي موجودًا بالفعل داخل حاوية مشفرة باستخدام LUKS، فقد لا تُضيف إضافة طبقة dm-crypt أخرى فائدة عملية تُذكر، بل قد تزيد من التعقيد.

swapon --show
lsblk -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PARTUUID

انظر إلى الجهاز الموضح swapon --showوتتبع الأجهزة الأصلية في lsblk. قد يظهر التخطيط غير المشفر الشائع /dev/sda3مباشرةً كنوع swap. أما تثبيت LVM المشفر فقد يُظهر swap أسفل crypto_LUKSالجهاز الأصلي.

رسم توضيحي لطرفية دبيان 12 يُظهر مخرجات أوامر swapon و lsblk و blkid لقسم تبديل موجود ومعرفه الفريد (PARTUUID).
حدد قسم التبديل النشط ومعرّف القسم الثابت قبل إجراء أي تغييرات. أسماء الأجهزة والمعرّفات الموضحة هنا هي أمثلة فقط.

يُعدّ هذا التمييز مهمًا لأن هذه المقالة تتناول تحويل قسم تبديل مخصص غير مشفر . إذا swapon --showأبلغ النظام عن ملف تبديل، فاستخدم إجراءً خاصًا بملفات التبديل. إذا كان التبديل موجودًا بالفعل داخل وحدة تخزين مشفرة، فحدد أولًا ما إذا كانت طبقة ثانية ضرورية بالفعل.

ما الذي يجب عليك تسجيله قبل إيقاف تشغيل خاصية التبديل؟

سجّل مسار القسم بدقة، وحجمه، ومعرّفه الفريد (PARTUUID) . يُعرّف معرّف القسم الفريد (PARTUUID) مدخل جدول الأقسام، ويظل مفيدًا حتى بعد استبدال توقيع التبديل داخل القسم ببيانات مشفرة.

على سبيل المثال:

sudo blkid /dev/sda3
ls -l /dev/disk/by-partuuid/

قد ترى مخرجات تحتوي على قيمة مثل:

PARTUUID="11111111-2222-3333-4444-555555555555"

في الأمثلة أدناه، يكون المسار المستقر المقابل هو:

/dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555

تجنب الاعتماد على /dev/sda3إمكانية تغيير تعداد القرص. تجنب أيضًا استخدام مُعرّف UUID القديم لنظام ملفات التبديل كمُعرّف مصدر طويل الأمد: إذ يُعيد إعداد التبديل المُشفّر إنشاء توقيع التبديل على الجهاز المُشفّر المُعيّن، وبالتالي فإن مُعرّف UUID القديم للتبديل الخام ليس هوية دائمة صحيحة للقسم الأساسي.

1. كيف تقوم بإعداد النظام بشكل آمن؟

قم بتثبيت cryptsetup إذا لم يكن موجودًا بالفعل، ثم قم بعمل نسخة احتياطية من ملفي التكوين اللذين ستقوم بتعديلهما.

sudo apt update
sudo apt install cryptsetup
sudo cp -a /etc/crypttab /etc/crypttab.before-encrypted-swap 2>/dev/null || true
sudo cp -a /etc/fstab /etc/fstab.before-encrypted-swap

إذا /etc/crypttabلم يكن موجودًا بعد، فهذه ليست مشكلة؛ قم بإنشائه عند تعديل التكوين.

بعد ذلك، تأكد من توفر ذاكرة كافية في النظام خلال الفترة القصيرة التي يتم فيها تعطيل مساحة التبديل. ثم قم بتعطيل قسم التبديل الذي تقوم بتحويله فقط. استخدام نفس الجهاز أكثر أمانًا من swapoff -aاستخدام جهاز يحتوي على عدة أقسام تبديل.

sudo swapoff /dev/sda3
swapon --show
رسم توضيحي لطرفية دبيان 12 يوضح تعطيل ملف التبديل وتثبيت حزمة cryptsetup
قم بتعطيل وحدة التبديل المستهدفة قبل تطبيق التشفير عليها. في الأنظمة التي تحتوي على وحدات تبديل متعددة، قم بالعمل على الوحدة المقصودة بدلاً من تعطيل كل شيء دون داعٍ.

لا تقم بتشغيل البرنامج mkswapعلى القسم الخام بعد هذه المرحلة. يجب إنشاء توقيع التبديل على جهاز التعيين المشفر، وليس على قسم الدعم غير المشفر.

2. ما الذي يجب أن يكون موجوداً في /etc/crypttab؟

أنشئ أو عدّل /etc/crypttabوأضف مدخلاً واحداً لتعيين التبديل المشفر. يتبع ما يلي وثائق Debian cryptsetup:

cswap /dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555 /dev/urandom plain,cipher=aes-xts-plain64,size=256,swap

استبدل PARTUUID المثال بالرقم الموجود في نظامك.

تعني الحقول ما يلي:

  • cswapهو اسم أداة الربط، يقوم بإنشاء /dev/mapper/cswap.
  • الحقل الثاني هو قسم التبديل الأساسي الفعلي.
  • /dev/urandomيوفر مفتاحًا عشوائيًا جديدًا كلما تم إنشاء التعيين.
  • plainيختار dm-crypt العادي بدلاً من رأس LUKS الدائم.
  • cipher=aes-xts-plain64,size=256يجعل معلمات plain-dm-crypt صريحة بدلاً من الاعتماد على القيم الافتراضية التي قد تتغير.
  • swapيخبر هذا التكامل الخاص بإعداد التشفير بأن هذا الجهاز المعين هو جهاز تبديل ويجب تهيئته بشكل مناسب.
رسم توضيحي لبرنامج GNU nano على نظام Debian 12 يُظهر تعديل ملف /etc/crypttab باستخدام تعيين cswap الذي يستخدم مسار PARTUUID ثابتًا و /dev/urandom
يقوم إدخال crypttab بإنشاء خريطة مشفرة مؤقتة باسم cswap مع مفتاح جديد من /dev/urandom في كل عملية تنشيط.

يحذر دليل crypttab الخاص بنظام دبيان من أن dm-crypt العادي لا يخزن بيانات التشفير أو التجزئة أو حجم المفتاح في رأس الملف، على عكس LUKS. لذا، يُنصح بتسجيل التشفير وحجم المفتاح بشكل صريح. كما يوثق الدليل discardالآثار الأمنية المترتبة على ذلك، ولكنه يشير إليها فقط؛ فلا تقم بإضافته لمجرد أن جهاز التخزين هو SSD إلا بعد تقييم هذه المفاضلة.

3. ما التغييرات التي طرأت على ملف /etc/fstab؟

ابحث عن سطر التبديل القديم غير المشفر في ملف /etc/fstab. قد يستخدم معرّفًا فريدًا عالميًا (UUID)، أو مسار جهاز، أو معرّفًا ثابتًا آخر. على سبيل المثال:

UUID=OLD-SWAP-UUID none swap sw 0 0

استبدله بالجهاز المشفر المُرتبط:

/dev/mapper/cswap none swap sw 0 0

لا تترك كلا المدخلين نشطين. إذا /dev/mapper/cswapتم تمكين كل من القسم الخام وقسم التبديل، فإنك بذلك تُفقد الغرض من تشفير القسم وتُخاطر بتفعيل القسم بشكل مُربك عند بدء التشغيل.

رسم توضيحي لبرنامج GNU nano على نظام Debian 12 يُظهر ملف /etc/fstab مع تعطيل إدخال التبادل الخام القديم وتكوين /dev/mapper/cswap كمساحة تبادل.
يجب أن يشير ملف fstab إلى جهاز التعيين المشفر، وليس إلى قسم التبديل الخام الأصلي.

يحدد دليل fstab(5) الخاص بنظام Debian تنسيق إدخال التبادل، بينما يشرح swapon(8) كيفية تنشيط الإدخالات التي تم وضع علامة عليها كتبادل.

4. كيف يتم تفعيله والتحقق منه قبل إعادة التشغيل؟

بعد حفظ كلا الملفين، ابدأ عملية الربط المشفر ثم فعّل خيار التبديل. تستخدم وثائق cryptsetup الخاصة بنظام دبيان ما يلي:

sudo cryptdisks_start cswap
sudo swapon -a

والآن تحقق من الطبقات الثلاث جميعها:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS

يجب أن تُظهر النتيجة السليمة وجود تبديل /dev/mapper/cswap، وليس مباشرةً على القسم الأصلي. cryptsetup status cswapيجب أن يُشير التقرير إلى أن التعيين نشط.

إذا cryptdisks_startلم يكن هذا الخيار متاحًا في نظامك، فلا تستخدم أوامرًا مُتلفة. تأكد مجددًا من cryptsetupتثبيت الحزمة وصحة صيغة ملف crypttab. يمكنك أيضًا ترك عملية إقلاع دبيان العادية تُنشئ الربط بعد إكمال إعدادات الاستئناف الموضحة أدناه. يستخدم دبيان 12 مُولِّدات systemd لترجمة إعدادات crypttab وfstab إلى وحدات وقت الإقلاع.

5. هل تحتاج إلى تعطيل استئناف وضع الإسبات؟

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

تحقق من الإعدادات الحالية:

grep -R "^[[:space:]]*RESUME=" /etc/initramfs-tools/conf.d/ 2>/dev/null

إذا كان المقصود قسم التبديل الذي قمت بتحويله للتو، فقم بتعيين خاصية الاستئناف إلى لا شيء:

echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo update-initramfs -u

هذه هي النقطة التي update-initramfs -uيكون فيها الأمر ذا صلة. لا تحتاج إلى إعادة بناء initramfs لمجرد تغيير إدخال تبديل عادي بعد بدء التشغيل؛ ولكنك تحتاج إلى تحديثه عند إزالة هدف استئناف وضع الإسبات القديم الذي قد يحاول initramfs استخدامه.

اختبار إعادة التشغيل: ما الذي يثبت أن الإعداد يعمل؟

أعد تشغيل الجهاز فقط بعد أن يعمل التنشيط المباشر وتكون ملفات التكوين صحيحة:

sudo reboot

بعد عودة النظام، قم بتشغيل ما يلي:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS
cat /proc/swaps

معايير النجاح الرئيسية واضحة ومباشرة:

  • /dev/mapper/cswapنشط كبديل.
  • لا يتم إدراج قسم التخزين الأساسي الخام بشكل مباشر كقسم تبديل نشط.
  • cryptsetup status cswapيُشير التقرير إلى وجود عملية ربط نشطة بين dm-crypt و dm-crypt.
  • يبدأ تشغيل الجهاز دون طلب عبارة مرور للتبديل؛ يتم إنشاء المفتاح العشوائي تلقائيًا.

يمكنك أيضًا إعادة تشغيل الجهاز مرتين ومقارنة سلوك التعيين. تكمن فكرة التصميم في أن مفتاح التشفير مؤقت؛ فمحتويات ملف التبديل من عملية التشغيل السابقة لا يمكن استعادتها بعد إعادة إنشاء التعيين.

ماذا لو دخلت الآلة في وضع الطوارئ؟

أكثر الأسباب شيوعًا هي مسار خاطئ لجهاز النسخ الاحتياطي، أو خطأ إملائي في ملف /etc/crypttab، أو /etc/fstabسطر لا يزال يشير إلى مساحة التبديل الخام القديمة. قم بتشغيل الجهاز في وضع الاسترداد أو استخدم بيئة إنقاذ، وقم بتثبيت نظام الملفات الجذر للقراءة والكتابة، واستعد النسخ الاحتياطية إذا لزم الأمر.

تشمل الفحوصات المفيدة ما يلي:

sudo cryptsetup status cswap
systemctl status systemd-cryptsetup@cswap.service
systemctl status dev-mapper-cswap.swap
journalctl -b -u systemd-cryptsetup@cswap.service

قد يتم تهريب أسماء الوحدات بشكل مختلف لأسماء الخرائط غير المألوفة، لذا استخدم هذا الخيار systemctl list-units '*cryptsetup*'إذا لم يكن اسم الخدمة الدقيق واضحًا.

ماذا عن التخلص من بيانات محركات الأقراص الصلبة SSD؟

لا تُفعّل خاصية تجاهل البيانات افتراضيًا لمجرد تحسين أداء محركات الأقراص الصلبة SSD نظريًا. تشير وثائق crypttab الخاصة بنظام دبيان إلى أن تمرير طلبات تجاهل البيانات عبر جهاز مُشفّر له آثار أمنية. وبالمثل، يُشير دليل swapon الخاص بنظام دبيان إلى أن تجاهل البيانات قد يُحسّن الأداء على بعض محركات الأقراص الصلبة SSD، ولكنه غالبًا لا يُحسّنه. إذا كنت بحاجة إليه، فقيّم نموذج التخزين ونموذج التهديدات لديك أولًا، ثم أضفه عمدًا.

هل يظل التبديل المشفر مفيدًا إذا كان نظام الملفات الجذر غير مشفر؟

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

قائمة التحقق النهائية

  • تأكد من أن الهدف هو قسم تبديل مخصص غير مشفر، وليس ملف تبديل، وليس محميًا بالفعل بواسطة جهاز رئيسي مشفر.
  • سجل مسار تقسيم مستقر مثل /dev/disk/by-partuuid/....
  • قم بتعطيل التبديل الخام قبل تكوين dm-crypt.
  • أضف إدخالًا عشوائيًا بمفتاح عادي باستخدام تشفير dm إلى /etc/crypttab.
  • أشر /etc/fstabفقط إلى /dev/mapper/cswap.
  • قم بتفعيل عملية الربط وتحقق منها قبل إعادة التشغيل.
  • إذا كان جهاز التبديل القديم جهاز استئناف، فقم بتعيينه RESUME=noneوتشغيله update-initramfs -u.
  • بعد إعادة التشغيل، تحقق من أن وحدة التخزين المشفرة فقط هي النشطة كوحدة تبديل.

بالنسبة لأنظمة دبيان 12 التي لا تدعم وضع الإسبات، يُبقي هذا الأسلوب حجم الإعدادات صغيرًا ويتجنب تخزين مفتاح تبديل دائم. لا يكمن القرار الأساسي في "أي أمر تشفير يجب تشغيله؟" بل في مدى توافق مفتاح التبديل العشوائي مع متطلبات إدارة الطاقة لديك. بمجرد تحديد ذلك، يصبح الباقي عملية نقل مُتحكَّم بها من قسم التبديل الخام إلى تعيين dm-crypt الذي يُعاد إنشاؤه بشكل آمن عند كل عملية تشغيل.

اترك تعليقاً

كيفية لعب لعبة Don't Starve Together على نظام لينكس

كيفية لعب لعبة Don't Starve Together على نظام لينكس

قم بتثبيت نسخة لينكس من لعبة Don't Starve Together عبر Steam، وابدأ عالمًا جديدًا، أو انضم إلى أصدقائك باتباع خطوات الإعداد واستكشاف الأخطاء وإصلاحها هذه.

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

كيفية تشغيل لعبة Squad على نظام Linux باستخدام Steam Proton

قم بإعداد Squad على نظام Linux باستخدام Steam Play و Proton، ثم قم بتثبيت اللعبة، واختر أداة التوافق، وقم باستكشاف مشكلات مكافحة الغش وإصلاحها.

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

كيفية تثبيت نظام لينكس منت ديبيان الإصدار الخامس "إلسي" من خلال USB

قم بتنزيل ملف LMDE 5 ISO المؤرشف والتحقق منه، ثم أنشئ قرص USB قابلًا للإقلاع، واختر إعدادات التثبيت الآمنة. انتهى دعم Elsie؛ راجع إصدار LMDE الحالي.

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

كيفية إنشاء قرص USB قابل للتشغيل لنظام التشغيل Windows 11 على نظام Linux

قم بإنشاء قرص USB لتثبيت نظام التشغيل Windows 11 على نظام Linux باستخدام Ventoy: احصل على ملف ISO الرسمي، وقم بتثبيت Ventoy بأمان، وانسخ الصورة، وقم بتشغيل جهاز الكمبيوتر المستهدف.

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

كيفية تشغيل لعبة It Takes Two على نظام لينكس باستخدام Steam Proton

تعلم كيفية تشغيل لعبة It Takes Two على نظام Linux باستخدام Steam Proton، وتثبيت إصدار Steam، وتمكين التوافق، وإعداد وضع اللعب التعاوني، وحل مشاكل التشغيل.

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

كيفية تثبيت برنامج Wireshark على أنظمة Linux: أوبونتو، فيدورا، آرتش، وغيرها

قم بتثبيت Wireshark على Ubuntu أو Debian أو Fedora أو Arch أو openSUSE باستخدام أوامر الحزمة الحالية، ثم قم بتكوين التقاط الحزم المباشر بأمان.

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

كيفية لعب Slay the Spire على نظام Linux: قم بتثبيته وتشغيله باستخدام Steam

قم بتثبيت Steam على نظام Linux، ثم احصل على نسخة Slay the Spire الأصلية لنظام Linux من مكتبتك، وقم بتشغيلها. يتضمن ذلك خطوات عملية لحل مشاكل بدء التشغيل الشائعة.

كيفية تشغيل لعبة DiRT Rally على نظام لينكس: إعداد Steam وإصلاحات Proton

كيفية تشغيل لعبة DiRT Rally على نظام لينكس: إعداد Steam وإصلاحات Proton

تعلم كيفية تشغيل لعبة DiRT Rally على نظام Linux إذا كنت تمتلكها بالفعل على Steam: قم بتثبيت الإصدار الأصلي، وقم بتشغيله، واستخدم Proton فقط كخيار احتياطي.

كيفية تثبيت ديفوان لينكس من قرص USB قابل للإقلاع

كيفية تثبيت ديفوان لينكس من قرص USB قابل للإقلاع

قم بتثبيت Devuan Excalibur من ملف ISO الخاص بنظام التشغيل المباشر على سطح المكتب. تحقق من التنزيل، أنشئ قرص USB قابل للتشغيل، احمِ الأقسام الموجودة، وأكمل التثبيت باستخدام برنامج Refracta Installer.

كيفية تشغيل لعبة The Forest على نظام Linux باستخدام Steam Proton

كيفية تشغيل لعبة The Forest على نظام Linux باستخدام Steam Proton

قم بتثبيت Steam على نظام Linux، وقم بتمكين Steam Play، واستخدم Proton لتنزيل وتشغيل The Forest، مع إعداد توافق لكل لعبة على حدة إذا لم يبدأ تشغيلها.