Présentation du paquet debian-goodies

Par le dans . Marqué comme , , , avec 3 Commentaires

Présentation du paquet debian-goodies

Un collègue de bureau m’a dernièrement parlé d’un petit programme bien pratique et que je ne connaissais pas encore !

Il se nomme checkrestart et il vous sera sûrement utile, surtout en cette période bien chargée, concernant l’actualité relative aux failles de sécurité de nos chers serveurs …

apt-cache search checkrestart
debian-goodies - Small toolbox-style utilities for Debian systems

Pour plus d’informations, je vous conseille de jeter un coup d’œil à cette page : packages.debian.org/wheezy/debian-goodies

Au sein de ce paquet, on trouve un petit outil très intéressant => checkrestart

Kézako ce truc ?!

checkrestart permet de lister les processus de votre serveur qui ont besoin d’être redémarrés après une mise à jour.

Il est important de savoir qu’après une mise à jour d’un paquet, ou de votre distribution par exemple, un processus en cours d’exécution (et qui n’a pas encore redémarré), peut encore utiliser une ancienne version des librairies qui sont utiles à son fonctionnement. Cela signifie alors que celui-ci est encore vulnérable aux failles de sécurité, le ciblant malgré la mise en place d’un patch de sécurité.

J’ai donc pris pour habitude, d’utiliser le programme checkrestart comme outil d’audit de mes serveurs, afin de vérifier après chaque apt-get upgrade si des binaires doivent être redémarrés ou non. Le script a par ailleurs besoin d’être exécuté en tant que root afin d’effectuer son analyse !

Comment ça s’installe ?!

Rien de plus simple concernant son installation sous Debian, ce paquet fait parti des dépôts officiels de la distribution :

sudo apt-get install debian-goodies

Comment ça s’utilise ?!

Là encore, rien de bien magique, il suffit d’exécuter le programme avec un utilisateur ayant des privilèges élevés :

sudo checkrestart

Les options suivantes sont disponibles :

  • -v, –verbose
    Génère une sortie détaillée (liste de tous les processus trouvés en utilisant les fichiers supprimés ou descripteurs)
  • -p, –package
    Agit seulement sur les fichiers faisant parti d’un paquet, en ignorant les fichiers supprimés qui n’ont pas été associés avec un paquet système.
  • -a, –all
    Traite tous les fichiers supprimés indépendamment de leur emplacement. Du coup le programme analyse les fichiers supprimés, même si normalement ils devraient être ignorés car ils sont situés dans des endroits tels que /tmp, qui sont connus pour produire des faux positifs.
  • -b fichier, –blacklist=fichier
    Prend en compte une liste d’expressions régulières dans un fichier afin de générer une black-liste. Tous les fichiers correspondant aux modèles seront ignorés.
  • -i nom, –ignore=nom
    Ignore les services qui sont associés au nom du paquet fourni en paramètre à la commande

Voici un exemple de résultats renvoyés par le programme sur une de mes machines nécessitant un « restart » de plusieurs services :

Found 29 processes using old versions of upgraded files
(11 distinct programs)
(9 distinct packages)

Of these, 7 seem to contain init scripts which can be used to restart them:
The following packages seem to have init scripts that could be used
to restart them:
apache2.2-bin:
	27410	/usr/lib/apache2/mpm-prefork/apache2
openssh-server:
	22931	/usr/sbin/sshd
postfix:
	11828	/usr/lib/postfix/qmgr
	11849	/usr/lib/postfix/tlsmgr
	11820	/usr/lib/postfix/master
sasl2-bin:
	12097	/usr/sbin/saslauthd
clamav-daemon:
	13194	/usr/sbin/clamd
bind9:
	11575	/usr/sbin/named
clamav-freshclam:
	13554	/usr/bin/freshclam

These are the init scripts:
service apache2 restart
service ssh restart
service postfix restart
service saslauthd restart
service clamav-daemon restart
service bind9 restart
service clamav-freshclam restart

These processes do not seem to have an associated init script to restart them:
python2.7-minimal:
	23983	/usr/bin/python2.7
mysql-server-core-5.5:
	3383	/usr/sbin/mysqld

Et voici un exemple supplémentaire, mais cette fois-ci avec une machine ne nécessitant pas de redémarrage de services :

Found 0 processes using old versions of upgraded files

Informations supplémentaires :

Après une rapide lecture du manuel de ce programme, voici quelques informations que j’ai trouvées intéressantes à partager avec vous :
* Le développeur indique que ce programme peut ne pas fonctionner correctement par moment car celui-ci se repose principalement sur le programme « lsof ». En effet, en cas de mise à jour du programme lsof, une mise à jour de checkrestart peut être nécessaire.
* Checkrestart est particulièrement sensible à la version du noyau utilisé, il peut ne pas fonctionner, en particulier avec les versions trop anciennes et/ou trop récentes.
* Le développeur prévoit éventuellement de réécrire le programme afin d’être moins dépendant à LSOF, mais ne donne pas plus de précisions concernant l’arrivée de cette nouvelle version.

Toutes ces informations peuvent sembler inquiétantes, mais sachez que pour le moment, je n’ai pas rencontré de problème :)

Bonus de dernière minute

Avant de valider mon billet afin de le publier, je suis retourné lire rapidement la page de description du paquet que j’ai évoqué en début d’article.

J’ai alors découvert un autre programme également présent dans le paquet debian-goodies : dpigs

Ce petit outil, créé par le même développeur (Matt Zimmerman), est lui aussi bien pratique car il permet de lister les paquets installés sur votre machine en les triant par taille.

Voici un petit aperçu du retour de la commande sur mon Desktop :

[joel@sublimigeek][~][20:28][0]$ dpigs
232057 nvidia-331-updates
232055 nvidia-331
165140 plexmediaserver
146842 linux-image-3.2.0-79-generic
146829 linux-image-3.2.0-77-generic

Google Manpage étant votre ami, je vous laisse découvrir les options que propose ce programme qui vient s’ajouter à ma trousse à outils :)

3 Commentaires


  1. Super outils que vous nous partagez là. Je suis pas un expert mais la manipulation à pas l’air trop compliqué. Merci

  2. Article très intéressant !!
    J’ai fait un petit test sur une machine :

    Found 153 processes using old versions of upgraded files
    (119 distinct programs)
    (88 distinct packages)

    En effet je suis assez surpris des vieille config qui tourne ahah !!

    • Du coup, tu vas pouvoir reboot tes serveurs histoire de réellement patcher les failles de sécurité =)
      Avec cet outil, c’est fini les uptime de plusieurs centaines de jours en fonction des paquets qui ont été mis à jour !

N'hésitez pas, laissez un commentaire — DoFollow activé sur ce site —


« »