كيفية تثبيت وحدات نواة مخصصة على نظام SLES 15 مع خاصية التمهيد الآمن

لتحميل وحدة نواة مخصصة على نظام SLES 15 مع تمكين التمهيد الآمن، قم بإنشائها خصيصًا لنواة النظام التي ستستخدمها، ثم وقّع .koالملف النهائي بشهادة توقيع موثوقة، وسجّل هذه الشهادة كمفتاح مالك الجهاز (MOK)، ثم حمّل الوحدة modprobe. مفتاح مالك الجهاز ( MOK) هو شهادة يتم التحكم بها محليًا، ويمكن لطبقة SUSE shim ونواة Linux الوثوق بها للتحقق من وحدة التمهيد الآمن. لا تقم بتعطيل التمهيد الآمن لتجاوز رفض التوقيع. العملية الموضحة أدناه مخصصة للمسؤول الذي يتحكم بالجهاز ويمكنه الموافقة على تسجيل المفتاح عند إعادة التشغيل.

يتبع هذا الدليل وثائق إدارة SLES 15 SP7 من SUSE وإرشادات SUSE لتغليف وحدات النواة، والتي تم التحقق منها في 6 أكتوبر 2026. تستخدم الأوامر acme_driverاسم وحدة كمثال؛ استبدله باسم الوحدة الفعلي بدون .koاللاحقة عند الاقتضاء. هذه أمثلة للأوامر، وليست مخرجات من جهاز تم اختباره.

أمثلة على أوامر الطرفية للتحقق من التمهيد الآمن باستخدام mokutil وتحديد نواة SLES قيد التشغيل باستخدام uname
أمثلة على أوامر ما قبل التشغيل: تأكيد حالة التمهيد الآمن وتسجيل إصدار النواة الدقيق قبل بناء وحدة نمطية.

عندما تكون هذه الطريقة هي الأنسب

استخدم هذه الطريقة لوحدة نمطية خارجية مخصصة - وحدة يتم توفيرها بشكل منفصل عن نواة النظام قيد التشغيل - عندما يكون بإمكانك إعادة بناء نواة SLES المستهدفة أو الحصول على نسخة منها، ويمكنك تسجيل شهادة على الخادم. ينطبق هذا على الأنظمة التي تبدأ التشغيل عبر مسار SUSE Secure Boot وshim. إذا قام أحد الموردين بتوفير حزمة برامج تشغيل رسمية لنظام SLES 15، فاستخدم تعليمات التثبيت والتوقيع المدعومة أولاً؛ فقد تتعامل حزمة المورد مع توافق النواة والتحديثات بشكل أفضل من النسخة اليدوية.

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

قبل أن تبدأ

  • استخدم حساب مسؤول وتأكد من وجود فترة صيانة. يتطلب تسجيل MOK إعادة تشغيل الجهاز وإجراء موافقة في MokManager، عادةً من خلال وحدة تحكم محلية أو عن بُعد.
  • تحقق من حالة نواة النظام وحالة التمهيد الآمن باستخدام uname -rالأمرَين `npm mokutil --sb-staterun build` و`npm run build`. قم ببناء الوحدة النمطية باستخدام ملفات تطوير النواة ومجموعة الأدوات المتوافقة مع إصدار النواة المحدد. تختلف أسماء الحزم والملفات المطلوبة باختلاف حزمة خدمة SLES وإصدار النواة وطريقة البناء، لذا تحقق منها في المستودعات المُفعّلة على النظام المستهدف.
  • حدد مكان تخزين مفتاح التوقيع الخاص. بالنسبة لأسطول الإنتاج، استخدم خدمة التوقيع المُدارة من قِبل المؤسسة أو عملية إدارة المفاتيح المعتمدة. أما بالنسبة للمختبر أو مضيف واحد مُدار، فقد يكون من العملي استخدام مفتاح مُولّد محليًا. احمِ المفتاح الخاص؛ فالخادم يحتاج إلى الشهادة العامة للتسجيل، وليس المفتاح الخاص.
  • احتفظ بمسار استعادة، ومصدر الوحدة أو حزمة المورّد، ونواة نظام تشغيل سليمة. لا تقم بتثبيت برنامج تشغيل على أجهزة الإنتاج إلا بعد فهم متطلبات الجهاز ونواة النظام.

1. إنشاء مفتاح توقيع وشهادة عامة

في نظام توقيع محمي، أنشئ مفتاحًا خاصًا وشهادة X.509 مشفرة بصيغة DER. توصي إرشادات SUSE لتغليف وحدات نواة النظام codeSigningباستخدام المفتاح الموسع في حزم خدمة SLES 15 الحالية. يستخدم هذا المثال OpenSSL واسم شهادة وصفي.

openssl req -new -x509 -newkey rsa:2048 -sha256 \
  -keyout module-signing.key \
  -out module-signing.der -outform DER -nodes \
  -days 4745 -addext "extendedKeyUsage=codeSigning" \
  -subj "/CN=Custom Module Signing/"
chmod 600 module-signing.key

يُبقي هذا -nodesالخيار المفتاح الخاص غير مُشفّر، لذا فإنّ أذونات الملفات وضوابط التخزين مهمة. لا تنسخ هذا المفتاح الخاص إلى خادم عام أو تُضمّنه في حزمة. إذا كانت سياسة المؤسسة تتطلب مفتاحًا مُشفّرًا، أو توقيعًا مدعومًا بالأجهزة، أو تدويرًا للمفاتيح، أو دورة حياة مختلفة للشهادة، فاتبع تلك السياسة ومتطلبات أداة التوقيع. انقل المفتاح فقط module-signing.derإلى النظام الذي سيُسجّل المفتاح العام.

مثال على طرفية توضح أمر شهادة توقيع رمز OpenSSL والأذونات التقييدية على المفتاح الخاص
أمثلة على أوامر إنشاء الشهادات وأذونات المفاتيح؛ احتفظ بالمفتاح الخاص تحت وصول مُتحكم به.

2. قم ببناء الوحدة النمطية لنواة النظام المستهدفة وتوقيعها

قم ببناء الوحدة النمطية باستخدام إصدار النواة المحدد الموضح uname -r. تحدد تعليمات بناء المشروع المصدر المُصرّف، وملفات الرأس، والتكوين المطلوب؛ فلا يوجد أمر بناء واحد يناسب جميع الوحدات النمطية المخصصة. تحقق من نتائج البناء vermagicباستخدام الأمر `require` modinfoإذا كنت بحاجة إلى تشخيص عدم توافق النواة.

قم بتوقيع ملف الوحدة النمطية النهائي بعد التجميع وأي خطوة تغليف أو تجريد. توثق SUSE أداة التوقيع الخاصة بها على الرابط التالي /usr/lib/rpm/pesign/kernel-sign-file؛ يستخدم المثال التالي تنسيق PKCS#7 وخوارزمية SHA-256:

/usr/lib/rpm/pesign/kernel-sign-file -i pkcs7 sha256 \
  module-signing.key module-signing.der acme_driver.ko

يجب أن يكون المساعد متاحًا من خلال تكامل توقيع SUSE على نظامك. في حال عدم وجوده، راجع وثائق SLES/KMP الرسمية والمستودعات المُفعّلة لإعداد التوقيع المدعوم، بدلًا من استخدام أمر توقيع عشوائي. يُضاف توقيع الوحدة إلى الملف. لا تقم بحذف أو تعديل أو إعادة ضغط أو تغيير الوحدة بأي شكل من الأشكال بعد التوقيع؛ فقد يؤدي ذلك إلى إبطال التوقيع. احتفظ بنسخة أصلية من ملف البناء لتتمكن من تكرار خطوة التوقيع النهائية.

مثال على أمر SUSE kernel-sign-file لتوقيع ملف acme_driver.ko باستخدام توقيع PKCS7 SHA-256
يقوم برنامج SUSE للتوقيع المساعد بتوقيع ملف الوحدة النمطية المكتمل باستخدام المفتاح الخاص المحمي وشهادة التوقيع العامة المطابقة له.

3. تسجيل الشهادة العامة كشهادة MOK

على خادم SLES، ضع module-signing.derالشهادة العامة في مكان يمكن للمستخدم الجذر قراءتها، ثم قم بإضافتها إلى قائمة الانتظار للتسجيل:

mokutil --root-pw --import module-signing.der
mokutil --list-new

تُتيح وثائق SUSE --root-pwإمكانية المصادقة على التسجيل المُعلق باستخدام كلمة مرور الجذر. يقوم أمر الاستيراد بتخزين الشهادة في قائمة الانتظار، ولا يُسجلها فورًا. أعد تشغيل الخادم. في MokManager، اختر "تسجيل المفتاح من القرص" ، ثم حدد الشهادة، وأكد التسجيل، وأكمل عملية المصادقة المطلوبة. قد تختلف صياغة القائمة قليلاً باختلاف إصدار shim/MokManager. إذا لم تتمكن من الوصول إلى شاشة التسجيل، فتحقق من مسار الإقلاع وقم بترتيب الوصول إلى وحدة التحكم؛ لا تفترض أن الشهادة قد سُجلت لمجرد نجاح أمر الاستيراد.

بعد تشغيل الخادم، تأكد من ظهور المفتاح في قائمة المسجلين:

mokutil --list-enrolled
مثال على تسلسل طرفي لاستيراد شهادة DER باستخدام mokutil وعرض إدخال MOK معلق
يقوم الاستيراد بوضع شهادة للمراجعة عند إعادة التشغيل؛ mokutil --list-newويعرض طلبات التسجيل المعلقة.
شاشة تسجيل MokManager مع تحديد خيار "تسجيل المفتاح من القرص" ورسالة تأكيد.
عند إعادة التشغيل، يعرض MokManager خيار تسجيل المفتاح وخطوة التأكيد التي يجب على المشغل المعتمد الموافقة عليها.

4. قم بتثبيت وتحديث تبعيات الوحدة النمطية، ثم قم بتحميلها

انسخ الملف الموقّع إلى مجلد extra-modules الخاص بنواة النظام قيد التشغيل، ثم حدّث خريطة التبعيات، واطلب الوحدة بالاسم. استبدل إصدار النواة الفعلي إذا كنت تقوم بالتثبيت لنواة نظام مختلفة.

release=$(uname -r)
install -D -m 0644 acme_driver.ko \
  "/lib/modules/$release/extra/acme_driver.ko"
depmod -a "$release"
modprobe acme_driver

modprobeيُفضّل عمومًا استخدام `systemd` insmodلأنه يحلّ تبعيات الوحدات. اختبر الجهاز أو الوظيفة التي يوفرها برنامج التشغيل؛ فنجاح الأمر وحده لا يثبت أن الجهاز يعمل بشكل صحيح. إذا كان من المفترض تحميل الوحدة عند بدء التشغيل، فأضف اسمها في سطر منفصل في ملف مثل ` /etc/modules-load.d/acme_driver.conf.SLES`. يستخدم SLES آلية تحميل الوحدات الخاصة بـ systemd لملفات التكوين هذه.

أمثلة على أوامر الطرفية لتثبيت وحدة نمطية موقّعة في دليل الإضافات الخاص بالنواة الحالية، وتشغيل الأمر depmod، واستدعاء الأمر modprobe
قم بتثبيت الوحدة الموقعة ضمن إصدار النواة المطابق، وأعد بناء معلومات التبعية، ثم قم بتحميلها باستخدام modprobe.

5. التحقق من مسار الثقة واستكشاف الأخطاء وإصلاحها

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

mokutil --list-enrolled
modinfo -F signer /lib/modules/$(uname -r)/extra/acme_driver.ko
lsmod | grep acme_driver
journalctl -k -b | tail -n 80

modinfo -F signerيعرض بيانات تعريف المُوقِّع المُضمَّنة في الوحدة. لا يُثبت هذا وحده تسجيل الشهادة أو قبول نواة النظام للتوقيع. modprobeيُعدّ نجاح العملية مع تفعيل خاصية التمهيد الآمن، متبوعًا بفحص سجل النواة وفحص وظائف الجهاز، دليلًا أكثر فائدة. يُظهر الشكل الناتج النهائي الموضح مثالًا على الأوامر والنتائج التوضيحية، وليس تقريرًا عن اختبار أُجري لهذه المقالة.

الأعراضما الذي يجب فحصه؟
Key was rejected by serviceأو خطأ في التحميل متعلق بالتوقيعتأكد من أن الشهادة التي وقّعت هذه الوحدة النمطية مسجلة لدى mokutil --list-enrolled؛ تأكد من أن الوحدة النمطية قد تم توقيعها بعد آخر تعديل لها ؛ راجع journalctl -k -b.
Invalid module formatقارن الوحدة النمطية vermagicمع uname -r. أعد بناء النواة قيد التشغيل ونكهتها.
Unknown symbolأو تبعية لم يتم حلهاتحقق من بيئة البناء المطابقة والوحدات النمطية المصاحبة المطلوبة؛ أعد التشغيل depmod -aبعد التثبيت.
Module not foundتحقق من اسم الملف، واسم الوحدة، ودليل الوجهة الخاص بالنواة، وخريطة التبعيات. modprobeعادةً ما يتم حذف الفاصلة من الاسم المُمرر .ko.

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

أمثلة على عمليات فحص طرفية تُظهر مفتاح MOK مسجل، وبيانات تعريف مُوقِّع الوحدة، واسم الوحدة في lsmod
استخدم قائمة المفاتيح المسجلة، وبيانات تعريف المُوقِّع، وقائمة الوحدات النمطية المحملة، وسجل النواة معًا؛ لا يوجد فحص واحد يثبت سلسلة الثقة والتوافق بأكملها.

خطط لتحديثات النواة وعمليات النشر المتكررة

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

بالنسبة لأسطول أو برنامج تشغيل يجب أن يبقى سليمًا بعد التحديثات الدورية، استخدم آلية تغليف قابلة للتكرار، مثل منهجية حزمة وحدة النواة (KMP) من SUSE، بما يتناسب مع برنامج التشغيل ونموذج الدعم الخاص بك. يُمكن للتغليف تنظيم عمليات بناء النواة وخطوات التوقيع، ولكنه لا يُغني عن الحاجة إلى حماية المفاتيح الصحيحة، وتوافق الوحدات، وموثوقية مفتاح إدارة النواة (MOK)، واختبار التحديثات. راجع الوثائق الخاصة بحزمة خدمة SLES 15 المحددة ودورة حياة النواة المدعومة من مؤسستك.

مثال على تكوين تحميل الوحدات النمطية الذي يسرد برنامج تشغيل acme_driver وعرض حالة طرفية لتحميل وحدة systemd النمطية
يمكن لسطر إدخال واحد /etc/modules-load.dأن يطلب تحميل وقت بدء التشغيل بعد إعادة بناء الوحدة وتوقيعها لنواة النظام المثبتة.

المراجع الرسمية

اترك تعليقاً

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل لعبة FlightGear مجاناً: دليل التثبيت الرسمي

حمّل برنامج FlightGear مجاناً من الموقع الرسمي. قارن بين حزم Windows و macOS و Linux، وثبّت ملفات البيانات، وابدأ رحلتك الأولى.

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

أو كي سامبلر: برنامج مجاني وبسيط لأخذ عينات موسيقية لإيقاعات لوحة المفاتيح

يقوم برنامج OKSampler بربط مقاطع MP3 بمفاتيح لوحة المفاتيح، كما يتيح تكرار الصوت. تعرّف على وظائف هذا البرنامج المجاني القديم، وحدود ميزاته القديمة، وما يجب التحقق منه قبل التنزيل.

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

تطبيق مهام جوجل لسطح المكتب: كيفية استخدامه على الكمبيوتر

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

كيفية لعب لعبة 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 من مكتبتك، وقم بتشغيلها. يتضمن ذلك خطوات عملية لحل مشاكل بدء التشغيل الشائعة.