Como posso capturar tráfego com o tcpdump e uma janela deslizante ou uma espécie de “logrotate”?

1

Eu quero capturar algum tráfego com o tcpdump para solução de problemas. O problema é que o erro não é reproduzível. Para não encher os discos com capturas, gostaria de capturar o tráfego com algum tipo de janela deslizante.

Digamos que eu grave a captura em um arquivo e quando o arquivo atingir um tamanho de 1GB, ele irá remover os pacotes mais antigos e escrever os novos. Dessa forma, eu só obteria o tráfego por algumas horas, mas espero ter os pacotes certos quando o usuário ligar.

Não consegui encontrar uma opção para o tcpdump. Tem alguém uma ideia de como resolver isso?

    
por Christian 25.06.2010 / 09:32

2 respostas

4

A opção -c pode ajudá-lo com isso:

   -c     Exit after receiving count packets.

Então, você obteria um arquivo traffic.dmp circular:

while :
do
 tcpdump -i eth0 -c 50000 -C 1 -w traffic.dmp
done

Se você a soltar em um loop for, poderá obter uma série de arquivos:

for file in 1 2 3 4 5
do
 tcpdump -i eth0 -c 50000 -C 1 -w traffic${file}.dmp
done

Basta ajustar os números depois de descobrir um número que não é grande para o seu disco capturar algumas horas de pacotes.

-C também parece interessante:

   -C     Before writing a raw packet to a  savefile,  check  whether  the
          file  is  currently  larger than file_size and, if so, close the
          current savefile and open a new one.  Savefiles after the  first
          savefile  will  have the name specified with the -w flag, with a
          number after it, starting at 1 and continuing upward.  The units
          of  file_size  are  millions  of  bytes  (1,000,000  bytes,  not
          1,048,576 bytes).
    
por 25.06.2010 / 09:53
1

Se você insistir em usar o tcpdump, a resposta de davey é a correta. No entanto, existem outros pacotes de captura, produzindo arquivos pcap, com mais opções para esse tipo de trabalho. Vamos mencionar:

  • tshark, parte do programa Wireshark . Seu -a ("Pare de gravar em um arquivo de captura após atingir um tamanho de valor kilobytes") e -b ("Quando o primeiro arquivo de captura for preenchido, o TShark irá alternar a gravação para o próximo arquivo        e assim por diante ") opções parecem particularmente interessantes

  • pcapdump, parte do pacote pcaputils . Veja as opções de configuração interval= (mova para o próximo arquivo após N segundos de captura) e filefmt= (padrão para gerar o nome dos arquivos de captura).

por 26.06.2010 / 22:22