1 votes

```html <p>Réseautage paquet sniffer pour Linux qui capture les noms des applications?</p> ```

J'ai essayé Wireshark. Il affiche l'adresse IP source et de destination, le numéro de port et le contenu du paquet, mais rien sur l'application utilisant les paquets.

Apparemment, tcpdump est similaire; des données réseau mais aucune information sur l'application.

Wireshark montrait beaucoup plus d'activité que je ne m'y attendais (y compris des adresses IP de destination en dehors de mon réseau domestique) lorsque le navigateur, l'email et d'autres programmes Internet connus étaient fermés et que les autres ordinateurs étaient éteints. Mais sans savoir quel programme envoie ou reçoit, il est difficile d'intervenir.

J'utilise Ubuntu 11.04.

Je ne cherche pas un simple renifleur de réseau; je veux seulement voir ce qui entre et sort de la même machine sur laquelle le renifleur fonctionne.

Y a-t-il quelque chose de similaire sous Linux? Même s'il faut payer? Ou est-ce que je ne sais pas comment ou où chercher le nom de l'application dans Wireshark?

3voto

Mark Points 251

J'avais regardé cela il y a quelque temps et n'avais rien trouvé.
Il existe une technique de script rudimentaire que vous pouvez réaliser basée sur netstat.

Cela repose sur le détail (comme vous l'avez observé) qu'il n'est pas nécessaire de renifler tout le trafic -- ce que vous voulez regarder est la table de connexions et l'identifiant du programme associé.

netstat -npt

Voici comment fonctionnent les options,

-n -- affiche les adresses réseau brutes sans résoudre les noms (accélère les choses)
-p -- donne le PID du programme associé
-t -- se restreint à regarder les connexions TCP

Cela fonctionne assez rapidement et peut être bouclé à travers un script pour garder un journal des données (branché à cron?).
Vous pourriez filtrer ces données pour dériver une base de données de

{nom du programme, identifiant du programme, 5-tuple IP, fenêtre de temps}

L'inconvénient est, comme il n'y a pas d'entrée de connexion UDP (de la sorte que TCP maintient), il faudra vraiment renifler les applications UDP.

J'aimerais vraiment savoir s'il existe un outil existant faisant cela :-) C'est un beau projet.
Je pense avoir écrit un script python sur ces lignes il y a quelque temps.

3voto

Spiff Points 95683

Je pense que la plupart des sniffers ne font pas l'effort d'essayer de déterminer si la machine sur laquelle ils fonctionnent actuellement est l'extrémité de l'un des flux de trafic qu'ils voient (par opposition, par exemple, à voir les trames d'autres machines via un concentrateur ou un port miroir sur un commutateur, ou sur un canal sans fil, ou à voir des trames que la machine actuelle se contente de ponter/router/NAT-gatewaying). Donc, la plupart des sniffers ne prennent pas la peine de vérifier si le nom du processus ou de l'application peut être trouvé, car cela ne peut être trouvé que si la machine locale est l'extrémité du trafic.

Ce n'est pas aussi pratique que de le laisser faire par un sniffer, mais voici quand même une solution de contournement :
Comme vous connaissez les adresses appartenant à votre machine locale, une fois que vous avez trouvé le numéro de port local, vous pouvez rechercher le nom du processus utilisant ce numéro de port en utilisant lsof comme ceci :

sudo lsof +c15 -i :$PORT

...où "$PORT" est le numéro de port qui vous intéresse.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X