Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

Automatiser les mises à jour de sécurité sous Debian

Tout utilisateur de Debian qui se respecte connaît les dépôts de paquets spécialement conçus pour colmater les failles de sécurité. Dès qu'un problème est identifié, l'équipe de sécurité applique les correctifs existants et met tout ça à disposition le plus vite possible. Nous allons voir ici comment faire en sorte que ces mises à jour soient appliquées automatiquement, par exemple une fois par jour.

La première chose à faire est d'installer le paquet cron-apt, qui est spécialement fait pour ça :

# apt-get install cron-apt

Ce paquet permet de lancer une mise à jour à intervalle régulier. Le problème est que nous ne voulons mettre à jour que les paquets concernés par les problèmes de sécurité, et pas l'ensemble de notre distribution. Ceci est particulièrement important si on utilise une distribution testing ou unstable. Pour cela nous allons créer une source de paquets restreinte aux dépôts de sécurité. On va donc éditer un fichier /etc/apt/security.sources.list contenant la ligne suivante :

deb http://security.debian.org/ testing/updates main contrib non-free

(remplacez testing par stable ou unstable selon votre config)

Il faut ensuite indiquer à cron-apt d'utiliser ce fichier. Pour cela, ouvrez le fichier /etc/cron-apt/config et ajoutez ou décommentez la ligne suivante :

OPTIONS="-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/security.sources.list"

Par défaut, cron-apt ne fait que mettre à jour les sources de paquets, et ne les installe pas. Si vous souhaitez automatiser également l'installation, il faut que vous rajoutiez un fichier nommé 5-install dans le répertoire /etc/cron-apt/action.d/ et qui contient la ligne suivante :

dist-upgrade -y -o APT::Get::Show-Upgraded=true

Attention : il est normalement déconseillé d'effectuer ce genre d'actions automatiquement sur un serveur. En cas de problèmes lors de la mise à jour, ceci peut empêcher certains services de redémarrer. Dans tous les cas, pensez à bien regarder les rapports envoyés par Cron pour vérifier que tout s'est bien dérouolé...

Et voilou. Il nous reste à régler la fréquence et le moment des mises à jour. Par défaut elles ont lieu une fois par jour à 4h du matin (cf le fichier /etc/cron.d/cron-apt). Ceci est très bien si vous avez un serveur qui tourne en permanence. Mais pour une machine de bureau, on pourra plutôt utiliser anacron et faire un lien sympolique vers /usr/sbin/cron-apt dans /etc/cron.daily :

# ln -s /usr/sbin/cron-apt /etc/cron.daily/cron-apt

Commentaires

1. Le mardi 21 août 2007, 23:21 par LEIôPAR

Merci pour cette astuce.
Chapeau pour la concision car c'est pile poil ce dont j'avais besoin !

2. Le samedi 7 février 2009, 04:51 par illovae

yep, idem ici, merci :)

3. Le vendredi 3 avril 2009, 12:10 par Viggen

Merci pour ce tuto. Bien pratique :-)
Cependant, dans les logs, je vois que cron-apt ne s'est exécuté qu'en download only.
Un paramètre que j'aurai zappé?

4. Le lundi 6 avril 2009, 11:23 par Juba

@Viggen

Non, tu n'as rien zappé, par défaut cron-apt se contente de mettre à jour la source de paquets et n'installe rien automatiquement.

Je viens de mettre à jour le billet pour indiquer comment automatiser cette installation...

5. Le mardi 7 avril 2009, 12:00 par Viggen

Merci beaucoup pour cette mise à jour.
J'avais trouvé entre temps.

En tout cas, bravo pour la précision de ce billet :-)