Accorder des privilèges root à Wireshark : l’exécuter avec sudo sous Linux
Wireshark est un outil inestimable pour capturer et analyser le trafic réseau. La capacité de capturer un tel trafic est généralement limitée aux comptes de super-utilisateur sur un système Linux. Cela signifie que pour utiliser Wireshark sous Linux, vous devrez exécuter le programme avec les permissions root.
Le processus d’accès à Wireshark avec root peut varier légèrement, en fonction de la façon dont Wireshark a été installé (par exemple, via le gestionnaire de paquets ou installé à partir des sources), ainsi que de la distribution Linux que vous utilisez. Parfois, nous devons accorder manuellement les capacités appropriées au binaire Wireshark (dumpcap). Dans ce tutoriel, nous allons passer en revue le processus d’octroi des privilèges root à Wireshark. Le processus consiste à donner au fichier exécutable Wireshark certaines capacités de mise en réseau. À la fin, Wireshark devrait fonctionner comme prévu grâce à l’utilisation de la commande sudo.
Dans ce tutoriel, vous allez apprendre :
- Comment définir manuellement les capacités de fichier pour Wireshark avec la commande
setcap - Comment reconfigurer manuellement les paramètres root de Wireshark avec
dpkgdans Ubuntu - Comment modifier manuellement les autorisations de fichiers pour Wireshark avec
chownetchmod - Comment exécuter Wireshark avec les privilèges root
Accorder des privilèges root à Wireshark
Nous supposerons que si vous lisez ceci, vous rencontrez probablement des problèmes pour exécuter Wireshark sur votre système Linux, et vous avez déterminé que le problème est dû à un manque d’autorisations suffisantes. Ci-dessous, nous allons couvrir différentes façons de configurer Wireshark avec les capacités correctes pour fonctionner comme prévu.
Installation à partir d’un package sur Ubuntu ou Debian
Lors de l’installation de Wireshark à partir du gestionnaire de paquets sur des distributions telles que Debian Linux et Ubuntu Linux, l’invite suivante s’affiche lors de l’installation :
sudo apt install wireshark
Votre choix sur cette invite déterminera si vous devez utiliser la commande sudo lors de la capture de paquets ou si les utilisateurs normaux peuvent les capturer sans autorisations de superutilisateur. Si vous sélectionnez la mauvaise option et que vous souhaitez revenir en arrière pour sélectionner une réponse différente, vous pouvez reconfigurer le package à tout moment en exécutant :
sudo dpkg-reconfigure wireshark-common
La même invite apparaîtra à nouveau. Répondez Oui si vous souhaitez autoriser tous les utilisateurs à capturer des paquets sans accès root.
Définition manuelle des capacités des fichiers
Wireshark utilise le programme dumpcap pour capturer les paquets. Si votre noyau Linux prend en charge les fonctionnalités de fichier, vous aurez besoin des capacités appropriées à configurer sur le fichier binaire dumpcap pour qu’il fonctionne correctement. Si vous avez installé Wireshark à partir du gestionnaire de paquets, il est probable qu’il ait déjà été configuré pour vous. Dans d’autres scénarios, vous devrez peut-être utiliser la commande setcap pour configurer manuellement les fonctionnalités de fichier appropriées.
Tout d’abord, découvrons où notre binaire
dumpcapest stocké, en utilisant la commandewhichci-dessous :which dumpcap /usr/bin/dumpcapLa sortie révèle que notre binaire
dumpcapest stocké dans/usr/bin/dumpcap.Ensuite, nous devons utiliser la commande
setcappour donner au binairedumpcaples permissions decap_net_rawetcap_net_admin+eip. Cela permettra au programme de capturer des paquets réseau qui pourront ensuite être analysés par l’application Wireshark.sudo setcap cap_net_raw,cap_net_admin+eip /usr/bin/dumpcapEnsuite, vous pouvez vérifier que ces paramètres ont fonctionné comme prévu en ouvrant Wireshark avec un compte non super-utilisateur et en essayant de faire une capture en direct sur l’une des interfaces réseau de votre système.
Définition manuelle des autorisations de fichier
Le troisième scénario que nous allons aborder ne devrait s’appliquer qu’aux systèmes Linux dans lesquels le noyau ou le système de fichiers ne prend pas en charge les capacités de fichiers. Dans ce cas, nous pouvons utiliser les permissions de fichier Linux pour nous assurer que nous exécutons le binaire dumpcap avec les permissions root.
Tout d’abord, découvrons où notre binaire
dumpcapest stocké, en utilisant la commandewhichci-dessous :which dumpcap /usr/bin/dumpcapLa sortie révèle que notre binaire
dumpcapest stocké dans/usr/bin/dumpcap.Ensuite, utilisez la commande
chownpour faire du compterootle propriétaire du fichier :sudo chown root /usr/bin/dumpcapEnfin, nous utiliserons la commande
chmodpour activer le bitsetuid.sudo chmod u+s /usr/sbin/dumpcapLE SAVIEZ-VOUS ?
Lorsque le bitsetuidest utilisé, le comportement des permissions par défaut est modifié de sorte que lorsqu’un exécutable est lancé (dumpcapdans ce cas), il ne s’exécute pas avec les privilèges de l’utilisateur qui l’a lancé, mais avec ceux du propriétaire du fichier à la place. Ainsi, par exemple, si un exécutable a le bit setuid défini sur lui, et qu’il appartient à root, lorsqu’il est lancé par un utilisateur normal, il s’exécutera avec les privilèges root.
Réflexions finales
Dans ce tutoriel, nous avons vu comment accorder des privilèges root à Wireshark sur un système Linux. Plus précisément, cela impliquait de modifier les autorisations sur le fichier binaire dumpcap, qui est fourni avec Wireshark et est le fichier responsable de la capture de paquets proprement dite.
Nous avons couvert trois scénarios différents ici, afin de répondre aux besoins des utilisateurs avec diverses distributions et capacités du noyau système. Pour les utilisateurs d’Ubuntu qui ont installé Wireshark via le gestionnaire de paquets APT, le processus d’installation de dpkg nous présente une invite simple pour activer les autorisations root sur Wireshark. Sinon, nous pouvons modifier les capacités des fichiers avec setcap pour accorder les capacités appropriées sans avoir à modifier toutes les autorisations de fichiers Linux associées. Enfin, dans les scénarios où la définition des capacités de fichier n’est pas disponible, nous pouvons recourir à l’utilisation de chown et du paramètre setuid de chmod pour nous assurer que tous les utilisateurs sont en mesure d’utiliser la capture de paquets Wireshark avec des privilèges root.

