¿Hay alguna forma de iniciar sesión para archivar todas las conexiones salientes que crea un proceso? Soy consciente de netstateso, pero parece ser más una instantánea de un punto en el tiempo que algo que se ejecuta y registra información durante un período.
Solo necesito la IP o el nombre de host, el puerto y el proceso de conexión.

watch -n 2 netstatmientras tanto, pero esa no es una solución adecuada, ¿verdad?Respuestas:
En Linux, puede configurar el subsistema de auditoría para registrar cada intento de establecer una conexión de red. Para obtener información sobre el subsistema de auditoría, lea la
auditctlpágina de manual o este tutorial u otros ejemplos en este sitio . Instale elauditdpaquete de su distribución si es necesario, luegoLos registros están en
/var/log/audit/audit.logtodas las distribuciones que conozco. También puedes buscarlos conausearch.fuente
auditctl -d exit,always -S connectless /var/log/audit/audit.logSi puede instalar un núcleo personalizado, debería echar un vistazo a SystemTap . Hay muchos ejemplos de cómo rastrear la actividad de la red.
fuente
En Linux, puede usar
ip_conntrackpara lograr esto. Es un módulo de seguimiento de conexiones, que se usa normalmente para monitorear conexiones para protocolos de comportamiento extraño (como FTP) para ser administrados por un firewall / caja NAT.Puede grep el pseudo-archivo para ver las conexiones establecidas, y grep aún más la IP de origen para ver cuándo se origina en su caja.
fuente
Buscaría usar
tcpdumpen la interfaz de salida mirando lasSYNsolicitudes de salida .Si se siente realmente aventurero, podría hacer utilidades como:
straceotrussinformar todas lasconnectllamadas al sistema mientras rastrea la ejecución del programa, pero esto es un poco más peligroso y tiene inconvenientes cuando se trata de procesos multiproceso.fuente