Tenir sa distribution à jour c’est important puisque cela vous permet de vous prémunir des différentes failles de sécurité comblées lors de la mise à jour de vos paquets. Cette « option » n’est pas activée par défaut puisqu’il est préférable de tester une mise a jour avant de la mettre en production sur des serveurs critiques. Etant donné que pour la majorité d’entre nous notre serveur nous permet d’héberger quelques sites il est tout à fait possible de mettre en place cette fonctionnalité sans risquer que tout parte en carafe.
Installer automatiquement les mises a jour de sécurité sous Debian
Commençons par installer le paquet unattended-upgrades en lançant la commande suivante
apt-get install unattended-upgrades
Ouvrons le fichier de configuration principal qui nous permet de définir nos options principales de mise a jour automatique
nano /etc/apt/apt.conf.d/50unattended-upgrades
Ici nous souhaitons installer seulement des mises a jour de sécurité, il faut donc veiller a ce que les lignes suivantes ne soient pas commentées : ce qui devrait être le cas (Le double « // » sert à commenter, donc tout ce qui suit « // » ne sera pas pris en compte.)
"origin=Debian,archive=stable,label=Debian-Security"; "origin=Debian,archive=oldstable,label=Debian-Security";
Certains paquets peuvent être mis en liste noire et ne seront donc pas concernés par ces mises a jour de sécurité. Pour mettre un paquet en liste noire, ajoutez le à la liste :
Unattended-Upgrade::Package-Blacklist { // "vim"; // "libc6"; // "libc6-dev"; // "libc6-i686"; };
Ajoutez les lignes suivantes dans ce fichier de configuration.
Unattended-Upgrade::AutoFixInterruptedDpkg "true"; Unattended-Upgrade::MinimalSteps "true"; Unattended-Upgrade::InstallOnShutdown "false"; Unattended-Upgrade::Mail "root"; Unattended-Upgrade::MailOnlyOnError "true"; Unattended-Upgrade::Remove-Unused-Dependencies "true"; Unattended-Upgrade::Automatic-Reboot "false";
Nous allons maintenant créer un nouveau fichier mettant en pratique l’installation automatique de ces mises a jour de sécurité
nano /etc/apt/apt.conf.d/02periodic
Collez-y les lignes de configuration suivantes
// Enable the update/upgrade script (0=disable) APT::Periodic::Enable "1"; // Do "apt-get update" automatically every n-days (0=disable) APT::Periodic::Update-Package-Lists "1"; // Do "apt-get upgrade --download-only" every n-days (0=disable) APT::Periodic::Download-Upgradeable-Packages "1"; // Run the "unattended-upgrade" security upgrade script // every n-days (0=disabled) // Requires the package "unattended-upgrades" and will write // a log in /var/log/unattended-upgrades APT::Periodic::Unattended-Upgrade "1"; // Do "apt-get autoclean" every n-days (0=disable) APT::Periodic::AutocleanInterval "7";
Il est possible que certaines mises a jour de sécurité pose certains problèmes lorsque dpkg vous pose des questions, comme dans cet exemple
Setting up php5-fpm (5.4.4-14+deb7u10) ... Configuration file `/etc/php5/fpm/pool.d/www.conf' ==> Deleted (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** www.conf (Y/I/N/O/D/Z) [default=N] ? dpkg: error processing php5-fpm (--configure): EOF on stdin at conffile prompt
Afin de vous prémunir de ce risque, nous allons demander par défaut a dpkg d’utiliser les fichiers de configuration existants. Créons le fichier /etc/apt/apt.conf.d/local
nano /etc/apt/apt.conf.d/local
Ajoutons les lignes suivantes
Dpkg::Options { "--force-confdef"; "--force-confold"; }
Le résultat des mises à jour automatiques sera Journalisé dans le répertoire /var/log/unattended-upgrades