Registrando as conexões de saída conforme elas acontecem

19

Existe uma maneira de registrar todas as conexões de saída que um processo cria? Estou ciente de netstat , mas parece ser mais um instantâneo de um ponto no tempo do que algo que executa e registra informações durante um período.

Eu só preciso do IP ou nome do host, porta e o processo que faz a conexão.

    
por Rich 26.01.2012 / 10:59

4 respostas

12

No Linux, você pode configurar o subsistema de auditoria para registrar todas as tentativas de estabelecer uma conexão de rede. Para obter informações sobre o subsistema de auditoria, leia a página auditctl man ou este tutorial ou outros exemplos neste site . Instale o pacote auditd da sua distribuição, se necessário, e, em seguida,

auditctl -A exit,always -S connect
    
por 27.01.2012 / 02:10
5

Se você conseguir instalar um kernel personalizado, você deve dar uma olhada em SystemTap . Existem vários exemplos de como rastrear a atividade da rede.

    
por 26.01.2012 / 21:39
3

No Linux, você pode usar ip_conntrack para fazer isso. É um módulo de rastreamento de conexão, usado normalmente para monitorar conexões de protocolos com comportamentos estranhos (como FTP) a serem gerenciados por uma caixa de firewall / NAT.

modprobe ip_conntrack
cat /proc/net/ip_conntrack

Você pode usar o pseudo arquivo para ver as conexões estabelecidas e ainda mais o IP de origem para ver quando se origina da sua caixa.

    
por 26.01.2012 / 14:27
0

Eu procuraria usar tcpdump na interface de saída, observando as solicitações SYN de saída.

Se você se sentir realmente aventureiro, poderá fazer utilitários como: strace ou truss reportar todas as chamadas connect do sistema durante o rastreamento da execução do programa, mas isso é um pouco mais perigoso e tem desvantagens ao lidar com processos multithread .

    
por 26.01.2012 / 19:22

Tags