0%
Red Hat وRocky Linux وAlmaLinux: دليل الإدارة

Red Hat وRocky Linux وAlmaLinux: دليل الإدارة

أتقن منظومة RHEL: DNF والمستودعات وRPM وSELinux وfirewalld وsubscription-manager. دليل شامل لأنظمة Rocky Linux وAlmaLinux وRed Hat.

I

InSkillCoach

· دقيقة

Red Hat وRocky Linux وAlmaLinux: دليل الإدارة

إذا كانت Debian وUbuntu تهيمنان على الويب والسحابة العامة، فإن منظومة Red Hat تسود البنى التحتية في المؤسسات: البنوك وشركات التأمين والقطاع العام وشركات الاتصالات. وتُعدّ معرفة إدارة نظام RHEL (Red Hat Enterprise Linux) أو توزيعاته المشتقة مهارة مطلوبة بشدة، وهي أيضًا الأساس لشهادتَي RHCSA وRHCE. في هذا الدليل نتناول إدارة الحزم باستخدام DNF وRPM، والأمان باستخدام SELinux وfirewalld، وكذلك إدارة اشتراكات Red Hat.

1. منظومة RHEL ونهاية CentOS

لمحة تاريخية

لمدة خمسة عشر عامًا، كان CentOS نسخة مجانية متوافقة ثنائيًا مع RHEL: النظام نفسه، لكن دون الدعم التجاري. وفي عام 2020، أنهت Red Hat العمل بـ CentOS Linux لصالح CentOS Stream، الذي لم يعد نسخة من RHEL بل نسختها التطويرية: فـ Stream يقع في المنبع (upstream) قبل RHEL، لا في المصب.

وقد أدى هذا القرار فورًا إلى ظهور وريثين مجتمعيين، أسّس أحدهما المنشئ الأصلي لـ CentOS، وأسّس الآخر ناشر CloudLinux:

  • Rocky Linux: مشروع مجتمعي تقوده مؤسسة Rocky Enterprise Software Foundation؛
  • AlmaLinux: مشروع تقوده مؤسسة AlmaLinux، بهدف التوافق على مستوى ABI (وليس النسخ بت ببت منذ عام 2023).

أي توزيعة تختار؟

التوزيعةالموقعالتكلفةالاستخدام الموصى به
RHELالنسخة التجارية المرجعيةاشتراك مدفوع (مجاني حتى 16 جهازًا لأغراض التطوير)الإنتاج مع دعم من الناشر
Rocky Linuxإعادة بناء 1:1 لـ RHELمجانيالإنتاج دون حاجة إلى دعم
AlmaLinuxمتوافق على مستوى ABI مع RHELمجانيالإنتاج، وتصدر التصحيحات أحيانًا بشكل أسرع
CentOS Streamمنبع RHEL، إصدارات متجددة (rolling)مجانيالتطوير والاختبار والمساهمة
Fedoraمختبر الابتكار لدى Red Hatمجانيمحطة العمل ومتابعة التقنيات الحديثة

بالنسبة إلى خادم إنتاج دون عقد دعم، فإن Rocky Linux وAlmaLinux خياران متكافئان عمليًا: الحزم نفسها والإصدارات نفسها، ووثائق RHEL نفسها قابلة للتطبيق.

# Identifier la distribution et la version
cat /etc/redhat-release
cat /etc/os-release

2. DNF: مدير الحزم

حلّ DNF (Dandified YUM) محل YUM منذ RHEL 8. لا يزال الأمر yum موجودًا، لكنه مجرد رابط رمزي إلى dnf.

العمليات الأساسية

# Rechercher un paquet
dnf search nginx

# Afficher les informations d'un paquet
dnf info nginx

# Installer un paquet
sudo dnf install nginx

# Supprimer un paquet
sudo dnf remove nginx

# Mettre à jour tout le système
sudo dnf update

# Vérifier les mises à jour disponibles sans les appliquer
dnf check-update

# Mettre à jour uniquement les correctifs de sécurité
sudo dnf update --security

# Nettoyer les dépendances orphelines
sudo dnf autoremove

خلافًا لـ APT، لا يوجد ما يعادل apt update يجب تشغيله يدويًا: يقوم DNF بتحديث بياناته الوصفية تلقائيًا عند انتهاء صلاحيتها.

سجل المعاملات: الميزة الكبرى في DNF

يسجّل DNF كل معاملة ويتيح التراجع عنها، وهو ما لا يستطيع APT فعله بشكل أصلي:

# Lister les transactions
dnf history

# Détail d'une transaction
dnf history info 42

# Annuler une transaction (désinstalle ce qui a été installé, etc.)
sudo dnf history undo 42

# Rejouer une transaction annulée
sudo dnf history redo 42

الوحدات (Application Streams)

منذ RHEL 8، تُوزَّع بعض البرمجيات على شكل «وحدات» (modules) تتيح عدة إصدارات رئيسية بالتوازي:

# Lister les modules disponibles
dnf module list

# Voir les versions (streams) disponibles pour un module
dnf module list nodejs

# Activer et installer une version précise
sudo dnf module enable nodejs:20
sudo dnf module install nodejs:20

# Changer de version : réinitialiser puis activer l'autre stream
sudo dnf module reset nodejs
sudo dnf module enable nodejs:22

إدارة المستودعات

# Lister les dépôts actifs
dnf repolist

# Lister tous les dépôts, y compris désactivés
dnf repolist --all

# Activer / désactiver un dépôt de façon permanente
sudo dnf config-manager --set-enabled crb
sudo dnf config-manager --set-disabled crb

# Installer un paquet depuis un dépôt désactivé, ponctuellement
sudo dnf --enablerepo=crb install nom-du-paquet

3. ملفات .repo وEPEL

بنية ملف .repo

تُعرَّف المستودعات في ملفات /etc/yum.repos.d/*.repo:

# /etc/yum.repos.d/exemple.repo
[exemple]
name=Mon depot exemple
baseurl=https://depot.exemple.com/el9/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://depot.exemple.com/RPM-GPG-KEY-exemple

يتم استبدال المتغيرين $releasever (الإصدار الرئيسي) و$basearch (المعمارية) تلقائيًا، مما يتيح كتابة ملفات .repo قابلة للنقل.

EPEL: المستودع الذي لا غنى عنه

EPEL (Extra Packages for Enterprise Linux) مستودع يتولى صيانته مجتمع Fedora، ويوفّر آلاف الحزم غير الموجودة في RHEL: htop وncdu وfail2ban وcertbot وغيرها.

# Installation sur Rocky/Alma 9
sudo dnf install epel-release

# Sur RHEL, le paquet vient du dépôt Fedora directement
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

# Beaucoup de paquets EPEL exigent aussi le dépôt CRB (CodeReady Builder)
sudo dnf config-manager --set-enabled crb

4. RPM: المستوى المنخفض

مثل dpkg في Debian، RPM هو الأداة منخفضة المستوى التي يقوم عليها DNF.

# Lister tous les paquets installés
rpm -qa

# Vérifier si un paquet est installé et sa version
rpm -q nginx

# Lister les fichiers d'un paquet
rpm -ql nginx

# Trouver le paquet propriétaire d'un fichier
rpm -qf /etc/nginx/nginx.conf

# Afficher les informations d'un paquet
rpm -qi nginx

# Vérifier l'intégrité des fichiers d'un paquet
# (fichiers modifiés, permissions changées...)
rpm -V nginx

# Installer un .rpm local : préférez dnf, qui résout les dépendances
sudo dnf install ./paquet.rpm

5. SELinux: الأمان المعزَّز

SELinux (Security-Enhanced Linux) مفعّل افتراضيًا في عائلة RHEL بأكملها. وهو نظام تحكم إلزامي في الوصول (MAC): حتى حساب root مقيَّد بالسياسة. القاعدة الذهبية الأولى: لا تعطّل SELinux أبدًا من أجل «حلّ» مشكلة، بل تعلّم تشخيصه.

الأوضاع

# Afficher le mode actuel
getenforce

# État détaillé
sestatus

# Passer temporairement en mode permissif (journalise sans bloquer)
sudo setenforce 0

# Revenir en mode enforcing
sudo setenforce 1

يُضبط الوضع الدائم في الملف /etc/selinux/config بإحدى ثلاث قيم: enforcing (تُطبَّق السياسة)، وpermissive (تُسجَّل المخالفات لكنها مسموح بها، وهو مفيد للتشخيص)، وdisabled (يجب تجنبه).

السياقات

يحمل كل ملف وعملية ومنفذ تسمية سياق. ومعظم حالات الحجب ناتجة عن سياق ملف غير صحيح:

# Voir le contexte des fichiers (option -Z, présente sur beaucoup d'outils)
ls -Z /var/www/html

# Voir le contexte des processus
ps auxZ | grep nginx

# Corriger le contexte d'un répertoire déplacé ou copié
sudo restorecon -Rv /var/www/html

# Rendre permanent un contexte pour un chemin non standard
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/monsite(/.*)?"
sudo restorecon -Rv /srv/monsite

# Autoriser un port non standard pour un service
sudo semanage port -a -t http_port_t -p tcp 8081

حالة نموذجية: تنقل ملفات باستخدام mv من مجلدك الشخصي إلى /var/www/html، فيُرجع Nginx الخطأ 403. فالنقل يحتفظ بالسياق الأصلي (user_home_t) بدلًا من httpd_sys_content_t. ويحل الأمر restorecon -Rv المشكلة.

التشخيص باستخدام sealert

# Installer les outils d'analyse
sudo dnf install setroubleshoot-server

# Analyser les refus récents avec explications et suggestions
sudo sealert -a /var/log/audit/audit.log

# Recherche brute dans le journal d'audit
sudo ausearch -m AVC -ts recent

القيم المنطقية (Booleans)

القيم المنطقية هي مفاتيح تفعّل صلاحيات معرَّفة مسبقًا دون تعديل السياسة:

# Lister les booléens liés à httpd
getsebool -a | grep httpd

# Autoriser un serveur web à ouvrir des connexions réseau sortantes
# (indispensable pour un reverse proxy) ; -P rend le réglage permanent
sudo setsebool -P httpd_can_network_connect on

# Autoriser httpd à se connecter à une base de données
sudo setsebool -P httpd_can_network_connect_db on

6. firewalld: جدار الحماية

firewalld هو جدار الحماية الافتراضي في عائلة RHEL. ويقوم على مفهوم المناطق (zones): ترتبط كل واجهة شبكة بمنطقة تحدد مستوى الثقة والخدمات المسموح بها.

# État du pare-feu
sudo firewall-cmd --state

# Zone par défaut et zones actives
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones

# Tout voir sur la zone courante
sudo firewall-cmd --list-all

السماح بالخدمات والمنافذ

# Lister les services prédéfinis disponibles
sudo firewall-cmd --get-services

# Autoriser HTTP et HTTPS de façon permanente
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Autoriser un port arbitraire
sudo firewall-cmd --permanent --add-port=8080/tcp

# Retirer un service
sudo firewall-cmd --permanent --remove-service=http

# Appliquer les changements permanents
sudo firewall-cmd --reload

فخ شائع: دون الخيار --permanent تكون القاعدة فعّالة فورًا لكنها تختفي عند إعادة التشغيل؛ ومع --permanent تبقى بعد إعادة التشغيل لكنها لا تُطبَّق إلا بعد تنفيذ --reload. ولتحقيق الأمرين معًا، نفّذ الأمر مرتين (مع --permanent ودونه) أو استخدم --permanent متبوعًا بـ --reload.

# Changer la zone d'une interface
sudo firewall-cmd --permanent --zone=internal --change-interface=eth1
sudo firewall-cmd --reload

7. اشتراكات RHEL: subscription-manager

من خصوصيات RHEL مقارنةً بـ Rocky وAlma: الوصول إلى المستودعات يتطلب اشتراكًا مسجَّلًا. ومنذ عام 2023، تقدّم Red Hat اشتراكًا مجانيًا للمطورين يغطي ما يصل إلى 16 نظامًا.

# Enregistrer la machine auprès du portail Red Hat
sudo subscription-manager register --username votre_login

# Vérifier le statut
sudo subscription-manager status

# Lister les dépôts disponibles via l'abonnement
sudo subscription-manager repos --list-enabled

# Activer un dépôt supplémentaire
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms

# Désenregistrer la machine (avant de la décommissionner)
sudo subscription-manager unregister

في Rocky Linux وAlmaLinux لا يوجد subscription-manager: المستودعات عامة، كما هي الحال في Debian.

8. القادمون من Debian: جدول مقابلة

إذا كنت تعرف APT بالفعل، فسيوفّر عليك هذا الجدول وقتًا:

العمليةDebian/Ubuntu (apt)RHEL/Rocky/Alma (dnf)
تحديث الفهارسapt updateتلقائي (dnf makecache للإجبار)
تحديث النظامapt upgrade / apt full-upgradednf update
التثبيتapt install paquetdnf install paquet
الحذفapt remove / apt purgednf remove
البحثapt search motifdnf search motif
تفاصيل حزمةapt show paquetdnf info paquet
تنظيف الحزم اليتيمةapt autoremovednf autoremove
ملفات حزمةdpkg -L paquetrpm -ql paquet
مالك ملفdpkg -S /cheminrpm -qf /chemin
التراجع عن معاملةلا يوجد ما يعادله بشكل أصليdnf history undo N
المستودعات/etc/apt/sources.list.d//etc/yum.repos.d/
جدار الحماية الافتراضيufw (Ubuntu)firewalld
نظام MAC الافتراضيAppArmorSELinux

أفضل الممارسات

  • للإنتاج دون دعم تجاري، اختر Rocky Linux أو AlmaLinux؛ واحتفظ بـ CentOS Stream لبيئات الاختبار.
  • لا تعطّل SELinux أبدًا: انتقل إلى الوضع permissive خلال فترة التشخيص، وصحّح السياقات باستخدام restorecon وsemanage، ثم عُد إلى وضع enforcing.
  • ثبّت EPEL وفعّل CRB منذ بدء تشغيل الخادم: ستحتاج إليهما.
  • استخدم dnf history قبل أن تقلق بعد تحديث مشكلٍ: فـ undo هو شبكة الأمان الخاصة بك.
  • مع firewalld، تذكّر دائمًا الثنائي --permanent + --reload.
  • طبّق التصحيحات الأمنية بانتظام باستخدام dnf update --security، أو أتمتها عبر الحزمة dnf-automatic.
  • على RHEL، ألغِ تسجيل الأجهزة التي أُخرجت من الخدمة لتحرير الاشتراكات.

الخلاصة

تفرض منظومة Red Hat إطارًا أكثر صرامة من عالم Debian: SELinux مفعّل افتراضيًا، وجدار حماية قائم على المناطق، واشتراكات في RHEL. وهذه الصرامة هي تحديدًا ما جعلها المعيار في البنى التحتية للمؤسسات. وبإتقان DNF وسجل معاملاته، وملفات .repo، وسياقات SELinux، وfirewalld، تغطي الجزء الأكبر من العمل اليومي لمسؤول نظام RHEL، وجزءًا كبيرًا من منهج شهادة RHCSA. وللتعمق أكثر، استكشف systemd بعمق، والأتمتة باستخدام Ansible (وهو منتج آخر من Red Hat)، والحاويات باستخدام Podman، بديل Red Hat لـ Docker.

InSkillCoach

نبذة عن InSkillCoach

خبير في التدريب والتقنيات

مدرّب متخصص في التقنيات المتقدمة والذكاء الاصطناعي، تدعمه شركة GNeurone Inc.

الشهادات:

  • AWS Certified Solutions Architect – Professional
  • شهادات Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.9k
269

التعليقات

التعليقات مدعومة عبر GitHub Discussions

سجّل الدخول باستخدام GitHub للمشاركة في النقاش

تم نسخ الرابط!