Mises à jour automatiques

Ben Cotton, Petr Bokoc, Jean-Baptiste Holcroft Version all Last review: 2022

Vous devez décider d’utiliser ou non les mises à jour automatiques des xref .adoc[DNF] sur chacune de vos machines. Il existe un certain nombre d’arguments pour et contre les mises à jour automatiques. Cependant, il n’y a pas de réponse unique à cette question : c’est à l’administrateur système ou au propriétaire de chaque machine de décider si les mises à jour automatiques sont souhaitables ou non pour cette machine. L’une des qualités d’un bon administrateur système est sa capacité à évaluer les faits et les suggestions d’autrui, puis à décider par lui-même de ce qu’il convient de faire.

La règle générale qui s’applique dans la plupart des cas est la suivante :

Si la machine est un serveur critique, pour lequel un temps d’arrêt non planifié d’un service sur la machine ne peut être toléré, alors vous ne devez pas utiliser les mises à jour automatiques. Dans le cas contraire, vous pouvez choisir de les utiliser.

Même la règle générale ci-dessus comporte des exceptions ou peut être contournée. Certains problèmes peuvent être résolus par une configuration spéciale de votre part. Par exemple, vous pourriez créer votre propre dépôt DNF sur un serveur local et n’y mettre que des mises à jour testées ou fiables. Vous pouvez ensuite utiliser les mises à jour automatiques à partir de votre propre dépôt. De telles configurations, bien que peut-être plus difficiles à mettre en place et à maintenir, peuvent éliminer une grande partie des risques inhérents aux mises à jour automatiques.

Comment les mises à jour automatiques sont-elles effectuées ?

Vous pouvez utiliser un service pour télécharger et installer automatiquement toutes les nouvelles mises à jour (par exemple les mises à jour de sécurité).

Le paquet RPM dnf-automatic en tant que composant DNF fournit un service qui est démarré automatiquement.

Installation et paramètres de dnf-automatic

Sur une nouvelle installation de Fedora 22 avec les options par défaut, le RPM dnf-automatic n’est pas installé. La première commande ci-dessous installe ce RPM :

sudo dnf install dnf-automatic

Par défaut, dnf-automatic s’exécute à partir des configurations du fichier /etc/dnf/automatic.conf. Ces configurations ne font que télécharger, mais n’appliquent aucun des paquets. Afin de modifier ou d’ajouter des configurations, ouvrez le fichier .conf en tant qu’utilisateur root (ou en utilisant sudo) à partir d’une fenêtre de terminal.

env EDITOR='gedit -w' sudoedit /etc/dnf/automatic.conf

Une description détaillée des paramètres de dnf-automatic est fournie sur la page dnf-automatic.

Exécuter dnf-automatic

Une fois la configuration terminée, exécutez :

systemctl enable --now dnf-automatic.timer .

pour activer et démarrer le timer systemd.

Vérifier le statut de dnf-automatic :

systemctl list-timers 'dnf-*'

Modifications à partir de Fedora 26

A partir de Fedora 26, il y a maintenant trois timers qui contrôlent dnf-automatic.

  • dnf-automatic-download.timer - Téléchargement uniquement

  • dnf-automatic-install.timer - Télécharger et installer

  • dnf-automatic-notifyonly.timer - Ne notifie que via les émetteurs configurés dans /etc/dnf/automatic.conf

Vous pouvez toujours utiliser les paramètres download_updates et apply_updates dans /etc/dnf/automatic.conf.

Peut-on se fier aux mises à jour de DNF ?

Dnf dans Fedora a la vérification des clés GPG activée par défaut. En supposant que vous avez importé les clés GPG correctes, et que vous avez toujours gpgcheck=1 dans votre /etc/dnf/dnf.conf, alors nous pouvons au moins supposer que toutes les mises à jour installées automatiquement n’ont pas été corrompues ou modifiées par rapport à leur état d’origine. En utilisant les vérifications de clés GPG, il n’y a aucun moyen pour un attaquant de générer des paquets que votre système acceptera comme valides (à moins qu’il n’ait une copie de la clé privée correspondant à celle que vous avez installée) et toute corruption de données pendant le téléchargement sera détectée.

Toutefois, la question s’applique également à la qualité des mises à jour. L’installation du paquet causera-t-elle des problèmes sur votre système ? Nous ne pouvons pas répondre à cette question. Chaque paquet passe par un processus d’assurance qualité et est présumé ne pas poser de problème. Mais des problèmes surviennent et l’assurance qualité ne peut pas tester tous les cas possibles. Il est toujours possible qu’une mise à jour provoque des problèmes pendant ou après l’installation.

Pourquoi utiliser les mises à jour automatiques ?

Le principal avantage de l’automatisation des mises à jour est que les machines sont susceptibles d’être mises à jour plus rapidement, plus souvent et plus uniformément que si les mises à jour sont effectuées manuellement. Nous voyons trop de machines compromises sur l’internet qui auraient été sûres si les dernières mises à jour avaient été installées en temps voulu.

Ainsi, même s’il convient de rester prudent avec toute solution de mise à jour automatisée, en particulier sur les systèmes de production, cela vaut vraiment la peine d’être envisagé, au moins dans certaines situations.

Raisons d’utiliser les mises à jour automatiques

Bien que personne ne puisse déterminer à votre place si votre machine est une bonne candidate pour les mises à jour automatiques, il y a plusieurs choses qui tendent à faire d’une machine une meilleure candidate pour les mises à jour automatiques.

Voici quelques facteurs qui pourraient faire de votre machine une bonne candidate pour les mises à jour automatiques :

  • Il est peu probable que vous appliquiez les mises à jour manuellement, pour quelque raison que ce soit.

  • La machine n’est pas critique et des temps d’arrêt occasionnels non planifiés sont acceptables.

  • Vous pouvez vous passer de l’accès à distance à la machine jusqu’à ce que vous puissiez vous rendre sur place pour résoudre les problèmes.

  • Vous n’avez pas de données irremplaçables sur la machine, ni de sauvegardes appropriées de ces données.

Si tous les points ci-dessus s’appliquent à votre (vos) machine(s), les mises à jour automatiques peuvent être la meilleure option pour sécuriser votre machine. Dans le cas contraire, vous devrez évaluer les risques et décider par vous-même si les mises à jour automatiques sont la meilleure solution.

Raisons de ne pas utiliser les mises à jour automatiques

Bien que personne ne puisse déterminer à votre place si votre machine est un mauvais candidat pour les mises à jour automatiques, il y a plusieurs éléments qui tendent à faire d’une machine un mauvais candidat pour les mises à jour automatiques.

Voici quelques éléments qui peuvent faire de votre machine un mauvais candidat pour les mises à jour automatiques :

  • Il s’agit d’un service essentiel pour lequel vous ne voulez pas risquer de subir des temps d’arrêt imprévus.

  • Vous avez installé un logiciel personnalisé, compilé un logiciel à partir de la source ou utilisé un logiciel tiers dont les exigences en matière de version du paquet sont strictes.

  • Vous avez installé un noyau personnalisé, des modules de noyau personnalisés, des modules de noyau tiers, ou vous avez une application tierce qui dépend des versions du noyau. Cela peut ne pas être un problème si vous excluez les mises à jour du noyau, ce qui est le cas par défaut dans les fichiers dnf.conf de Fedora. (Voir aussi bug #870790 - vous devrez peut-être modifier la section de base pour ajouter exclude=kernel*.)

  • Votre environnement exige des procédures méticuleuses de contrôle des changements.

  • Vous mettez à jour à partir d’autres dépôts DNF tiers que Fedora (core, extras, legacy), dépôts qui peuvent entrer en conflit dans les schémas de version pour les mêmes paquets.

Il existe également d’autres raisons pour lesquelles l’installation de mises à jour automatiques sans test peut être une mauvaise idée. En voici quelques-unes :

  • La nécessité de sauvegarder vos fichiers de configuration avant une mise à jour. Même les meilleurs fichiers de spécifications de paquets peuvent contenir des erreurs. Si vous avez modifié un fichier qui n’est pas signalé comme un fichier de configuration, vous risquez de perdre vos modifications de configuration. Une mise à jour peut également avoir un format de fichier de configuration différent, ce qui nécessite une reconfiguration manuelle. Il est souvent préférable de sauvegarder vos fichiers de configuration avant d’effectuer des mises à jour sur des paquets critiques tels que les paquets de serveurs de messagerie, web ou de base de données.

  • Effets secondaires indésirables. Certains paquets peuvent avoir des effets secondaires gênants, en particulier ceux qui ont des tâches cron. Les mises à jour de paquets de base comme openssl, openldap, sql servers, etc. peuvent avoir un effet sur de nombreux autres paquets apparemment sans rapport.

  • Bogues. De nombreux paquets contiennent des logiciels ou des scripts d’installation bogués. La mise à jour peut créer des problèmes pendant ou après l’installation. Même les bogues cosmétiques, tels que ceux trouvés dans les précédentes mises à jour de Mozilla, qui entraînent la suppression ou la rupture des icônes de l’utilisateur, peuvent être gênants ou problématiques.

  • Les mises à jour automatiques peuvent ne pas compléter l’ensemble du processus nécessaire pour sécuriser le système. Par exemple, DNF peut installer une mise à jour du noyau, mais tant que la machine n’est pas redémarrée (ce que DNF ne fera pas automatiquement), les nouveaux changements ne prendront pas effet. Il en va de même pour le redémarrage des démons. L’utilisateur peut ainsi avoir l’impression d’être en sécurité alors qu’il ne l’est pas.

Bonnes pratiques pour l’utilisation des mises à jour automatiques

Si vous décidez d’utiliser les mises à jour automatiques, vous devez au moins prendre quelques mesures pour vous assurer que vous êtes à jour.

Vérifier les mises à jour de paquets qui ont été effectuées automatiquement, et noter si elles nécessitent une intervention (manuelle) supplémentaire. Vous pouvez surveiller ce que DNF a mis à jour via son fichier journal ( généralement /var/log/dnf.log).

Vous pouvez surveiller la disponibilité des mises à jour automatiquement par email après avoir modifié le fichier de configuration de dnf-automatic (habituellement /etc/dnf/automatic.conf).

[emitters]
emit_via = email

[email]
# L'adresse à partir de laquelle les messages électroniques sont envoyés.
email_from = root@localhost.com

# Liste des adresses auxquelles envoyer les messages.
email_to = root

# Nom de l'hôte auquel se connecter pour envoyer des messages électroniques.
email_host = localhost

Vous devez remplacer root par une adresse email réelle à laquelle vous voulez que le rapport soit envoyé, et localhost par une adresse réelle d’un serveur SMTP. Ce changement signifie qu’après l’exécution de dnf-automatic, il vous enverra par courriel des informations sur les mises à jour disponibles, un journal sur les paquets téléchargés, ou les mises à jour installées en fonction des réglages dans automatic.conf.

Méthodes alternatives

Comme alternative à dnf-automatic, auter peut être utilisé. Son fonctionnement est similaire à celui de dnf-automatic, mais il offre une plus grande souplesse dans la planification et quelques options supplémentaires, notamment l’exécution de scripts personnalisés avant ou après les mises à jour et les redémarrages automatiques. Cela se fait au prix d’une plus grande complexité de configuration.

sudo dnf install auter

Vous devez ensuite éditer la configuration. Les descriptions des options sont contenues dans le fichier de configuration /etc/auter/auter.conf.

Auter n’est pas planifié par défaut. Ajoutez une planification pour --prep (si vous voulez pré-télécharger les mises à jour) et --apply (installer les mises à jour). Le job cron installé que vous pouvez voir dans /etc/cron.d/auter contient beaucoup d’exemples.

Pour que auter s’exécute immédiatement sans attendre l’exécution de la tâche cron, par exemple à des fins de test ou de débogage, vous pouvez simplement le lancer à partir de la ligne de commande :

auter --apply

Si vous souhaitez empêcher auter de fonctionner, y compris à partir de n’importe quel travail cron :

auter --disable

Alternatives aux mises à jour automatiques

Notifications

Au lieu des mises à jour automatiques, dnf-automatic peut seulement télécharger les nouvelles mises à jour et peut vous alerter par email des mises à jour disponibles que vous pouvez alors installer manuellement. Ceci peut être configuré en éditant le fichier /etc/dnf/automatic.conf.

Planifier les mises à jour

Un autre problème courant est l’exécution de mises à jour automatiques lorsque cela n’est pas souhaité (jours fériés, week-ends, vacances, etc.). S’il y a des moments où personne ne sera là pour résoudre les problèmes découlant des mises à jour, il est préférable d’éviter d’effectuer les mises à jour ces jours-là.

Ce problème peut être résolu en modifiant le timer de dnf-automatic en utilisant la description de la page Comprendre et administrer systemd.

Autres moyens de protection

Si vous n’utilisez pas les mises à jour automatiques, vous pouvez également envisager de doter votre machine d’autres formes de protection pour l’aider à se défendre contre les attaques qui pourraient se produire avant que les mises à jour ne soient en place. Il peut s’agir d’un pare-feu externe, d’un pare-feu basé sur l’hôte (comme iptables, ipchains et/ou tcp wrappers), de ne pas effectuer de tâches dangereuses sur l’ordinateur (comme naviguer sur le web, lire des courriels, etc.) et de surveiller le système pour détecter les intrusions (avec des vérificateurs de journaux système, des systèmes IDS, l’authentification ou la surveillance des connexions, etc.).