Mise à jour automatique avec Cron-APT
Publié le 10 avril 2011 - GNU/Linux
Dernière mise à jour le 07 juin 2011
- Article
- |
- Commentaires (0)
- |
- Fichiers attachés (0)
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.

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.

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.

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é.

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é !


