Tcpdump em várias interfaces

10

Eu preciso capturar o tráfego em um servidor do CentOS 5 que atua como um proxy da web com 2 interfaces wan e 1 LAN. A fim de solucionar um problema de proxy estranho, gostaria de ter uma captura de uma conversa completa. Como as conexões externas são balanceadas entre as duas interfaces WAN, pergunto-me se é possível capturar simultaneamente em todas as interfaces.

Eu usei o tcpdump anteriormente, mas ele só admite uma interface por vez. Eu posso lançar 3 processos paralelos para capturar em todas as interfaces, mas depois acabo com 3 arquivos de captura diferentes.

Qual é o jeito certo de fazer isso?

    
por Nahidul islam 23.09.2016 / 20:56

3 respostas

15

De acordo com a página man do tcpdump:

Em sistemas Linux com kernels 2.2 ou posteriores, um argumento de interface de ‘any’ pode ser usado para capturar pacotes de todas as interfaces. Observe que as capturas no dispositivo "qualquer" não serão feitas no modo promíscuo.

Portanto, você deve ser capaz de executar: tcpdump -i any para capturar dados em todas as interfaces ao mesmo tempo em um único arquivo de captura.

    
por 23.09.2016 / 21:02
6

A maneira como eu abordaria isso seria despejar cada interface em um arquivo separado e depois mesclá-los. A interface inclui também o tráfego que pode poluir a captura.

Isso também permite a análise dos fluxos de pacotes por interface sem filtragem complexa.

Eu capturaria em 3 terminais ou colocando o comando em segundo plano com &

As flags -nn desativam a resolução de dns para velocidade, -s 0 salva o pacote completo e -w grava em um arquivo.

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

Eu então mesclaria os arquivos com o comando mergecap do wireshark:

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump
    
por 23.09.2016 / 22:07
0

Para capturar um tcpdump em todas as interfaces use

tcpdump -i any
    
por 17.04.2018 / 11:46