web-dev-qa-db-fra.com

problème d'autorisations tcpdump

Je ne parviens pas à exécuter tcpdump. Je dois exécuter tcpdump avec un utilisateur non root. J'ai cherché mon problème sur le Web et j'ai compris que je devrais:

Sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

Cela m'a permis de lancer tcpdump avec mon utilisateur mais ensuite j'ai eu:

you don't have permission to capture on that device

sur tout appareil, j'ai essayé de capturer.

Également allé un peu force brute et a fait:

Sudo chmod +s /usr/sbin/tcpdump

Cela ne l'a pas fait non plus.

11
Sivan Sigal

C'est un peu tard, mais j'ai juste eu le même problème. Vous devez donner à tcpdump l'autorisation et la possibilité d'autoriser les captures de paquets bruts et la manipulation de l'interface réseau .

Ajoutez un groupe de capture et ajoutez-y vous-même:

Sudo groupadd pcap
Sudo usermod -a -G pcap $USER

Ensuite, modifiez le groupe tcpdump et définissez les autorisations:

Sudo chgrp pcap /usr/sbin/tcpdump
Sudo chmod 750 /usr/sbin/tcpdump

Enfin, utilisez setcap pour donner à tcpdump les autorisations nécessaires:

Sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

Faites attention, cela permettra à tout le monde du groupe pcap de manipuler les interfaces réseau et de lire les paquets bruts!

Je l'ai trouvé ici: Configurez tcpdump pour fonctionner en tant que non-root

23
Horst

Peut-être que cela pourrait fonctionner. Semblable à ce qui a déjà été posté. Il n'a pas été testé sur Ubuntu.

(utilisez un groupe dont votre utilisateur est membre) chgrp wireshark/usr/sbin/tcpdump

setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip'/usr/sbin/tcpdump

en utilisant getcap/usr/sbin/tcpdump, vous devriez voir/usr/sbin/tcpdump = cap_net_admin, cap_net_raw + eip

0
Serjan