Mise à jourUne des règles les plus élémentaires de la sécurité informatique, c’est de garder son système à jour. Sur un serveur dédié qui héberge des services critiques avec une ouverture frontale sur Internet, il est même vital de patcher le plus rapidement possible les vulnérabilités connues de la machine.

Sur un système comme Rocky Linux, c’est tout à fait possible d’automatiser cette tâche dans la mesure où il s’agit d’une distribution de qualité entreprise. Concrètement, cela signifie que le distributeur fournit des mises à jour à faible risque, censées corriger des bugs ou des failles de sécurité sans pour autant introduire des nouvelles fonctionnalités susceptibles de perturber le bon fonctionnement des applications hébergées.

Si vous gérez un parc de machines conséquent, vous avez peut-être l’habitude de vous réserver un jour dans la semaine pour gérer toutes vos mises à jour. Peut-être vous demandez-vous dans un coin de votre tête si la mise à jour hebdomadaire est suffisante. Quoi qu’il en soit, il s’agit là d’une tâche répétitive, et comme tous les administrateurs dignes de ce nom le savent, les tâches répétitives sont là pour être automatisées.

Évidemment, rien ne nous empêcherait de définir une tâche automatique sous forme de cronjob. Sous Red Hat Enterprise Linux et Rocky Linux, il vaut mieux utiliser l’outil DNF Automatic, qui est spécialement pensé pour cette tâche.

AstuceL’outil DNF Automatic est le successeur de yum-cron, qui gérait les mises à jour automatiques sous Red Hat Enterprise Linux 7.x et CentOS 7.x.

Installation

DNF Automatic est fourni par les dépôts officiels de Red Hat Enterprise Linux et Rocky Linux :

# dnf install -y dnf-automatic

Configuration

Sauvegardez le fichier de configuration par défaut :

# cd /etc/dnf/
# cp -v automatic.conf automatic.conf.orig
'automatic.conf' -> 'automatic.conf.orig'

Adaptez la configuration suivante :

# /etc/dnf/automatic.conf

[commands]
upgrade_type = default
random_sleep = 0
network_online_timeout = 60
download_updates = yes
apply_updates = yes

[emitters]
system_name = sd-155842.dedibox.fr
emit_via = email

[email]
email_from = root@sd-155842.dedibox.fr
email_to = info@microlinux.fr
email_host = localhost

Quelques remarques :

  • Le fichier automatic.conf installé par défaut est amplement commenté, et toutes les options disponibles y sont très clairement documentées.
  • La directive upgrade_type vous laisse le choix d’installer l’intégralité des mises à jour disponibles (default) ou alors uniquement celles qui corrigent une vulnérabilité du système (security).
  • Dans l’exemple ci-dessus, j’ai choisi la solution la plus simple qui consiste à appliquer l’ensemble des mises à jour disponibles avec une notification subséquente par e-mail.
  • Oui, vous faites bien de remplacer mon adresse e-mail par la vôtre.

Mise en service

J’active le service :

# systemctl enable dnf-automatic.timer --now

J’affiche les infos de la tâche automatique :

# systemctl list-timers dnf-*

J’effectue un premier test manuel :

# /usr/bin/dnf-automatic /etc/dnf/automatic.conf --timer

Quelques secondes plus tard, je reçois une notification par e-mail qui m’informe que le paquet lynis a été mis à jour automatiquement :

DNF Automatic

AstuceNe vous souciez pas trop du gloubi-boulga du genre [1m[32m avant le nom des paquets mis à jour. Ce sont là des caractères de contrôle du shell, censés définir la couleur des caractères, et affichés tels quels dans mon client mail.

AstuceSi l’on souhaite tester le bon fonctionnement de DNF Automatic et de l’envoi de mails avec un système à jour, on peut procéder au downgrade manuel d’un paquet. La politique de Rocky Linux consiste à ne pas conserver les anciennes versions des paquets dans les dépôts officiels, mais on peut s’en sortir en choisissant un paquet en provenance d’un dépôt tiers comme Lynis. Dans ce cas, il suffit d’invoquer la commande dnf downgrade lynis et le tour est joué.

Et le noyau ?

La mise à jour du noyau nécessite un redémarrage du serveur. La solution pragmatique consiste ici à programmer une tâche automatique qui redémarre le système une fois par semaine à une heure de faible affluence. Voici un exemple :

# crontab -e
# Reboot every Monday at 03:30 AM
30 03 * * 7 /usr/bin/systemctl reboot

AstuceDans la configuration par défaut, Rocky Linux conserve les trois derniers kernels. Les versions plus anciennes sont automatiquement supprimées du système. Ce comportement est défini par le paramètre installonly_limit dans le fichier de configuration /etc/yum.conf.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


2 commentaires

Stef · 26 avril 2024 à 15 h 08 min

Bonjour Nicolas,
sur RL9.2, lorsque je tente un dnf downgrade lynis il m’est répondu: La version la plus ancienne du paquet lynis est déjà installée, impossible de le rétrograder.
J’ai tenté avec le paquet php: même message.
Donc pour le moment, je ne peux pas tester l’installation automatique des mises à jour.
Une idée?
Merci bonne journée.

    kikinovak · 26 avril 2024 à 15 h 44 min

    Pour l’instant tous mes articles portent sur Rocky Linux 8. Je suis en train de faire la transition vers Rocky Linux 9, mais ce n’est pas pour tout de suite. Et ce sera basé sur Ansible.

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *