Como capturar e analisar os pacotes por exemplo com Tcpdump

Como Capturar E Analisar Os Pacotes Por Exemplo Com Tcpdump



Tcpdump é uma ferramenta poderosa de análise de rede usada para análise de tráfego de rede em sistemas Linux e macOS. Os administradores de rede usam o tcpdump para detectar, capturar e analisar a rede dos pacotes TCP/IP. Utiliza uma biblioteca “libpcap” que auxilia na captura eficiente do tráfego de rede. Além disso, o tcpdump ajuda na solução de problemas de rede e no monitoramento periódico das atividades da rede. Esta ferramenta armazena os dados capturados em um arquivo “pcap”. Esses arquivos são analisados ​​posteriormente usando uma ferramenta de análise de pacotes TCP/IP, como o Wireshark, ou por meio de outra ferramenta de linha de comando.

Neste guia, demonstraremos como instalar o tcpdump em um sistema Linux e como capturar e analisar os pacotes TCP/IP usando o tcpdump.

Como instalar o Tcpdump

O Tcpdump está pré-instalado em muitas distribuições Linux. Mas se ainda não estiver instalado no seu sistema, você pode instalar o tcpdump no seu sistema Linux. Para instalar o tcpdump no sistema Ubuntu 22.04, use o seguinte comando:







$ sudo apto instalar tcpdump

Para instalar o tcpdump no Fedora/CentOS, use o seguinte comando:



$ sudo dnf instalar tcpdump

Como capturar os pacotes usando o comando Tcpdump

Para capturar os pacotes com tcpdump, inicie o terminal com privilégios sudo usando “Ctrl+Alt+t”. Esta ferramenta inclui diferentes opções e filtros para capturar os pacotes TCP/IP. Se você deseja capturar todos os pacotes em fluxo da interface de rede atual ou padrão, use o comando “tcpdump” sem qualquer opção.



$ sudo tcpdump

O comando fornecido captura os pacotes da interface de rede padrão do seu sistema.





Ao final da execução deste comando, todas as contagens de pacotes capturados e filtrados são exibidas no terminal.



Vamos entender o resultado.

Tcpdump permite a análise dos cabeçalhos dos pacotes TCP/IP. Ele mostra uma única linha para cada pacote e o comando continua em execução até que você pressione “Ctrl+C” para interrompê-lo.

Cada linha fornecida pelo tcpdump contém os seguintes detalhes:

  • Carimbo de data/hora Unix (por exemplo, 02:28:57.839523)
  • Protocolo (IP)
  • Nome do host de origem ou IP e número da porta
  • Nome do host de destino ou IP e número da porta
  • Flags TCP (por exemplo, Flags [F.]) indicando o estado da conexão com valores como S (SYN), F (FIN). (ACK), P (PUSH), R (RST)
  • Número de sequência dos dados no pacote (por exemplo, seq 5829:6820)
  • Número de confirmação (por exemplo, ack 1016)
  • Tamanho da janela (por exemplo, win 65535) representando os bytes disponíveis no buffer de recebimento seguido pelas opções TCP
  • Comprimento da carga útil de dados (por exemplo, comprimento 991)

Para listar todas as interfaces de rede do seu sistema, use o comando “tcpdump” com a opção “-D”.

$ sudotcpdump-D

ou

$ tcpdump --list-interfaces

Este comando lista todas as interfaces de rede que estão conectadas ou em execução no seu sistema Linux.

Capture os pacotes da interface de rede especificada

Se você deseja capturar os pacotes TCP/IP que passam por uma interface específica, use o sinalizador “-i” com o comando “tcpdump” e especifique o nome da interface de rede.

$ sudo tcpdump -i lo

O comando fornecido captura o tráfego na interface “lo”. Se você deseja exibir informações detalhadas ou detalhadas sobre o pacote, use o sinalizador “-v”. Para imprimir detalhes mais abrangentes, use o sinalizador “-vv” com o comando “tcpdump”. O uso e a análise regulares contribuem para manter um ambiente de rede robusto e seguro.

Da mesma forma, você pode capturar o tráfego em qualquer interface usando o seguinte comando:

$ sudo tcpdump -i qualquer

Capture os pacotes usando uma porta específica

Você pode capturar e filtrar os pacotes especificando o nome da interface e o número da porta. Por exemplo, para capturar os pacotes de rede que passam pela interface “enp0s3” usando a porta 22, use o seguinte comando:

$ tcpdump -i enp0s3 porta 22

O comando anterior captura todos os pacotes que fluem da interface “enp0s3”.

Capture os pacotes limitados com Tcpdump

Você pode usar o sinalizador “-c” com o comando “tcpdump” para capturar um número especificado de pacotes. Por exemplo, para capturar quatro pacotes na interface “enp0s3”, use o seguinte comando:

$ tcpdump -i enp0s3 -c 4

Substitua o nome da interface usando seu sistema.

Comandos Tcpdump úteis para capturar o tráfego de rede

A seguir, listamos alguns comandos “tcpdump” úteis que o ajudarão a capturar e filtrar o tráfego ou pacotes de rede de forma eficiente:

Usando o comando “tcpdump”, você pode capturar os pacotes de uma interface com um IP de destino ou IP de origem definido.

$ tcpdump -i {nome da interface} dst {ip-destino}

Você pode capturar os pacotes com um tamanho de instantâneo de 65.535 bytes, diferente do tamanho padrão de 262.144 bytes. Nas versões mais antigas do tcpdump, o tamanho da captura era limitado a 68 ou 96 bytes.

$ tcpdump -i enp0s3 -s 65535

Como salvar os pacotes capturados em um arquivo

Se quiser salvar os dados capturados em um arquivo para análise posterior, você pode fazê-lo. Ele captura o tráfego em uma interface especificada e o salva em um arquivo “.pcap”. Use o seguinte comando para armazenar os dados capturados em um arquivo:

$ tcpdump -i -s 65535 -w .pcap

Por exemplo, temos a interface “enps03”. Salve esses dados capturados no seguinte arquivo:

$ sudo tcpdump -i enps03 -w dump.pcap

No futuro, você poderá ler este arquivo capturado usando o Wireshark ou outras ferramentas de análise de rede. Portanto, se você quiser usar o Wireshark para analisar os pacotes, use o argumento “-w” e salve-o em um arquivo “.pcap”.

Conclusão

Neste tutorial, demonstramos como capturar e analisar pacotes usando tcpdump com a ajuda de diversos exemplos. Também aprendemos como salvar o tráfego capturado em um arquivo “.pcap” que você pode visualizar e analisar usando o Wireshark e outras ferramentas de análise de rede.