Installer et utiliser Wireshark sous Slackware 13.37

Parmi les outils utiles à l'administrateur système et réseau, l'un de ceux qui se retrouve dans les premières places est Wireshark. Si ce nom ne vous évoque rien, il s'agit un logiciel permettant de capturer et analyser du trafic réseau. C'est à dire que lorsque l'on pense avoir tout configuré correctement, ouvert les ports nécessaires de son firewall, suivi toutes les étapes de la documentation et que rien ne fonctionne comme prévu, c'est Wireshark qu'il faut utiliser pour voir ce qui se passe vraiment.

Wireshark n'est pas proposé officiellement sous Slackware. Il existe bien un paquet pour tcpdump, qui se range dans la même catégorie, mais qui ne dispose pas d'interface graphique. Par contre Wireshark requiert la même bibliothèque libpcap pour la capture de paquets, et GTK pour ce qui concerne l'interface graphique, aucun souci donc pour procéder à l'installation.

Téléchargez les sources ainsi que le fichier de signatures. Puis récupérez la clé GPG pour vérifier le fichier de signatures.

gpg --search-key 0x21F2949A

Une seule clé devrait être indiquée en résultat, entrez le chiffre '1' pour l'ajouter à votre trousseau. Contrôlez ensuite le fichier de signatures :

gpg --verify SIGNATURES-1.6.7.txt

Aucune erreur ne devrait empêcher de passer à la vérification des sources :

grep -h --color $(sha1sum wireshark-1.6.7.tar.bz2) SIGNATURES-1.6.7.txt

Vous devez obtenir une ligne avec le nom du fichier et la somme SHA1 correspondante en rouge, signifiant que la signature à bien été trouvée.

L'extraction et l'installation de Wireshark ne diffère pas beaucoup d'autres logiciels, si ce n'est que la phase de compilation est très longue du fait de nombreux dissectors (90 Mo de sources, 450 Mo après compilation) pour analyser finement certains protocoles. Ce sont d'ailleurs ces mêmes dissectors qui soulèvent des problèmes d'utilisation : la capture de paquets réseau demande des privilèges élevés mais l'analyse ne doit pas se faire via le compte root, afin de limiter les risques de sécurité.

Évidemment, il serait possible de se connecter en tant que root pour effectuer une capture, la sauvegarder puis l'analyser avec son compte utilisateur, mais c'est une méthode qui se révèle vite fastidieuse... Comme la capture est déléguée à un binaire particulier, la documentation de Wireshark fournit le moyen de gérer cela de manière élégante en limitant son accès à un groupe spécifique, que l'on crée pour l'occasion :

groupadd -g 1003 wireshark

Ajoutez un utilisateur lambda à ce groupe (attention, cela n'est effectif qu'à la prochaine connexion) :

usermod -G $(echo $(id -G -n lambda | tr ' ' ','), wireshark) lambda

Modifiez les droits sur le programme dumpcap :

chgrp wireshark /usr/local/bin/dumpcap
chmod 754 /usr/local/bin/dumpcap

Et enfin exécutez la commande définissant des capabilities sur ce programme :

setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/local/bin/dumpcap

Les capabilities permettent une gestion des fonctionnalités du noyau Linux, en attribuant des permissions qui ne sont habituellement que de l'apanage de root. Vous pourrez trouver plus de documentation (toujours en anglais) sur le site officiel du noyau ou dans la page de manuel.

Après reconnexion, il suffit de lancer Wireshark et le trafic réseau ne devrait plus avoir de mystères pour vous !

publié le 28 avril 2012