Você pode usar o framework auditd para esse tipo de coisa. Eles não são muito "amigáveis" ou intuitivos, então requer um pouco de escavação da sua parte.
Primeiro, certifique-se de ter o auditd instalado, em execução e de que seu kernel o suporta.
Para o Ubuntu você pode instalá-lo com apt-get install auditd
, por exemplo.
Em seguida, você adiciona uma política de auditoria para monitorar todos os connect
syscalls da seguinte forma:
auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT
Se você estiver usando uma instalação de 32 bits do Linux, precisará alterar b64 para b32.
Este comando irá inserir uma política no framework de auditoria, e qualquer syscalls connect () será agora registrado em seus arquivos de log de auditoria (geralmente /var/log/audit/audit.log
) para você olhar.
Por exemplo, uma conexão com o netcat para a porta 80 do news.ycombinator.com resultará em algo como isto:
type=SYSCALL msg=audit(1326872512.453:12752): arch=c000003e syscall=42 success=no exit=-115 a0=3 a1=24e8fa0 a2=10 a3=7fff07a44cd0 items=0 ppid=5675 pid=7270 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts4 ses=4294967295 comm="nc" exe="/bin/nc.openbsd" key="MYCONNECT"
type=SOCKADDR msg=audit(1326872512.453:12752): saddr=02000050AE84E16A0000000000000000
Aqui você pode ver que o aplicativo /bin/nc.openbsd iniciou uma chamada connect (), se você receber muitas chamadas de conexão e quiser apenas obter um certo ip ou porta, terá que fazer alguma conversão. A linha SOCKADDR contém um argumento saddr, que começa com 0200 seguido pelo número da porta em hexadecimal (0050) que significa 80, e depois o IP em hexadecimal (AE84E16A) que é o IP do news.ycombinator.com de 174.132.225.106.
O framework de auditoria pode gerar muito de logs, então lembre-se de desativá-lo quando tiver cumprido sua missão. Para desativar a política acima, simplesmente substitua -a por -d como tal:
auditctl -d exit,always -F arch=b64 -S connect -k MYCONNECT
Boa documentação sobre o framework auditd: link
Converta endereços IP de / para hex, dec, binário, etc em: link
Conversor hex / dec geral:
link
Uma breve introdução para auditoria, a partir do Stack Stack de segurança de TI. link
Editar 1 :
Outra maneira rápida de fazer isso é criar um loop rápido que despeja os dados de conexão para você, assim:
while true;do
ss -ntap -o state established '( dport = :80 )'
sleep 1
done
Este comando usa o comando ss
(estatísticas de soquete) para despejar as conexões estabelecidas atuais para a porta 80, incluindo qual processo o iniciou. Se houver muitos dados, você pode adicionar | tee /tmp/output
depois de feito para mostrar a saída na tela, bem como gravá-la em / tmp / output para processamento posterior / escavação. Se ele não obtiver a conexão haproxy rápida, tente remover sleep 1
, mas seja cauteloso com registros extensivos se for uma máquina muito utilizada. Modifique conforme necessário!