La mise à jour régulière de votre système CentOS est l'un des aspects les plus importants de la sécurité globale du système. Si vous ne mettez pas à jour les packages de votre système d'exploitation avec les derniers correctifs de sécurité, vous laissez votre machine vulnérable aux attaques.
Si vous gérez plusieurs machines CentOS, la mise à jour manuelle des packages système peut prendre du temps. Même si vous gérez une seule installation CentOS, vous pouvez parfois oublier une mise à jour importante. C'est là que les mises à jour automatiques sont utiles.
Dans ce didacticiel, nous allons passer en revue le processus de configuration des mises à jour automatiques sur CentOS 7. Les mêmes instructions s'appliquent à CentOS 6.
Prérequis #
Avant de poursuivre ce didacticiel, assurez-vous que vous êtes connecté en tant qu'utilisateur disposant des privilèges sudo.
Installation du paquet yum-cron #
Le yum-cron
Le package vous permet d'exécuter automatiquement la commande yum en tant que tâche cron pour vérifier, télécharger et appliquer les mises à jour. Il y a de fortes chances que ce package soit déjà installé sur votre système CentOS. S'il n'est pas installé, vous pouvez installer le package en exécutant la commande suivante :
sudo yum install yum-cron
Une fois l'installation terminée, activez et démarrez le service :
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
Pour vérifier que le service est en cours d'exécution, tapez la commande suivante :
systemctl status yum-cron
Des informations sur l'état du service yum-cron seront affichées à l'écran :
● yum-cron.service - Run automatic yum updates as a cron job
Loaded: loaded (/usr/lib/systemd/system/yum-cron.service; enabled; vendor preset: disabled)
Active: active (exited) since Sat 2019-05-04 21:49:45 UTC; 8min ago
Process: 2713 ExecStart=/bin/touch /var/lock/subsys/yum-cron (code=exited, status=0/SUCCESS)
Main PID: 2713 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/yum-cron.service
Configuration de yum-cron #
yum-cron est livré avec deux fichiers de configuration qui sont stockés dans le /etc/yum
répertoire, le fichier de configuration horaire yum-cron-hourly.conf
et le fichier de configuration quotidien yum-cron.conf
.
Le yum-cron
service contrôle uniquement si les tâches cron seront exécutées ou non. Le yum-cron
l'utilitaire est appelé par le /etc/cron.hourly/0yum-hourly.cron
et /etc/cron.daily/0yum-daily.cron
fichiers cron.
Par défaut, le cron horaire est configuré pour ne rien faire. Si des mises à jour sont disponibles, le cron quotidien est configuré pour télécharger mais pas installer les mises à jour disponibles et envoyer des messages à stdout. La configuration par défaut est suffisante pour les systèmes de production critiques où vous souhaitez recevoir des notifications et effectuer la mise à jour manuellement après avoir testé les mises à jour sur des serveurs de test.
Le fichier de configuration est structuré en sections et chaque section contient des commentaires qui décrivent ce que fait chaque ligne de configuration.
Pour modifier le fichier de configuration yum-cron, ouvrez le fichier dans votre éditeur de texte :
sudo nano /etc/yum/yum-cron-hourly.conf
Dans la première section, [commands]
vous pouvez définir les types de packages que vous souhaitez mettre à jour, activer les messages et les téléchargements et configurer pour appliquer automatiquement les mises à jour lorsqu'elles sont disponibles. Par défaut, le update_cmd
est défini par défaut, ce qui mettra à jour tous les packages. Si vous souhaitez définir des mises à jour automatiques sans surveillance, il est recommandé de modifier la valeur en security
qui indiquera à yum de mettre à jour les packages qui ne résolvent qu'un problème de sécurité.
Dans l'exemple suivant, nous avons modifié le update_cmd
à la security
et activé les mises à jour sans surveillance en définissant apply_updates
à yes
:
[commands]
update_cmd = security
update_messages = yes
download_updates = yes
apply_updates = no
random_sleep = 360
La deuxième section définit comment envoyer des messages. Pour envoyer des messages à la fois à la sortie standard et à l'e-mail, modifiez la valeur de emit_via
à stdio,email
.
[emitters]
system_name = None
emit_via = stdio,email
output_width = 80
Dans le [email]
section vous pouvez définir l'adresse e-mail de l'expéditeur et du destinataire. Assurez-vous que vous disposez d'un outil capable d'envoyer des e-mails installé sur votre système, tel que mailx ou postfix.
[email]
email_from = [email protected]
email_to = [email protected]
email_host = localhost
Le [base]
La section vous permet de remplacer les paramètres définis dans le yum.conf
dossier. Si vous souhaitez exclure des packages spécifiques de la mise à jour, vous pouvez utiliser le exclude
paramètre. Dans l'exemple suivant, nous excluons le [mongodb
] paquet.
[base]
debuglevel = -2
mdpolicy = group:main
exclude = mongodb*
Vous n'avez pas besoin de redémarrer le yum-cron
service pour que les modifications prennent effet.
Affichage des journaux #
Utilisez grep pour vérifier si les tâches cron associées à yum sont exécutées :
sudo grep yum /var/log/cron
May 4 22:01:01 localhost run-parts(/etc/cron.hourly)[5588]: starting 0yum-hourly.cron
May 4 22:32:01 localhost run-parts(/etc/cron.daily)[5960]: starting 0yum-daily.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2121]: starting 0yum-hourly.cron
May 4 23:01:01 localhost run-parts(/etc/cron.hourly)[2139]: finished 0yum-hourly.cron
L'historique des mises à jour yum est enregistré dans le /var/log/yum
dossier. Vous pouvez afficher les dernières mises à jour à l'aide de la commande tail :
sudo tail -f /var/log/yum.log
May 04 23:47:28 Updated: libgomp-4.8.5-36.el7_6.2.x86_64
May 04 23:47:31 Updated: bpftool-3.10.0-957.12.1.el7.x86_64
May 04 23:47:31 Updated: htop-2.2.0-3.el7.x86_64