Wireshark: Accès aux interfaces bus USB sans sudo

J'essaie de surveiller un trafic USB en utilisant Wireshark sous Linux (Ubuntu). Si je démarre Wireshark comme mon utilisateur normal sans privilèges root, les interfaces de bus USB ne sont pas listées. Si je sudo wireshark cependant, je vois les interfaces de bus USB. Ceci est peut-être mieux illustré à l'aide de la commande dumpcap pour répertorier les interfaces de capture disponibles:

~$dumpcap -D

 1. eth0 2. any (Pseudo-device that captures on all interfaces) 3. lo 

contre

~$sudo dumpcap -D

 1. eth0 2. usbmon1 (USB bus number 1) 3. usbmon2 (USB bus number 2) 4. usbmon3 (USB bus number 3) 5. usbmon4 (USB bus number 4) 6. usbmon5 (USB bus number 5) 7. usbmon6 (USB bus number 6) 8. usbmon7 (USB bus number 7) 9. usbmon8 (USB bus number 8) 10. any (Pseudo-device that captures on all interfaces) 11. lo 

Existe-t-il une façon de configurer Wireshark pour ne pas avoir à fonctionner en tant que root pour accéder aux interfaces bus usb? J'ai précédemment suivi un guide pour configurer wireshark afin que je n'ai pas à l'exécuter en tant que root pour voir les interfaces Ethernet, alors je me demande si c'est simplement une question de modification des autorisations sur un autre exécutable pour pouvoir voir l'USB Interfaces sans s'exécuter en tant que root …

Oui, il vous suffit d'ajouter une autre fonctionnalité à l'utilitaire dumpcap. CAP_DAC_OVERRIDE permet de remplacer les contrôles d'autorisation sur les fichiers et permet à dumpcap d'accéder aux fichiers nécessaires à la capture USB. Ce n'est pas une belle solution, mais c'est beaucoup mieux que d'exécuter l'ensemble de Wireshark en tant que root. Comme vous avez déjà effectué la plupart du travail, il vous suffit d'exécuter cette dernière commande.

Sudo setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip CAP_DAC_OVERRIDE + eip' / usr / bin / dumpcap

Lisez la réponse de Evan Huus sur ce rapport de bug pour plus d'informations:

https://bugs.launchpad.net/ubuntu/+source/wireshark/+bug/893828

CAP_DAC_OVERRIDE donnera certainement à wireshark la possibilité de capturer usb comme non root, mais il permet également d'accéder à tout le reste. Du point de vue de la sécurité, ce n'est pas bon. Cependant, il y a une autre façon. sudo chmod go+r /dev/usbmon* Cela donnera accès à la surveillance usb. Cela pourrait être affiné par la création d'un groupe nommé wireshark puis de faire le terrain:

 sudo chgrp wireshark /usr/bin/dumpcap sudo chmod g+s /usr/bin/dumpcap sudo chgrp wireshark dev/usbmon* sudo chmod g+r /dev/usbmon* 

Cette configuration est correcte afin que dumpcap ait accès au moniteur usb et soit toujours lié par des restrictions d'autorisation normales. En outre, les programmes qui sont membres du groupe 'wireshark' auront un tel accès.

Pour ceux qui ne savent pas que dumpcap est le programme de travailleurs sous-jacents pour wireshark. Aussi, à moins que des modifications de configuration supplémentaires ne soient effectuées / dev / usbmon *, vous reviendrez aux autorisations par défaut lors du redémarrage de la désactivation de l'accès à la surveillance USB. Il suffit de réexécuter sudo chmod g+r /dev/usbmon* pour activer. Les modifications apportées aux autorisations de dumpcap survivent au redémarrage.