Les mises à jour de sécurité corrigent des vulnérabilités connues (CVE) dans le noyau, les bibliothèques et les services installés. Sur un serveur exposé, les appliquer vite est la première ligne de défense. Chaque distribution fournit de quoi cibler uniquement ces correctifs, sans emporter les montées de version fonctionnelles.
Ce guide montre les commandes qui fonctionnent, et démonte deux recettes très répandues qui ne patchent rien du tout tout en donnant au lecteur l'impression d'avoir sécurisé sa machine. C'est pire qu'une absence de correctif : c'est un correctif imaginaire.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Distinguer les mises à jour de sécurité des mises à jour classiques
- Lister les correctifs de sécurité disponibles sur Debian/Ubuntu et sur RHEL
- Appliquer uniquement les correctifs de sécurité, avec des commandes vérifiées
- Configurer les mises à jour automatiques sans qu'elles fassent plus que prévu
- Vérifier qu'un correctif est bien installé, et si un redémarrage s'impose
- Reconnaître les deux commandes qui ne patchent rien malgré les apparences
Dans quel contexte ?
Section intitulée « Dans quel contexte ? »Les mises à jour de sécurité sont critiques dans toute infrastructure :
- Un CVE critique est publié pour OpenSSL ou le noyau, il faut corriger dans les heures qui suivent.
- Votre serveur web est exposé sur Internet, chaque paquet obsolète élargit la surface d'attaque.
- La conformité impose un délai maximal de patching (30 jours pour les référentiels CIS ou ANSSI).
- Vous gérez une flotte de serveurs et devez automatiser sans risquer une régression.
- Avant un audit, vous devez prouver que le système est à jour sur les CVE critiques.
Mises à jour classiques et mises à jour de sécurité
Section intitulée « Mises à jour classiques et mises à jour de sécurité »| Type | Contenu | Risque de régression | Urgence |
|---|---|---|---|
| Sécurité | Correctifs CVE, patches ciblés | Faible (changements minimaux) | Haute |
| Bugfix | Corrections de bugs fonctionnels | Moyen | Moyenne |
| Feature | Nouvelles fonctionnalités, montées de version | Élevé | Basse |
En production, la stratégie tient en une phrase : appliquer la sécurité automatiquement, et planifier le reste dans une fenêtre de maintenance.
Un quatrième cas échappe complètement à ce tableau : la montée de version majeure de la distribution, par exemple de Debian 12 à Debian 13. Ce n'est pas une mise à jour, c'est une migration, avec ses préparatifs et ses pièges (le nom des interfaces réseau peut changer, /etc/sysctl.conf cesse d'être lu, une base MariaDB mal arrêtée devient irrécupérable). Elle ne s'automatise pas : voyez Debian 13 « Trixie ».
Sur Debian et Ubuntu
Section intitulée « Sur Debian et Ubuntu »Lister les correctifs de sécurité disponibles
Section intitulée « Lister les correctifs de sécurité disponibles »Commencez par rafraîchir le catalogue des paquets. Cette commande ne modifie rien sur le système :
sudo apt updatePour voir ce qui relève de la sécurité, on filtre sur l'origine du paquet, car c'est elle qui porte l'information :
apt list --upgradable 2>/dev/null | grep -i securitylibssl3t64/noble-security 3.0.13-0ubuntu3.6 amd64 [upgradable from: 3.0.13-0ubuntu3.4]openssl/noble-security 3.0.13-0ubuntu3.6 amd64 [upgradable from: 3.0.13-0ubuntu3.4]Le suffixe -security dans le nom de la suite (noble-security, bookworm-security) est ce qui distingue un correctif de sécurité d'une mise à jour ordinaire.
La commande qui ne patche rien
Section intitulée « La commande qui ne patche rien »Voici la recette que l'on trouve partout, et sur ce site même jusqu'à cette relecture :
# NE FAITES PAS CELA : cette commande n'installe riensudo apt-get upgrade -y -o Dir::Etc::SourceList=/etc/apt/sources.list \ -o Dir::Etc::SourceParts=/dev/nullL'idée semble maligne : restreindre APT au seul sources.list en neutralisant le reste. Elle ne fonctionne pas, et le lab le prouve. Sur une Ubuntu 24.04, en simulation :
apt-get -s upgrade -> 7 paquets à installerapt-get -s upgrade -o Dir::Etc::SourceList=... -> 0 paquet à installerSept mises à jour disponibles, zéro appliquée. La raison est que depuis Ubuntu 24.04 et Debian 12, les dépôts ont migré vers le format deb822 : les vraies sources vivent dans /etc/apt/sources.list.d/ubuntu.sources, et /etc/apt/sources.list ne contient plus que des commentaires. La commande pointe donc un fichier vide, et SourceParts=/dev/null exclut le fichier qui compte. APT ne voit plus aucun dépôt, et n'a donc rien à installer.
Le pire n'est pas qu'elle échoue, c'est qu'elle échoue en silence : elle retourne 0, n'affiche aucune erreur, et vous laissez le serveur en croyant l'avoir patché.
La méthode qui fonctionne
Section intitulée « La méthode qui fonctionne »Le seul outil qui sait vraiment ce qu'est une mise à jour de sécurité sur Debian et Ubuntu, c'est unattended-upgrades. Il lit l'origine des paquets, pas leur nom.
sudo apt install unattended-upgradessudo unattended-upgrades --dry-run -vAllowed origins are: o=Ubuntu,a=noble, o=Ubuntu,a=noble-security, o=UbuntuESMApps,a=noble-apps-security, o=UbuntuESM,a=noble-infra-securityPackages that will be upgraded: gzip libncursesw6 libtinfo6 ncurses-base ncurses-bin perl-base tarRetirez --dry-run pour appliquer réellement. Mais lisez d'abord la ligne Allowed origins : elle contient un piège.
Configurer les mises à jour automatiques
Section intitulée « Configurer les mises à jour automatiques »-
Installer le paquet.
apt-listchangesest utile pour recevoir le détail de ce qui a changé.Fenêtre de terminal sudo apt install unattended-upgrades apt-listchanges -
Restreindre aux correctifs de sécurité. C'est l'étape que la plupart des tutoriels sautent, et c'est la plus importante.
Fenêtre de terminal sudo nano /etc/apt/apt.conf.d/50unattended-upgradesUnattended-Upgrade::Allowed-Origins {// "${distro_id}:${distro_codename}"; // commenté : pas le fonctionnel"${distro_id}:${distro_codename}-security";};Unattended-Upgrade::Automatic-Reboot "false";Unattended-Upgrade::Mail "admin@example.com";Unattended-Upgrade::Remove-Unused-Dependencies "true";Option Recommandation en production Allowed-Originsuniquement -security, la ligne du dépôt principal commentéeAutomatic-Rebootfalse: le redémarrage se planifie, il ne se subit pasMailune adresse réellement lue, sinon l'automatisation est aveugle Remove-Unused-Dependenciestruepour éviter l'accumulation de paquets orphelins -
Activer le service. Sans cette commande, la configuration existe mais rien ne l'exécute.
Fenêtre de terminal sudo dpkg-reconfigure -plow unattended-upgrades -
Vérifier que le résultat correspond à l'intention. C'est la seule preuve qui vaille : la liste des origines ne doit plus contenir que celles en
-security.Fenêtre de terminal sudo unattended-upgrades --dry-run -v | grep "Allowed origins"systemctl status apt-daily-upgrade.timer
Vérifier ce qui a été appliqué
Section intitulée « Vérifier ce qui a été appliqué »grep " upgrade " /var/log/apt/history.log | tail -5sudo tail -20 /var/log/unattended-upgrades/unattended-upgrades.logLe premier fichier journalise toutes les opérations APT, le second uniquement celles de l'automate. Comparer les deux révèle les mises à jour appliquées à la main, hors procédure.
Sur RHEL, Rocky et AlmaLinux
Section intitulée « Sur RHEL, Rocky et AlmaLinux »Lister les correctifs de sécurité
Section intitulée « Lister les correctifs de sécurité »DNF, lui, comprend nativement la notion de correctif de sécurité, parce que Red Hat publie des avis (errata) qui lient un paquet à un CVE :
sudo dnf updateinfo list securityRLSA-2026:19224 Important/Sec. vim-minimal-2:8.2.2637-26.el9_8.4.x86_64RLSA-2026:22717 Moderate/Sec. vim-minimal-2:8.2.2637-26.el9_8.5.x86_64RLSA-2026:28209 Moderate/Sec. vim-minimal-2:8.2.2637-26.el9_8.6.x86_64Chaque ligne porte un identifiant d'avis (RHSA chez Red Hat, RLSA chez Rocky) et une sévérité. C'est cette métadonnée qui rend le ciblage possible, et fiable.
Appliquer uniquement les correctifs de sécurité
Section intitulée « Appliquer uniquement les correctifs de sécurité »sudo dnf update --securityPour ne traiter que le plus urgent, filtrez par sévérité :
sudo dnf update --security --sec-severity=Critical| Sévérité | Quand appliquer |
|---|---|
Critical | immédiatement, sans attendre la fenêtre de maintenance |
Important | sous 48 heures |
Moderate | fenêtre de maintenance planifiée |
Low | prochaine maintenance |
Automatiser avec dnf-automatic
Section intitulée « Automatiser avec dnf-automatic »-
Installer l'automate.
Fenêtre de terminal sudo dnf install dnf-automatic -
Le restreindre à la sécurité, dans
/etc/dnf/automatic.conf:[commands]upgrade_type = securityapply_updates = yes[emitters]emit_via = email,stdio[email]email_from = root@localhostemail_to = admin@example.comLa clé est
upgrade_type = security: sa valeur par défaut estdefault, qui applique tout. -
Activer le timer, sans quoi la configuration reste lettre morte.
Fenêtre de terminal sudo systemctl enable --now dnf-automatic.timersystemctl status dnf-automatic.timer
Vérifier ce qui a été appliqué
Section intitulée « Vérifier ce qui a été appliqué »sudo dnf history listsudo dnf history info lastdnf history est plus riche que son équivalent APT : chaque transaction est annulable avec dnf history undo <id>, ce qui offre un vrai rollback après une mise à jour malheureuse.
Vérifier l'état de patch d'un système
Section intitulée « Vérifier l'état de patch d'un système »Un paquet précis est-il à jour ?
Section intitulée « Un paquet précis est-il à jour ? »apt-cache policy opensslopenssl: Installed: 3.0.13-0ubuntu3.6 Candidate: 3.0.13-0ubuntu3.6Si Installed égale Candidate, le paquet est à jour.
dnf list --installed openssldnf check-update opensslSi check-update ne renvoie rien et sort en code 0, le paquet est à jour. Un code 100 signifie qu'une mise à jour existe.
Faut-il redémarrer ?
Section intitulée « Faut-il redémarrer ? »Un correctif du noyau, de la glibc ou de systemd ne prend effet qu'après un redémarrage. La méthode diffère selon la famille.
[ -f /run/reboot-required ] && cat /run/reboot-required.pkgsLe fichier n'existe que si un paquet a demandé un redémarrage, et le second nomme les coupables. Utilisez bien /run/ : /var/run n'est qu'un lien symbolique hérité du passé.
sudo dnf install dnf-utils # needs-restarting n'est PAS livré par défautsudo needs-restarting -rneeds-restarting -r répond directement si un redémarrage est nécessaire. Vérifié en conteneur : la commande n'existe pas sur une Rocky 9 vierge, et il n'y a aucun fichier /run/reboot-required sur RHEL. C'est un réflexe Debian qui ne se transpose pas.
Politique de mise à jour en production
Section intitulée « Politique de mise à jour en production »| Environnement | Sécurité | Fonctionnel | Redémarrage |
|---|---|---|---|
| Dev / Test | automatique, immédiat | automatique | automatique |
| Staging | automatique, immédiat | hebdomadaire | planifié |
| Production | automatique, sécurité seule | fenêtre de maintenance, après validation en staging | fenêtre de maintenance |
La règle qui tient en production : la sécurité s'automatise, le fonctionnel se planifie, le redémarrage se décide. Les trois sont des décisions distinctes, et les confondre est la source la plus fréquente d'incident lié aux mises à jour.
Trois garde-fous complètent le dispositif. Recevez les rapports par courriel, et lisez-les : une automatisation dont personne ne lit la sortie est une automatisation aveugle. Testez le fonctionnel en staging avant la production. Et ne repoussez pas indéfiniment les redémarrages : un correctif de noyau non appliqué ne protège de rien.
Dépannage
Section intitulée « Dépannage »La plupart des problèmes viennent d'une commande qui échoue en silence, ou d'un automate configuré mais jamais déclenché. Le tableau part du symptôme visible.
| Symptôme | Cause probable | Solution |
|---|---|---|
apt update échoue sur une clé | Clé de dépôt expirée ou absente | Poser la clé dans /etc/apt/keyrings/ et la déclarer avec Signed-By:. apt-key n'existe plus depuis Debian 12. |
| La commande « sécurité seulement » n'installe rien | sources.list est vide (format deb822) | Passer par unattended-upgrades, seul outil qui lit l'origine des paquets |
dnf update --security ne fait rien sur Fedora | Fedora ne publie pas d'avis de sécurité | Utiliser dnf update tout court |
needs-restarting: command not found | Paquet absent par défaut sur RHEL | dnf install dnf-utils |
| unattended-upgrades applique aussi le fonctionnel | La ligne ${distro_codename} est active par défaut | La commenter dans 50unattended-upgrades |
| L'automate ne s'exécute jamais | Timer non activé | systemctl enable --now apt-daily-upgrade.timer (ou dnf-automatic.timer) |
| Mise à jour bloquée par un conflit | Paquet retenu ou dépendance cassée | apt --fix-broken install, ou dnf distro-sync |
| Transaction interrompue | Coupure pendant l'opération | dpkg --configure -a, ou dnf history redo last |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Les mises à jour de sécurité corrigent des CVE : prioritaires, et à faible risque de régression.
- Deux recettes très répandues ne patchent rien, en silence et en retournant 0 : la commande APT avec
Dir::Etc::SourceList(lesources.listest vide en deb822), etdnf --securitysur Fedora (qui ne publie aucun avis de sécurité). - Sur Debian et Ubuntu, le seul outil qui distingue vraiment la sécurité est
unattended-upgrades: il lit l'origine des paquets, pas leur nom. - Sa configuration par défaut ne se limite pas à la sécurité : la ligne
${distro_codename}autorise aussi le fonctionnel. Commentez-la en production. - Sur RHEL et ses dérivés,
dnf update --securityfonctionne parce que Red Hat publie des avis liant paquet et CVE.--sec-severity=Criticalcible l'urgence. needs-restartingn'est pas installé par défaut sur RHEL (dnf-utils), et/run/reboot-requiredn'existe pas : c'est un réflexe Debian.- Après un correctif de noyau,
uname -raffiche encore l'ancien tant qu'on n'a pas redémarré. Un serveur à jour qui tourne sur un noyau vulnérable est un audit raté. - En production : la sécurité s'automatise, le fonctionnel se planifie, le redémarrage se décide.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Administrer les paquets avec APT : le format deb822, les clés dans
/etc/apt/keyrings/et les dépôts tiers. - Gérer les paquets avec DNF : historique des transactions, modules et rollback.
- Debian 13 « Trixie » : ce qu'une montée de version majeure change, et pourquoi elle ne s'automatise pas.
- Durcir SSH : réduire l'exposition de l'accès distant, qui reste la première porte visée.