Tcpdump no ec2 não vendo todos os pacotes

5

Estou executando o tcpdump em uma instância do Amazon EC2 para monitorar o tráfego HTTP indo para o Nginx (isso é apenas uma caixa de teste, o único recurso é a página de teste de exemplo).

Executando o tcpdump com o comando

# tcpdump -vn -i any port 80

mostra os pacotes do pedido de um navegador para o site, mas mostra nada ao acessar a página usando um script Python (usando a biblioteca Solicitações) ou com pacotes criados manualmente (Scapy).

  • Não há nenhum firewall local em execução e os grupos de segurança estão configurados corretamente.
  • Os scripts funcionam corretamente: posso capturar as transações no tcpdump na extremidade local com bastante facilidade e elas retornam a página com o status 200 OK.
  • Salvar os pacotes diretamente em um arquivo (-w) também não faz diferença, descartando problemas de buffering (acredito?)
  • Eu também tentei ver se as VLANs estão causando o problema, mas sem sorte; grepping para "80" ainda não dá resultados.

Perguntas:

  1. O que poderia estar causando o tcpdump a perder esses pacotes bastante específicos que estão definitivamente passando pelo firewall para o Nginx e voltando novamente?
  2. Por que os pacotes do Firefox são vistos enquanto os pacotes enviados dos scripts passam?

Obrigado

    
por Jordan 17.07.2014 / 16:50

3 respostas

1

Uma tecnologia que foi lançada depois que essa pergunta foi feita é Registros de Fluxo VPC . Isso permite que você analise o tráfego de rede em seu VPC, filtrado como quiser.

O VPC Flow Logs não mostra todo o conteúdo do pacote, apenas o básico, como origem, destino, porta, protocolo, tamanho, hora e ação, como aceitar ou rejeitar, e alguns outros. Ele também não mostra o tráfego originado e finalizado dentro de uma instância do EC2.

Esta não é uma resposta direta à pergunta, pois não resolve o problema. No entanto, pode fornecer uma maneira alternativa de coletar informações para resolver um problema semelhante.

    
por 16.05.2017 / 03:34
0

Tente usar uma interface específica em vez de "qualquer". Esse 'dispositivo' não pode ser usado no modo promíscuo. Veja o tcpdump manpage: link

    
por 17.07.2014 / 19:28
0

Talvez o snaplength ?

  • -s snaplen
  • --snapshot-length=snaplen

Snarf snaplen bytes of data from each packet rather than the default of 262144 bytes. Packets truncated because of a limited snapshot are indicated in the output with ''[|proto]'', where proto is the name of the protocol level at which the truncation has occurred. Note that taking larger snapshots both increases the amount of time it takes to process packets and, effectively, decreases the amount of packet buffering. This may cause packets to be lost. You should limit snaplen to the smallest number that will capture the protocol information you're interested in. Setting snaplen to 0 sets it to the default of 262144, for backwards compatibility with recent older versions of tcpdump.

Eu costumo usar 65535.

    
por 11.03.2017 / 17:56