tcpdump não captura nenhum pacote

1

Estou tentando monitorar o que está acontecendo na minha rede, então eu tentei o comando tcpdump . Eu só estou aprendendo a usá-lo, então eu pensei em brincar um pouco com isso.

Meu problema é que não consigo capturar nenhum pacote usando apenas o tcpdump sem nenhum parâmetro.

quando digito tcpdump , recebo esta resposta:

tcpdump: packet printing is not supported for link type BLUETOOTH_HCI_H4_WITH_PHDR: use -w

Então eu tentei o tcpdump: tcpdump -w archivito E eu tenho isso:

listening on bluetooth0, link-type BLUETOOTH_HCI_H4_WITH_PHDR (Bluetooth HCI UART transport layer plus pseudo-header),

capture size 65535 bytes

0 packets captured

62 packets received by filter

0 packets dropped by kernel

Portanto, o arquivo do arquivito estava vazio, então eu tentei: tcpdump port 80 E eu recebi esta resposta:

tcpdump: Bluetooth link-layer type filtering not implemented

Como posso obter alguma saída do tcpdump? Eu li as man pages sobre este comando, mas não consegui entender porque não está funcionando para mim.

Então, eu tentei sudo tcpdump -w archivito e eu tenho essa saída:

tcpdump: WARNING: eth0: no IPv4 address assigned tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

Ele permanece lá por um tempo, mas tudo que eu ainda consigo é

0 packets captured

0 packets received by filter

0 packets dropped by kernel

Finalmente eu tentei sudo tcpdump -i any , e funcionou (capturou vários pacotes). Mas por que funcionou SOMENTE quando solicitada a monitoração em todas as interfaces?

    
por Rosamunda 30.08.2015 / 17:49

2 respostas

7

De acordo com a página tcpdump man:

   -i     Listen  on  interface.   If  unspecified, tcpdump searches the system interface list for the lowest numbered, configured up interface (excluding loop‐
          back), which may turn out to be, for example, ''eth0''.

          On Linux systems with 2.2 or later kernels, an interface argument of ''any'' can be used to capture packets from all interfaces.  Note  that  captures
          on the ''any'' device will not be done in promiscuous mode.

Então, olhando para sua saída, parece que a primeira interface disponível é bluetooth0 , o que não permite a impressão de pacotes e, portanto, o erro.

No entanto, se você especificar o -i flag para any , estará pegando qualquer interface disponível que permita a impressão de pacotes e é por isso que funciona neste caso.

    
por 30.08.2015 / 18:01
3

Eu não estou na frente agora, mas

existe um interruptor para o tcpdump listar todas as interfaces, então você pode especificar especificamente o que você quer. Tente tcpdump --list-interfaces , então você pode fazer, e. tcpdump -i eth0 ou qualquer interface específica que você deseja ouvir.

    
por 30.08.2015 / 18:34