Consigner les connexions sortantes à mesure qu'elles se produisent

23

Existe-t-il un moyen de se connecter pour classer toutes les connexions sortantes créées par un processus? Je suis au courant, netstatmais cela semble être davantage un instantané d'un point dans le temps plutôt que quelque chose qui s'exécute et enregistre des informations sur une période.

Je n'ai besoin que de l'adresse IP ou du nom d'hôte, du port et du processus établissant la connexion.

Riches
la source
1
Eh bien, vous pourriez faire quelque chose comme watch -n 2 netstatentre-temps, mais ce n'est pas une bonne solution, n'est-ce pas.
Ulrich Schwarz
1
[Ce fil] [1] devrait répondre à votre question [1]: superuser.com/questions/34782/…
Alien Life Form
Voir aussi Comment savoir quel fichier est actuellement écrit par un processus d'accès aux fichiers
Gilles 'SO- arrête d'être méchant'

Réponses:

15

Sous Linux, vous pouvez configurer le sous-système d'audit pour consigner chaque tentative d'établissement d'une connexion réseau. Pour plus d'informations sur le sous-système d'audit, lisez la auditctlpage de manuel ou ce didacticiel ou d' autres exemples sur ce site . Installez le auditdpackage de votre distribution si nécessaire, puis

auditctl -A exit,always -S connect

Les journaux sont /var/log/audit/audit.logsur toutes les distributions que je connais. Vous pouvez également les rechercher avec ausearch.

Gilles 'SO- arrête d'être méchant'
la source
3
J'avais besoin d'identifier quel processus établissait une connexion sortante. Cela l'a fait instantanément. Pour éviter d'inonder les journaux, supprimez la règle par la suite:auditctl -d exit,always -S connect
Michael Hampton
Comment inspecter les journaux?
luckydonald
@luckydonaldless /var/log/audit/audit.log
Gilles 'SO- arrête d'être méchant'
5

Si vous êtes en mesure d'installer un noyau personnalisé, vous devriez jeter un œil à SystemTap . Il existe de nombreux exemples sur la façon de suivre l'activité du réseau.

Lars Kotthoff
la source
3

Sous Linux, vous pouvez utiliser ip_conntrackpour accomplir cela. Il s'agit d'un module de suivi des connexions, utilisé normalement pour surveiller les connexions des protocoles aux comportements étranges (comme FTP) à gérer par un pare-feu / boîtier NAT.

modprobe ip_conntrack
cat /proc/net/ip_conntrack

Vous pouvez grep le pseudo-fichier pour voir les connexions établies, et grep plus loin l'IP source pour voir quand il provient de votre boîte.

Sean C.
la source
La question n'est peut-être pas nécessairement centrée sur Linux.
Karlson
0

Je chercherais à utiliser tcpdumpsur l'interface sortante en regardant les SYNdemandes sortantes .

Si vous vous sentez vraiment aventureux, vous pouvez créer des utilitaires comme: straceou trusssignaler tous les connectappels système tout en traçant l'exécution du programme, mais cela est un peu plus dangereux et présente des inconvénients lors du traitement de processus multithread.

Karlson
la source