Como usar o tcpdump e 6 exemplos

Como usar o tcpdump e 6 exemplos

Você está tentando capturar pacotes de dados para analisar o tráfego em sua rede? Talvez você seja um administrador de servidor que encontrou um problema e deseja monitorar os dados transmitidos na rede. Seja qual for a situação, o utilitário tcpdump Linux é o que você precisa.





Neste artigo, discutiremos o comando tcpdump em detalhes, junto com alguns guias sobre como instalar e usar o tcpdump em seu sistema Linux.





O que é o comando tcpdump?

Tcpdump é uma ferramenta poderosa de monitoramento de rede que permite ao usuário filtrar pacotes e tráfego em uma rede de forma eficiente. Você pode obter informações detalhadas relacionadas ao TCP / IP e aos pacotes transmitidos em sua rede. Tcpdump é um utilitário de linha de comando, o que significa que você pode executá-lo em servidores Linux sem display.





Os administradores do sistema também podem integrar o utilitário tcpdump com cron para automatizar várias tarefas, como o registro. Como seus inúmeros recursos o tornam bastante versátil, o tcpdump funciona como uma ferramenta de solução de problemas e de segurança.

Como instalar o tcpdump no Linux

Embora na maioria das vezes você encontre o tcpdump pré-instalado em seu sistema, algumas distribuições do Linux não vêm com o pacote. Portanto, pode ser necessário instalar manualmente o utilitário em seu sistema.



Você pode verificar se o tcpdump está instalado em seu sistema usando o que comando.

which tcpdump

Se a saída exibir um caminho de diretório ( / usr / bin / tcpdump ), então seu sistema terá o pacote instalado. No entanto, se não, você pode fazer isso facilmente usando o gerenciador de pacotes padrão do seu sistema.





Para instalar o tcpdump em distribuições baseadas em Debian, como Ubuntu:

sudo apt-get install tcpdump

Instalar o tcpdump no CentOS também é fácil.





sudo yum install tcpdump

Em distribuições baseadas em Arch:

sudo pacman -S tcpdump

Para instalar no Fedora:

sudo dnf install tcpdump

Observe que o pacote tcpdump requer libcap como uma dependência, portanto, certifique-se de instalá-lo também em seu sistema.

Exemplos de Tcpdump para capturar pacotes de rede no Linux

Agora que você instalou com sucesso o tcpdump em sua máquina Linux, é hora de monitorar alguns pacotes. Uma vez que tcpdump requer permissões de superusuário para executar a maioria das operações, você terá que adicionar sudo aos seus comandos.

1. Liste todas as interfaces de rede

Para verificar quais interfaces de rede estão disponíveis para captura, use o -D sinalizar com o comando tcpdump.

tcpdump -D

Passando no --list-interfaces sinalizador como um argumento retornará a mesma saída.

tcpdump --list-interfaces

A saída será uma lista de todas as interfaces de rede que estão presentes em seu sistema.

Depois de obter a lista de interfaces de rede, é hora de monitorar sua rede capturando pacotes em seu sistema. Embora você possa especificar qual interface deseja usar, o algum argumento comandos tcpdump para capturar pacotes de rede usando qualquer interface ativa.

tcpdump --interface any

O sistema exibirá a seguinte saída.

como medir a área no google maps

Relacionado: O que é o modelo de interconexão de sistemas abertos?

2. O formato de saída tcpdump

A partir da terceira linha, cada linha da saída denota um pacote específico capturado pelo tcpdump. Esta é a aparência da saída de um único pacote.

17:00:25.369138 wlp0s20f3 Out IP localsystem.40310 > kul01s10-in-f46.1e100.net.https: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 33

Lembre-se de que nem todos os pacotes são capturados dessa forma, mas esse é o formato geral seguido pela maioria deles.

A saída contém as seguintes informações.

  1. Timestamp do pacote recebido
  2. Nome da interface
  3. Fluxo de pacotes
  4. Nome do protocolo de rede
  5. Endereço IP e detalhes da porta
  6. Sinalizadores TCP
  7. O número de sequência de dados no pacote
  8. Dados de confirmação
  9. Tamanho da janela
  10. Comprimento do pacote

O primeiro campo ( 17: 00: 25,369138 ) exibe o carimbo de hora em que o sistema enviou ou recebeu o pacote. A hora registrada é extraída da hora local do seu sistema.

como aumentar a RAM no macbook pro

O segundo e o terceiro campos denotam a interface usada e o fluxo do pacote. No snippet acima, wlp0s20f3 é o nome da interface sem fio e Fora é o fluxo de pacotes.

O quarto campo inclui informações relacionadas ao nome do protocolo de rede. Geralmente, você encontrará dois protocolos- IP e IP6 , onde IP denota IPV4 e IP6 é para IPV6.

O próximo campo contém os endereços IP ou o nome do sistema de origem e destino. Os endereços IP são seguidos pelo número da porta.

O sexto campo na saída consiste em sinalizadores TCP. Existem vários sinalizadores que são usados ​​na saída do tcpdump.

Nome da BandeiraValorDescrição
VISÃOSConexão iniciada
FIMFConexão finalizada
EMPURREPOs dados são enviados
RSTRA conexão foi reiniciada
ALAS.Reconhecimento

A saída também pode conter uma combinação de vários sinalizadores TCP. Por exemplo, BANDEIRA [f.] significa um pacote FIN-ACK.

Avançando no snippet de saída, o próximo campo contém o número de sequência ( seq 196: 568 ) dos dados no pacote. O primeiro pacote sempre tem um valor inteiro positivo e os pacotes seguintes usam o número de seqüência relativo para melhorar o fluxo de dados.

O próximo campo contém o número de confirmação ( ack 1 ) ou número de confirmação simples. O pacote capturado na máquina do remetente tem 1 como número de confirmação. Na extremidade do receptor, o número Ack é o valor do próximo pacote.

O nono campo na saída acomoda o tamanho da janela ( ganhar 309 ), que é o número de bytes disponíveis no buffer de recebimento. Existem vários outros campos que seguem o tamanho da janela, incluindo o Tamanho Máximo do Segmento (MSS).

O último campo ( comprimento 33 ) contém o comprimento do pacote geral capturado pelo tcpdump.

3. Limite a contagem de pacotes capturados

Ao executar o comando tcpdump pela primeira vez, você pode notar que o sistema continua a capturar pacotes de rede até que você passe um sinal de interrupção. Você pode substituir este comportamento padrão especificando a contagem de pacotes que deseja capturar de antemão usando o -c bandeira.

tcpdump --interface any -c 10

O comando mencionado irá capturar dez pacotes de qualquer interface de rede ativa.

4. Filtrar pacotes com base em campos

Quando você está solucionando um problema, obter um grande bloco de saída de texto em seu terminal não torna isso mais fácil. É aí que o recurso de filtragem do tcpdump entra em ação. Você pode filtrar os pacotes de acordo com vários campos, incluindo host, protocolo, número da porta e muito mais.

Para capturar apenas pacotes TCP, digite:

tcpdump --interface any -c 5 tcp

Da mesma forma, se você deseja filtrar a saída usando o número da porta:

tcpdump --interface any -c 5 port 50

O comando mencionado acima recuperará apenas os pacotes transmitidos pela porta especificada.

Para obter os detalhes do pacote de um determinado host:

tcpdump --interface any -c 5 host 112.123.13.145

Se você deseja filtrar pacotes enviados ou recebidos por um host específico, use o src ou etc argumento com o comando.

tcpdump --interface any -c 5 src 112.123.13.145
tcpdump --interface any -c 5 dst 112.123.13.145

Você também pode usar os operadores lógicos e e ou para combinar duas ou mais expressões. Por exemplo, para obter pacotes que pertencem ao IP de origem 112.123.13.145 e usar a porta 80 :

tcpdump --interface any -c 10 src 112.123.13.145 and port 80

Expressões complexas podem ser agrupadas usando parênteses do seguinte modo:

tcpdump --interface any -c 10 '(src 112.123.13.145 or src 234.231.23.234) and (port 45 or port 80)'

5. Visualize o conteúdo do pacote

Você pode usar o -PARA e -x sinalizadores com o comando tcpdump para analisar o conteúdo do pacote de rede. o -PARA bandeira significa ASCII formato e -x denota hexadecimal formato.

Para visualizar o conteúdo do próximo pacote de rede capturado pelo sistema:

tcpdump --interface any -c 1 -A
tcpdump --interface any -c 1 -x

Relacionado: O que é perda de pacotes e como consertar sua causa?

6. Salvar dados de captura em um arquivo

Se você quiser salvar os dados de captura para fins de referência, o tcpdump está lá para ajudá-lo. Basta passar o -no sinalize com o comando padrão para gravar a saída em um arquivo em vez de exibi-la na tela.

tcpdump --interface any -c 10 -w data.pcap

o .pcap extensão de arquivo significa captura de pacote dados. Você também pode emitir o comando acima mencionado no modo detalhado usando o -v bandeira.

tcpdump --interface any -c 10 -w data.pcap -v

Para ler um .pcap arquivo usando tcpdump, use o -r sinalizador seguido pelo caminho do arquivo. o -r apoia Leitura .

o que posso fazer com uma impressora 3d
tcpdump -r data.pcap

Você também pode filtrar pacotes de rede a partir dos dados de pacote salvos no arquivo.

tcpdump -r data.pcap port 80

Monitorando o tráfego de rede no Linux

Se você recebeu a tarefa de administrar um servidor Linux, o comando tcpdump é uma ótima ferramenta para incluir em seu arsenal. Você pode facilmente corrigir problemas relacionados à rede, capturando pacotes transmitidos em sua rede em tempo real.

Mas antes de tudo isso, seu aparelho deve estar conectado à internet. Para iniciantes em Linux, até mesmo conectar-se ao Wi-Fi através da linha de comando pode ser um pouco desafiador. Mas se você estiver usando as ferramentas certas, é um piscar de olhos.

Compartilhado Compartilhado Tweet O email Como conectar-se ao Wi-Fi por meio do terminal Linux com Nmcli

Quer se conectar a uma rede Wi-Fi por meio da linha de comando do Linux? Aqui está o que você precisa saber sobre o comando nmcli.

Leia a seguir
Tópicos relacionados
  • Linux
  • Segurança
  • Análise forense de rede
Sobre o autor Deepesh Sharma(79 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve guias informativos sobre o Linux, com o objetivo de fornecer uma experiência agradável a todos os recém-chegados. Não tenho certeza sobre filmes, mas se você quiser falar sobre tecnologia, ele é o cara. Em seu tempo livre, você pode encontrá-lo lendo livros, ouvindo diferentes gêneros musicais ou tocando seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever