Red Hat, Rocky Linux et AlmaLinux : Guide d’Administration
Si Debian et Ubuntu dominent le web et le cloud public, l’écosystème Red Hat règne sur les infrastructures d’entreprise : banques, assurances, secteur public, télécoms. Connaître l’administration d’un système RHEL (Red Hat Enterprise Linux) ou de ses dérivés est une compétence très demandée, et c’est aussi le socle des certifications RHCSA et RHCE. Dans ce guide, nous couvrons la gestion des paquets avec DNF et RPM, la sécurité avec SELinux et firewalld, ainsi que la gestion des abonnements Red Hat.
1. L’Écosystème RHEL et la Fin de CentOS
Un peu d’histoire
Pendant quinze ans, CentOS a été la copie gratuite et binairement compatible de RHEL : le même système, sans le support commercial. En 2020, Red Hat a mis fin à CentOS Linux au profit de CentOS Stream, qui n’est plus une copie de RHEL mais sa version de développement : Stream se situe en amont de RHEL, pas en aval.
Cette décision a immédiatement fait naître deux successeurs communautaires, fondés respectivement par le créateur original de CentOS et par l’éditeur CloudLinux :
- Rocky Linux : projet communautaire porté par la Rocky Enterprise Software Foundation ;
- AlmaLinux : projet porté par la fondation AlmaLinux, avec un objectif de compatibilité ABI (et non plus copie bit à bit depuis 2023).
Quelle distribution choisir ?
| Distribution | Positionnement | Coût | Usage recommandé |
|---|---|---|---|
| RHEL | Version commerciale de référence | Abonnement payant (gratuit jusqu’à 16 machines en développement) | Production avec support éditeur |
| Rocky Linux | Reconstruction 1:1 de RHEL | Gratuit | Production sans besoin de support |
| AlmaLinux | Compatible ABI avec RHEL | Gratuit | Production, correctifs parfois plus rapides |
| CentOS Stream | Amont de RHEL, rolling | Gratuit | Développement, tests, contribution |
| Fedora | Laboratoire d’innovation de Red Hat | Gratuit | Poste de travail, veille technologique |
Pour un serveur de production sans contrat de support, Rocky Linux et AlmaLinux sont des choix équivalents en pratique : mêmes paquets, mêmes versions, même documentation RHEL applicable.
# Identifier la distribution et la version
cat /etc/redhat-release
cat /etc/os-release
2. DNF : le Gestionnaire de Paquets
DNF (Dandified YUM) a remplacé YUM depuis RHEL 8. La commande yum existe toujours, mais ce n’est qu’un lien symbolique vers dnf.
Opérations de base
# 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
Contrairement à APT, il n’y a pas d’équivalent de apt update à lancer manuellement : DNF rafraîchit ses métadonnées automatiquement quand elles sont expirées.
L’historique des transactions : le grand atout de DNF
DNF journalise chaque transaction et permet de l’annuler, ce qu’APT ne sait pas faire nativement :
# 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
Les modules (Application Streams)
Depuis RHEL 8, certains logiciels sont distribués en « modules » proposant plusieurs versions majeures en parallèle :
# 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
Gestion des dépôts
# 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. Fichiers .repo et EPEL
Anatomie d’un fichier .repo
Les dépôts sont définis dans des fichiers /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
Les variables $releasever (version majeure) et $basearch (architecture) sont substituées automatiquement, ce qui permet d’écrire des fichiers .repo portables.
EPEL : le dépôt indispensable
EPEL (Extra Packages for Enterprise Linux) est un dépôt maintenu par la communauté Fedora qui fournit des milliers de paquets absents de RHEL : htop, ncdu, fail2ban, certbot, etc.
# 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 : le Niveau Bas
Comme dpkg chez Debian, RPM est l’outil de bas niveau sous-jacent à 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 : la Sécurité Renforcée
SELinux (Security-Enhanced Linux) est activé par défaut sur toute la famille RHEL. C’est un système de contrôle d’accès obligatoire (MAC) : même le compte root est contraint par la politique. Première règle d’or : ne désactivez jamais SELinux pour « régler » un problème ; apprenez plutôt à le diagnostiquer.
Les modes
# 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
Le mode permanent se règle dans /etc/selinux/config avec trois valeurs possibles : enforcing (la politique est appliquée), permissive (violations journalisées mais autorisées, utile pour le diagnostic) et disabled (à proscrire).
Les contextes
Chaque fichier, processus et port porte une étiquette de contexte. La plupart des blocages viennent d’un contexte de fichier incorrect :
# 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
Cas typique : vous déplacez des fichiers avec mv depuis votre répertoire personnel vers /var/www/html, et Nginx renvoie une erreur 403. Le déplacement conserve le contexte d’origine (user_home_t) au lieu de httpd_sys_content_t. Un restorecon -Rv corrige le problème.
Diagnostiquer avec 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
Les booléens
Les booléens sont des interrupteurs qui activent des permissions prédéfinies sans modifier la politique :
# 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 : le Pare-feu
firewalld est le pare-feu par défaut de la famille RHEL. Il repose sur la notion de zones : chaque interface réseau est rattachée à une zone qui définit le niveau de confiance et les services autorisés.
# É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
Autoriser des services et des ports
# 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
Piège classique : sans l’option --permanent, la règle est active immédiatement mais disparaît au redémarrage ; avec --permanent, elle survit au redémarrage mais ne s’applique qu’après un --reload. Pour les deux à la fois, lancez la commande deux fois (avec et sans --permanent) ou utilisez --permanent suivi de --reload.
# Changer la zone d'une interface
sudo firewall-cmd --permanent --zone=internal --change-interface=eth1
sudo firewall-cmd --reload
7. Abonnements RHEL : subscription-manager
Spécificité de RHEL par rapport à Rocky et Alma : l’accès aux dépôts exige un abonnement enregistré. Depuis 2023, Red Hat offre un abonnement développeur gratuit couvrant jusqu’à 16 systèmes.
# 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
Sur Rocky Linux et AlmaLinux, subscription-manager n’existe pas : les dépôts sont publics, comme sur Debian.
8. Venir de Debian : Table de Correspondance
Si vous connaissez déjà APT, ce tableau vous fera gagner du temps :
| Opération | Debian/Ubuntu (apt) | RHEL/Rocky/Alma (dnf) |
|---|---|---|
| Rafraîchir les index | apt update | Automatique (dnf makecache pour forcer) |
| Mettre à jour le système | apt upgrade / apt full-upgrade | dnf update |
| Installer | apt install paquet | dnf install paquet |
| Supprimer | apt remove / apt purge | dnf remove |
| Rechercher | apt search motif | dnf search motif |
| Détails d’un paquet | apt show paquet | dnf info paquet |
| Nettoyer les orphelins | apt autoremove | dnf autoremove |
| Fichiers d’un paquet | dpkg -L paquet | rpm -ql paquet |
| Propriétaire d’un fichier | dpkg -S /chemin | rpm -qf /chemin |
| Annuler une transaction | Pas d’équivalent natif | dnf history undo N |
| Dépôts | /etc/apt/sources.list.d/ | /etc/yum.repos.d/ |
| Pare-feu par défaut | ufw (Ubuntu) | firewalld |
| MAC par défaut | AppArmor | SELinux |
Bonnes Pratiques
- Pour la production sans support commercial, choisissez Rocky Linux ou AlmaLinux ; réservez CentOS Stream aux environnements de test.
- Ne désactivez jamais SELinux : passez en mode permissif le temps du diagnostic, corrigez les contextes avec
restoreconetsemanage, puis revenez en enforcing. - Installez EPEL et activez CRB dès la mise en service d’un serveur : vous en aurez besoin.
- Utilisez
dnf historyavant de paniquer après une mise à jour problématique :undoest votre filet de sécurité. - Avec firewalld, pensez systématiquement au couple
--permanent+--reload. - Appliquez les correctifs de sécurité régulièrement avec
dnf update --security, ou automatisez-les avec le paquetdnf-automatic. - Sur RHEL, désenregistrez les machines décommissionnées pour libérer les abonnements.
Conclusion
L’écosystème Red Hat impose un cadre plus strict que le monde Debian : SELinux actif par défaut, pare-feu à zones, abonnements sur RHEL. Cette rigueur est précisément ce qui en fait le standard des infrastructures d’entreprise. En maîtrisant DNF et son historique de transactions, les fichiers .repo, les contextes SELinux et firewalld, vous couvrez l’essentiel du quotidien d’un administrateur RHEL — et une bonne partie du programme de la certification RHCSA. Pour aller plus loin, explorez systemd en profondeur, l’automatisation avec Ansible (autre produit Red Hat) et la conteneurisation avec Podman, l’alternative Red Hat à Docker.
À propos de InSkillCoach
Expert en formation et technologies
Coach spécialisé dans les technologies avancées et l'IA, porté par GNeurone Inc.
Certifications:
- AWS Certified Solutions Architect – Professional
- Certifications Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion