Pas Tout A Fait

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

Mise à jour automatique avec Cron-APT

Dernière mise à jour le 07 juin 2011

Maintenir à jour les logiciels d'un serveur est la première étape d'une bonne politique de sécurité. Il est bien sur facile de régulièrement vérifier les mises a jour disponibles et de les installer à la main, mais cette tâche demande une assiduité quotidienne, ce qui n'est pas toujours facile. Alors pourquoi ne pas automatiser la vérification, et même l'installation, et être prévenu en cas de besoin ?
C'est possible grâce à Cron-APT.

logo-debian.png


Présentation

Cron-APT utilise les informations présentent dans les fichiers du répertoire /etc/cron-apt/action.d/ comme paramètres pour "apt-get".
Il est lancé via une tâche Cron et permet ainsi de surveiller l'apparition de mises à jour, puis si besoin, soit d'envoyer un courriel à une adresse de votre choix pour avertir de la présence de mises à jour, soit de mettre automatiquement le système à jour.


Installation

Sous Debian et Ubuntu, rien de plus facile :

apt-get install cron-apt

Utilisation

Les fichiers de configurations de Cron-ATP se trouvent dans le répertoire /etc/cron-apt. Vous y trouverez le fichier de configuration principal, nommé config, ainsi que 9 répertoires, dans l'ordre :

  • action.d : Contient les actions, qui sont les paramètres pour apt-get.
  • config.d : Contient les configurations par action.
  • errormsg.d : Contient les messages à ajouter aux messages d'erreurs standard.
  • logmsg.d : Contient les messages à ajouter aux log et debug standard.
  • mailmsg.d : Contient les messages à ajouter aux courriel standard.
  • mailonmsgs : Contient les messages à ajouter avant le contenu du courriel envoyé. Le fichier contenant le message doit porter le même nom que la directive $MAILON.
  • syslogmsg.d : Contient les messages à ajouter aux messages standard envoyés vers syslog.
  • syslogonmsgs : Contient les messages à ajouter à la ligne de log envoyée à syslog. Le fichier contenant le message doit porter le même nom que la directive $SYSLOGON.

Les fichiers doivent avoir les mêmes noms que ceux présents dans "action.d".
Par exemple si vous avez un fichier nommé "5-install" dans le répertoire "action.d", et que vous voulez un message d'erreur personnalisé, le fichier à créer dans le répertoire "errormsg.d" doit également être nommé "5-install".

Pour simplement illustrer le fonctionnement, si vous ajoutez un fichier contenant "Bonjour !", nommé "0-update", dans le répertoire /etc/cron-apt/mailmsg.d. Tous les courriels envoyés par Cron-APT commenceront par "Bonjour !".

Le fichier "config"

Le fichier "config" est à paramétrer. Les deux principaux éléments à vérifier sont les variables "APTCOMMAND", qui détermine la commande à utiliser (apt-get par défaut, ou aptitude), et MAILTO, qui détermine à qui envoyer les rapports (root par défaut, ou une adresse email quelconque).

APTCOMMAND=/usr/bin/apt-get
MAILTO="root"

Voilà, par défaut Cron-APT va vérifier la disponibilité de mises à jour, les télécharger sans les installer et enfin envoyer un courriel à l'utilisateur "root" pour avertir si besoin. Il s'agit déjà d'une aide précieuse.

cron-apt.png

separateur.png

Automatiser l'installation des mises à jour

Pour installer automatiquement les mises à jour disponibles, il faut créer un fichier nommé "5-install" dans le répertoire "/etc/cron-apt/action.d/". Ajoutez la ligne suivante dans ce fichier :

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

Et voilà, les mises à jour seront installées automatiquement.

Notez que ce comportement n'est pas recommandé sur un serveur !
Il est préférable de faire les mises à jour à la main pour éviter toutes indisponibilités d'un service suite à un problème avec la nouvelles version installée.

separateur.png

Limiter la vérification aux mises à jour de sécurité

Il est parfaitement possible de faire en sorte que seul les mises à jour de sécurité soient installées. Pour cela, créez un fichier nommé /etc/apt/security.sources.list, et ajoutez ceci dans ce fichier :

# squeeze security
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

Ensuite, décommentez la ligne suivante du fichier /etc/cron-apt/config :

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

Dorénavant Cron-APT utilisera uniquement le fichier /etc/cron-apt/security.sources.list pour vérifier la présence de mises à jour, et ignorera donc les mises à jour autres que celles de sécurité.

separateur.png

Spécifier l'intervalle de mise à jour

Comme on peut s'en douter, Cron-APT utilise une tâche cron. Par défaut la vérification est réalisée chaque jour à 4 heures. Libre à vous de modifier ce comportement dans le fichier "/etc/cron.d/cron-apt".

#
# Regular cron jobs for the cron-apt package
#
# Every night at 4 o'clock.
0 4     * * *   root    test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
# Every hour.
# 0 *   * * *   root    test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt /etc/cron-apt/config2
# Every five minutes.
# */5 * * * *   root    test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt /etc/cron-apt/config2

Un système à jour est la première pierre d'un système sécurisé !

Matthieu Patout

Auteur: Matthieu Patout

Restez au courant de l'actualité et abonnez-vous au Flux RSS

Soyez le premier à réagir sur cet article

Ajouter un commentaire Fil des commentaires de ce billet

aucune annexe



Voir Aussi

Présentation de Seeks et installation sous Debian Lenny

La recherche sur internet est l'affaire aujourd'hui de quelques grands groupes commerciaux, dominés...

Lire la suite

286_8618b.jpg

Le port-knocking ou comment cacher un service

La technique du "port-knoking" consiste à insérer une règle préalablement définie dans un...

Lire la suite


Découvrez le Nouveau « Pack Liberté »