Existe uma maneira de registrar para arquivar todas as conexões de saída que um processo cria? Estou ciente, netstat
mas isso 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 do processo de conexão.
watch -n 2 netstat
enquanto isso, mas essa não é uma solução adequada, é?Respostas:
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
auditctl
página de manual ou este tutorial ou outros exemplos neste site . Instale oauditd
pacote da sua distribuição, se necessário, eOs logs estão em
/var/log/audit/audit.log
todas as distribuições que eu conheço. Você também pode procurá-los comausearch
.fonte
auditctl -d exit,always -S connect
less /var/log/audit/audit.log
Se você conseguir instalar um kernel personalizado, consulte o SystemTap . Existem muitos exemplos de como rastrear a atividade da rede.
fonte
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 de comportamento estranho (como FTP) a serem gerenciados por um firewall / caixa NAT.Você pode fazer o grep do pseudo arquivo para ver as conexões estabelecidas e o IP de origem para ver quando ele se origina da sua caixa.
fonte
Gostaria de usar
tcpdump
a interface de saída para analisar asSYN
solicitações de saída .Se você se sentir realmente aventureiro, poderá criar utilitários como:
strace
outruss
relatar todas asconnect
chamadas do sistema enquanto rastreia a execução do programa, mas isso é um pouco mais perigoso e tem desvantagens ao lidar com processos multithread.fonte