Installer automatiquement les mises a jour de sécurité sous Debian

11 décembre 2014 Sécurité 0 Commentaire

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