Liste des connexions réseau actives * et antérieures *

0

Sur Linux, je sais que je peux lister les connexions réseau actives avec lsof -iou netstat. Cependant, autant que je sache, cette liste ne répertorie que les connexions actuellement ouvertes .

Si un processus établit une connexion courte puis y met fin (comme, par exemple, un programme "phoning home"), il me manquerait à moins que je ne lance lsofpar hasard à ce moment précis. Existe-t-il un moyen d'obtenir une liste des serveurs auxquels je me suis connecté? Par exemple, un outil qui écrit l'adresse IP sur un fichier chaque fois qu'une nouvelle connexion est ouverte, à l'échelle du système.

Garder un renifleur de réseau tel que wirehark ouvert en permanence, juste pour cette tâche, semble excessif.

Federico Poloni
la source

Réponses:

1

Si un processus établit une connexion courte puis y met fin (comme par exemple un programme "phoning home")

La plupart de ces programmes créent une connexion TCP pour garantir que les informations arriveront à la "maison". Si tel est le cas, la netstatcommande sera alors votre meilleur ami, car toutes les connexions TCP fermées resteront pendant un temps petit ou un peu plus long TIME_WAIT, et netstat --inet -nrépertorie ces connexions (ainsi que les connexions actuellement ouvertes).

Si vous n'êtes pas chanceux et que ce processus sournois utilise une connexion UDP ou si vous souhaitez surveiller le trafic pendant une période plus longue, vous devez surveiller tout le trafic réseau de la machine à l'aide d'outils tels que TCPDump ou IPTraf. IPTraf est plus simple, car il n'enregistre que les adresses IP et les ports, TCPDump est un outil plus avancé (malgré son nom, il peut également surveiller le trafic UDP et ICMP) et enregistre tout le trafic réseau.

Gabor Garami
la source
1

Je ne l'ai pas essayé, mais avez-vous envisagé d'utiliser iptables avec une LOGcible sur la chaîne de sortie?

Quelque chose comme ce qui suit (non testé, mais comprend l'essentiel).

iptables -I OUTPUT ! -i lo -p tcp --syn -j LOG --log-prefix 'New TCP'
iptables -I OUTPUT ! -i lo -p udp -m state --state NEW -j LOG --log-prefix 'New UDP'

Cela consignera une fois pour chaque connexion TCP et une fois pour chaque nouvelle session UDP, à l'exclusion de l'interface de bouclage, qui semble correspondre à peu près à ce que vous demandez. Vous pouvez ensuite grepconsulter les journaux de votre système pour savoir après coup quelles connexions sortantes ont été établies.

Cependant, il ne vous dira pas (et je ne pense pas que iptables soit tout à fait ordinaire) quelle application a initié la connexion et vous obtiendrez des tonnes de journaux qui ne serviront probablement à rien (car le nombre de connexions légitimes établies sera certainement nain de téléphoner à la maison fait).

un CVn
la source
C'est une bonne suggestion aussi. Je ne sais pas pourquoi l'utilisation de la journalisation au niveau du pare-feu n'a pas été envisagée. Merci.
Federico Poloni
-1

Vous devez écouter plus de 65 000 ports. Seul le renifleur de réseau du pare-feu peut le faire. Configurez simplement le filtre correct (pour les nouvelles demandes de connexion) pour les règles de journalisation du renifleur ou du pare-feu.

septembre
la source