Como capturar rastreamentos de rede contendo apenas uma string específica?

1

Eu tenho um adaptador instalado e funcionando no servidor RHEL que enfrenta a desconexão quando uma mensagem de sinal específica é enviada da fonte à qual esse adaptador está conectado.

Para capturar os pacotes brutos do endereço IP de origem, estou usando o utilitário tcpdump . No entanto, o problema com o uso de tcpdump é que ele captura continuamente todos os pacotes da origem, incluindo o tráfego no qual não estou interessado.

Isso leva a uma enorme utilização do espaço em disco, pois há uma enorme entrada de dados do endereço IP de origem nessa porta específica, usada para comunicação entre o meu adaptador e o servidor de origem.

Existe uma maneira ou utilitário padrão do Linux que pode ser usado para capturar apenas os pacotes que possuem uma string específica, por exemplo. eventLossOccurred para que, no final, eu apenas tenha esses pacotes capturados que contenham essas mensagens?

Eu pesquisei as várias opções de tcpdump , mas não encontrei uma maneira de obter os resultados desejados usando esse utilitário.

    
por Ankit Vashistha 20.09.2016 / 10:56

1 resposta

1

Você pode usar 'tshark' (parte do wireshark) e usar o filtro de exibição "contains / matches" para procurar por uma string. Supondo que seja um pacote tcp, seu filtro poderia ser algo como isto

tshark -Y 'tcp contains "eventLossOccurred"'

usando 'matches', você pode especificar expressões regulares perl

NOTE: Isso exibirá apenas os detalhes do pacote, você não pode usá-lo para capturar o despejo completo de pacotes no formato PCAP. Modifique as opções do tshark para exibir os detalhes necessários

    
por 21.09.2016 / 20:41