Skip to content

Mises à jour de sécurité automatiques Linux

Maintenez Linux corrigé automatiquement avec unattended-upgrades et dnf-automatic, des dépôts de confiance et une surface logicielle réduite.

Publié le Mis à jour le 3 min de lecture

Les logiciels non corrigés sont le vecteur d'intrusion le plus fréquent. La plupart des compromissions ne reposent pas sur des zero-days inédits ; elles réutilisent des exploits publics pour des vulnérabilités corrigées des semaines ou des mois plus tôt. La réponse est simple mais décisive : corriger vite, corriger automatiquement, et réduire la quantité de logiciels à corriger. Cet article traite des mises à jour de sécurité automatiques sous Debian/Ubuntu et RHEL/Fedora, de la confiance des dépôts et de la réduction de surface.

Pourquoi le patching est le contrôle le plus rentable

Le délai entre la divulgation d'une vulnérabilité et son exploitation active s'est réduit à quelques jours, parfois quelques heures. La latence de correction devient donc un risque mesurable. Définissez un SLA de correction et tenez-le : CVE critiques/exploitées sous 48 heures, gravité élevée sous 7 jours, le reste sous 30 jours. L'automatisation sert à ce que les 80 % de routine ne mobilisent personne, laissant l'équipe gérer uniquement les exceptions soumises à la gestion du changement.

Le patching s'articule avec le reste de la posture. Un hôte corrigé mais tentaculaire reste une grande cible : combinez les mises à jour rapides avec la minimisation des services décrite dans services et systemd et la couche de détection de détection d'intrusion.

Debian et Ubuntu : unattended-upgrades

Installez l'outillage et le compagnon qui redémarre les services après la mise à jour d'une bibliothèque :

sudo apt update
sudo apt install -y unattended-upgrades needrestart apt-listchanges

Modifiez /etc/apt/apt.conf.d/50unattended-upgrades pour contrôler les origines appliquées automatiquement. Limitez-vous aux origines de sécurité :

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-apps-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailReport "on-change";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

Activez les exécutions planifiées en écrivant /etc/apt/apt.conf.d/20auto-upgrades :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";

Testez toujours avant de faire confiance en production :

sudo unattended-upgrade --dry-run --debug

needrestart détecte les démons qui utilisent encore d'anciennes bibliothèques supprimées et les redémarre, afin qu'une mise à jour d'OpenSSL prenne réellement effet sans redémarrage complet. Configurez-le en mode automatique (a) pour les hôtes non surveillés dans /etc/needrestart/needrestart.conf.

RHEL et Fedora : dnf-automatic

sudo dnf install -y dnf-automatic

Modifiez /etc/dnf/automatic.conf pour appliquer réellement les mises à jour de sécurité au lieu de seulement les télécharger :

[commands]
upgrade_type = security
apply_updates = yes
random_sleep = 360

[emitters]
emit_via = email
[email]
email_to = root

Activez le timer (et non un service lancé à la main) :

sudo systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

Confiance des dépôts et épinglage

Les mises à jour automatiques ne valent que la confiance des dépôts qu'elles tirent. Utilisez exclusivement des dépôts signés GPG et vérifiez les clés hors bande avant de les importer :

# Debian/Ubuntu : lister les clés de confiance
apt-key list 2>/dev/null
ls -l /etc/apt/keyrings/ /etc/apt/trusted.gpg.d/

# RHEL/Fedora : confirmer que gpgcheck est actif
grep -r gpgcheck /etc/yum.repos.d/

Évitez les dépôts tiers non signés ; chacun est un point d'entrée pour la chaîne d'approvisionnement. Si un dépôt tiers est indispensable, épinglez-le pour qu'il ne puisse pas écraser silencieusement la distribution. Sous Debian, utilisez /etc/apt/preferences.d/ avec une Pin-Priority inférieure à 500 pour les origines non essentielles.

Réduire la surface des paquets

Chaque paquet installé est une surface d'attaque et une charge de correction. Auditez et élaguez :

# Lister ce qui est installé
dpkg -l            # Debian/Ubuntu
rpm -qa            # RHEL/Fedora

# Supprimer un paquet et sa configuration
sudo apt purge -y telnet rsh-client
sudo dnf remove -y telnet

# Nettoyer les dépendances orphelines
sudo apt autoremove --purge
sudo apt-mark showauto

Suivre les vulnérabilités

Sachez ce qui reste en attente avant que le scanner ne vous le dise :

apt list --upgradable                  # Debian/Ubuntu
sudo debsecan --suite $(lsb_release -cs) --only-fixed
sudo dnf updateinfo list security      # RHEL/Fedora

Alimentez ces résultats dans la piste d'audit exigée par les référentiels de conformité afin que l'état des correctifs soit prouvé, et non supposé.

Vérifier

Confirmez que l'automatisation est active et qu'un essai à blanc est propre :

# Debian/Ubuntu
systemctl status unattended-upgrades.service
cat /var/log/unattended-upgrades/unattended-upgrades.log
sudo unattended-upgrade --dry-run

# RHEL/Fedora
systemctl list-timers dnf-automatic.timer
journalctl -u dnf-automatic.service --since "-7d"

Si les journaux montrent que les origines de sécurité sont appliquées à l'heure prévue et que l'essai à blanc ne signale aucune erreur, le patching automatique fonctionne. Réexaminez la configuration à chaque ajout d'un dépôt ou d'un service majeur.