Existe-t-il un moyen de se connecter pour classer toutes les connexions sortantes créées par un processus? Je suis au courant, netstat
mais 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.
watch -n 2 netstat
entre-temps, mais ce n'est pas une bonne solution, n'est-ce pas.Réponses:
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
auditctl
page de manuel ou ce didacticiel ou d' autres exemples sur ce site . Installez leauditd
package de votre distribution si nécessaire, puisLes journaux sont
/var/log/audit/audit.log
sur toutes les distributions que je connais. Vous pouvez également les rechercher avecausearch
.la source
auditctl -d exit,always -S connect
less /var/log/audit/audit.log
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.
la source
Sous Linux, vous pouvez utiliser
ip_conntrack
pour 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.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.
la source
Je chercherais à utiliser
tcpdump
sur l'interface sortante en regardant lesSYN
demandes sortantes .Si vous vous sentez vraiment aventureux, vous pouvez créer des utilitaires comme:
strace
outruss
signaler tous lesconnect
appels 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.la source