رجوع
2025/04/18
4. هل استخدمت Ksplice من قبل؟
في هذا المقال، سنقدم Ksplice، إحدى ميزات Oracle Linux. Ksplice هو نظام تصحيح مباشر يتيح لك تطبيق التصحيحات على النواة دون إعادة تشغيل نظام التشغيل. لديه تاريخ يزيد عن 10 سنوات، وهو ميزة ممتازة لا مثيل لها في الوقت الحالي. ومع ذلك، حتى بين الأشخاص الذين يستخدمون Oracle Linux، قد يكون مستخدمو Ksplice في الأقلية. لذا في هذا المقال، سنسعى لتعميق فهمك لـ Ksplice.
ما هو Ksplice؟
Ksplice هي ميزة تتيح لك تطبيق التصحيحات على نواة Linux وبعض مكتبات فضاء المستخدم دون إعادة تشغيل نظام التشغيل. على سبيل المثال، إذا قمت بتثبيت نواة جديدة تم إصدارها، فلا يزال يتعين عليك إعادة تشغيل نظام التشغيل لتفعيلها. ومع ذلك، يتيح لك Ksplice تفعيل آخر تحديث دون الحاجة إلى إعادة التشغيل.
بعبارة أخرى، يمكنك الحصول على الفوائد التالية مع Ksplice:
- تقليل وقت توقف النظام
- الاستجابة السريعة للثغرات الأمنية
- تقليل وقت تطبيق التصحيحات
القدرة على تفعيل التحديثات دون إعادة تشغيل هي ميزة مهمة بشكل خاص في “الخوادم القابلة للوصول خارجيًا” و”مضيفي KVM التي تعمل عليها العديد من الآلات الافتراضية”. تحتاج الخوادم القابلة للوصول خارجيًا إلى الاستجابة السريعة للثغرات الأمنية. بالإضافة إلى ذلك، تعمل عدة خوادم افتراضية على مضيفي KVM. لذلك، عند الحاجة إلى إعادة تشغيل نظام التشغيل، يتطلب الأمر تعديلات مسبقة متنوعة، وكذلك وقت العمل الفعلي.
بعبارة أخرى، Ksplice هي ميزة فعالة بشكل خاص في الاستخدام المؤسسي، حيث تساعد في تقليل تكاليف التشغيل وتعزيز الأمان.
الأسئلة الشائعة حول Ksplice
لمساعدتك على فهم Ksplice بسرعة، سنقدم نظرة عامة بعنوان الأسئلة الشائعة حول Ksplice.
ما هي أنظمة التشغيل التي يمكنني استخدام Ksplice معها؟
في الوقت الحالي (سبتمبر 2022)، يتم دعم أنظمة تشغيل Linux التالية. يدعم Ksplice أيضًا كلاً من النواة المتوافقة مع Red Hat ونواة Unbreakable Enterprise لـ Oracle Linux.
- Oracle Linux 6
- Oracle Linux 7
- Oracle Linux 8
- Oracle Linux 9
- CentOS و RHEL 7
- CentOS و RHEL 8
- Ubuntu 18.04
- Ubuntu 20.04
بالإضافة إلى Intel/AMD (x86_64)، يدعم أيضًا Arm 64 بت. ومع ذلك، يدعم فقط نواة Unbreakable Enterprise Kernel لـ Arm.
هل أحتاج إلى اتصال بالإنترنت لاستخدام Ksplice؟
يحتوي Ksplice على وضعين: متصل وغير متصل. الوضع المتصل يتصل بشبكة Unbreakable Linux Network (ULN) التي توفرها Oracle، لذا تحتاج إلى القدرة على الاتصال بالإنترنت (قد يكون ذلك عبر وكيل إنترنت).
بالإضافة إلى ذلك، في الوضع غير المتصل، يمكنك استخدام Ksplice دون الاتصال بالإنترنت من خلال إعداد مرآة Ksplice. ومع ذلك، يجب أن يكون الخادم المستخدم كمرآة Ksplice قادرًا على الاتصال بالإنترنت.
ما هي المكونات التي يغطيها التصحيح المباشر لـ Ksplice؟
بالإضافة إلى النواتين التاليتين، يدعم حزم فضاء المستخدم glibc وopenssl. ومع ذلك، يدعم حزم فضاء المستخدم فقط Oracle Linux.
- النواة المتوافقة مع Red Hat
- نواة Unbreakable Enterprise Kernel
- glibc
- openssl
هل هناك رسوم لاستخدام Ksplice؟
لاستخدام Ksplice، تحتاج إلى عقد دعم Oracle Linux Premier Support مدفوع. ومع ذلك، يتوفر Ksplice مجانًا على Oracle Linux على Oracle Cloud Infrastructure (يتم إعداده افتراضيًا). بشكل استثنائي، يمكنك استخدامه مجانًا على Ubuntu.
هل هناك برنامج تجريبي لـ Ksplice؟
يتوفر برنامج تجريبي لمدة 30 يومًا. بالإضافة إلى ذلك، إذا كنت ترغب في تجربة Ksplice بسهولة، نوصي بـ Oracle Cloud Infrastructure’s Always Free. صورة Oracle Linux تم إعدادها مسبقًا مع Ksplice، لذا يمكنك استخدامها على الفور.
هل هناك أنظمة تصحيح مباشر أخرى مثل Ksplice؟
تتمتع توزيعات Linux الأخرى أيضًا بأنظمة التصحيح المباشر التالية. ومع ذلك، تم توفيرها جميعًا في السنوات الأخيرة فقط، ولم تثبت أداءها بعد.
- Linux القائم على RHEL kpatch
- SUSE KLP
- خدمة Ubuntu Livepatch
بالإضافة إلى ذلك، على Windows، هناك ميزة تُسمى Windows hot patch. ومع ذلك، فهي محدودة بنظام Windows Server 2022 Datacenter: Azure Edition.
لنجرب Ksplice
لفهم Ksplice، من الأفضل أن ترى كيف يعمل فعليًا. في هذا المقال، سنشرح باستخدام Oracle Linux 8 من Oracle Cloud Infrastructure، وهو سهل التجربة. سيتم شرح الإعداد والتفاصيل في المقال التالي.
بالإضافة إلى ذلك، Oracle Linux 7 وOracle Linux 9 متشابهان تقريبًا، ولكن قد تكون هناك اختلافات طفيفة اعتمادًا على إصدار الصورة التي تستخدمها.
تحقق من حالة إعداد Ksplice
لاستخدام Ksplice، تحتاج إلى عميل Ksplice. لذا، تحقق مما إذا كان عميل Ksplice مثبتًا. إذا بحثت عن حزمة، ستجد أن حزمة uptrack (= عميل Ksplice) مثبتة.
$ rpm -qa | grep -e ksplice -e uptrack | sort
ksplice-release-el8-1.0-4.el8.x86_64
ksplice-uptrack-release-1-5.noarch
uptrack-1.2.75-0.el8.noarch
بعد ذلك، تحقق من ملف الإعداد /etc/uptrack/uptrack.conf. يمكنك استخدام Ksplice إذا كان ملف الإعداد موجودًا وتم تكوين مفتاح الوصول.
$ grep -v -e '^\s*#' -e '^\s*$' /etc/uptrack/uptrack.conf
[Auth]
accesskey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (يتم استرجاع مفتاح Ksplice Uptrack من ULN)
[Network]
https_proxy =
gconf_proxy_lookup = no
[Settings]
install_on_reboot = yes
autoinstall = no
تعلم أساسيات Ksplice
الآن بعد أن عرفت أن Ksplice تم إعداده، سنستخدم Ksplice فعليًا. بما أن معظم العمليات تتطلب صلاحيات الجذر، سنستخدم su. بدلاً من ذلك، يمكنك إضافة sudo في كل مرة.
$ sudo su -
تحقق من إصدار النواة
تحقق من إصدار نواة Linux المفعل حاليًا. تم تفعيل UEK6 “5.4.17-2136.306.1.3”.
# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
إذا تحققت من أحدث إصدار في المستودع، فهو “5.4.17-2136.310.7.1”. لذا يمكنك أن ترى أنه تم إصدار إصدار جديد.
# yum check-update kernel-uek
kernel-uek.x86_64 5.4.17-2136.310.7.1.el8uek ol8_UEKR6
عرض التحديثات
في الطريقة التقليدية، يتم تحديث النواة وإعادة التشغيل كما يلي:
# yum update kernel-uek -y
# reboot
في Ksplice، استخدم الأمر uptrack-upgrade. يمكنك عرض تحديثات Ksplice القابلة للتطبيق عن طريق إدخال “uptrack-upgrade -n” كما يلي. كل صف هو تحديث منفصل.
# uptrack-upgrade -n
Effective kernel version is 5.4.17-2136.306.1.3.el8uek
The following steps will be taken:
Install [n9kprcm6] Known exploit detection.
Install [qivpmdlu] Known exploit detection for CVE-2019-9213.
Install [50qj7qw1] Known exploit detection for CVE-2017-1000253.
Install [3iw8b16t] Known exploit detection for CVE-2016-5195.
Install [sgxyx32m] Known exploit detection for CVE-2021-27363.
Install [92k7sosn] Known exploit detection for CVE-2021-27364.
★تم الحذف أدناه
تطبيق التحديث
قم بتطبيق كل هذه التحديثات. يختلف وقت التطبيق حسب عدد التحديثات ومواصفات الجهاز، وهذه المرة استغرق حوالي دقيقة واحدة. النقطة الرئيسية التي يجب ملاحظتها هنا هي “5.4.17-2136.310.7” في السطر الأخير. بفضل Ksplice، لديه نفس إصدار النواة مثل الإصدار الأحدث.
# uptrack-upgrade -y
The following steps will be taken:
Install [n9kprcm6] Known exploit detection.
Install [qivpmdlu] Known exploit detection for CVE-2019-9213.
Install [50qj7qw1] Known exploit detection for CVE-2017-1000253.
Install [3iw8b16t] Known exploit detection for CVE-2016-5195.
★تم الحذف
Installing [dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.
Your kernel is fully up to date.
Effective kernel version is 5.4.17-2136.310.7.el8uek
يمكن عرض إصدار النواة الفعال الذي تم تفعيله بواسطة تحديث Ksplice باستخدام الأمر uptrack-uname.
# uptrack-uname -r
5.4.17-2136.310.7.el8uek.x86_64
يعرض الأمر uname العادي إصدار النواة المثبتة.
# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
قائمة UEKs المثبتة هي كالتالي. الإصدار الأحدث “5.4.17-2136.310.7” غير مثبت. بعبارة أخرى، يتم تثبيت تحديث Ksplice التدريجي (التصحيح) فقط.
# rpm -q kernel-uek | sort -n
kernel-uek-5.4.17-2102.201.3.el8uek.x86_64
kernel-uek-5.4.17-2136.304.4.1.el8uek.x86_64
kernel-uek-5.4.17-2136.306.1.3.el8uek.x86_64
عرض التحديثات
يمكن عرض تحديث Ksplice الذي تقوم بتطبيقه باستخدام الأمر uptrack-show.
# uptrack-show
Installed updates:
[n9kprcm6] Known exploit detection.
[qivpmdlu] Known exploit detection for CVE-2019-9213.
[50qj7qw1] Known exploit detection for CVE-2017-1000253.
★تم الحذف
[fza3q2mo] CVE-2022-2153: Denial-of-service in Kernel-based Virtual Machine.
[4eaq3lov] CVE-2022-21505: Lockdown bypass in Integrity Measurement Architecture.
[dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.
Effective kernel version is 5.4.17-2136.310.7.el8uek
حذف التحديثات
يمكنك بسهولة حذف التحديثات المطبقة باستخدام الأمر uptrack-remove.
# uptrack-remove --all -y
The following steps will be taken:
Remove [dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.
Remove [4eaq3lov] CVE-2022-21505: Lockdown bypass in Integrity Measurement Architecture.
Remove [jjafy1ef] CVE-2022-29582: Use-after-free in asynchronous io_uring API.
★تم الحذف
Removing [qivpmdlu] Known exploit detection for CVE-2019-9213.
Removing [n9kprcm6] Known exploit detection.
Effective kernel version is 5.4.17-2136.306.1.3.el8uek
لقد عدت الآن إلى الحالة الأصلية بعدم تطبيق تحديثات Ksplice. في هذه الحالة، قمنا بتطبيق التحديثات بشكل جماعي، ولكن يمكنك أيضًا تطبيقها بشكل فردي عن طريق تحديد معرفاتها.
# uptrack-uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
# uname -r
5.4.17-2136.306.1.3.el8uek.x86_64
كتذكير، لن ترى شيئًا عند عرض تحديثات Ksplice المطبقة.
# uptrack-show
Installed updates:
None
Effective kernel version is 5.4.17-2136.306.1.3.el8uek
الخلاصة
هل فهمت ما هو Ksplice؟ بالإضافة إلى ذلك، نعتقد أنه عندما تستخدمه فعليًا، سترى أنه سهل الاستخدام للغاية. في المقال التالي، سنناقش Ksplice بمزيد من التفصيل.