O “tcpdump” é um analisador de pacotes e usado para diagnosticar e analisar problemas de rede. Ele captura o tráfego de rede que passa pelo seu dispositivo e examina-o. A ferramenta “tcpdump” é uma ferramenta poderosa para solucionar problemas de rede. Ele vem com muitas opções, o que o torna um utilitário de linha de comando versátil para corrigir problemas de rede.
Esta postagem é um guia detalhado sobre o utilitário “tcpdump” que inclui sua instalação, recursos comuns e uso com diferentes opções. Vamos começar com a instalação:
Como instalar o “tcpdump”:
Em muitas distribuições, o “tcpdump” sai da caixa e, para verificá-lo, use:
$ which tcpdump
Se não for encontrado em sua distribuição, instale-o usando:
$ sudo apt install tcpdumpO comando acima será usado para distribuições baseadas em Debian, como Ubuntu e LinuxMint. Para “Redhat” e “CentOS”, use:
$ sudo dnf install tcpdumpComo capturar pacotes com tcpdump:
Várias interfaces podem ser usadas para capturar pacotes. Para obter uma lista de interfaces, use:
$ sudo tcpdump -D
Ou simplesmente use “any” com o comando “tcpdump” para obter pacotes da interface ativa. Para começar a usar a captura de pacotes:
$ sudo tcpdump --interface qualquer
O comando acima está rastreando pacotes de todas as interfaces ativas. Os pacotes serão continuamente capturados até obter uma interrupção do usuário (ctrl-c).
Também podemos limitar o número de pacotes a serem capturados usando o sinalizador “-c” que significa a “contagem.”Para capturar 3 pacotes, use:
$ sudo tcpdump -i any -c3
O comando acima é útil para filtrar um pacote específico. Além disso, solucionar os problemas de conectividade requer apenas alguns pacotes iniciais a serem capturados.
O "tcpdumpO comando ”captura pacotes com IP e nomes de porta por padrão, mas para limpar a bagunça e tornar a saída mais fácil de entender; os nomes podem ser desativados usando “-n" e "-nn”Para a opção de porta:
$ sudo tcpdump -i any -c3 -nn
Conforme mostrado na saída acima, o IP e os nomes das portas foram retirados.
Como entender as informações sobre um pacote capturado:
Para aprender sobre os vários campos de um pacote capturado, vamos dar um exemplo de pacote TCP:
Um pacote pode ter vários campos, mas os gerais são exibidos acima. O primeiro campo, “09:48:18.960683,”Representa um momento em que o pacote é recebido. Em seguida, vêm os endereços IP; o primeiro IP [216.58.209.130] é o IP de origem e o segundo IP [10.0.2.15.55812] é o IP de destino. Então você receberá a bandeira [P.]; uma lista de sinalizadores típicos é fornecida abaixo:
Bandeira | Modelo | Descrição |
“.” | ACK | Significa reconhecimento |
S | SYN | Sinalizar para iniciar uma conexão |
F | FIN | Sinalizar para uma conexão fechada |
P | EMPURRE | Indica o envio de dados do remetente |
R | RST | Reiniciar conexão |
E a seguir vem o número de sequência “seq 185: 255”. O cliente e o servidor usam o número de sequência de 32 bits para manter e monitorar os dados.
O "ack”É uma bandeira; se for 1, significa que o número de confirmação é válido e o receptor espera o próximo byte.
O número da janela indica o tamanho do buffer. “win 65535”Significa a quantidade de dados que podem ser armazenados em buffer.
E no final vem o comprimento [70] do pacote em bytes, o que é uma diferença de “185: 255”.
Filtrando pacotes para corrigir os problemas de rede:
A ferramenta “tcpdump” captura centenas de pacotes, e a maioria deles são de menor importância, o que torna muito complexo obter as informações desejadas para solução de problemas. Neste caso, a filtragem terá seu papel. Por exemplo, ao solucionar problemas se não estiver interessado em um tipo específico de tráfego, você pode filtrá-lo usando “tcpdump”, que vem com pacotes de filtragem de acordo com os endereços IP, portas e protocolos.
Como capturar um pacote usando o nome do host com o comando tcpdump:
Para obter o pacote apenas de um host específico, use:
$ sudo tcpdump -i any -c4 host 10.0.2.15
Se você deseja obter apenas o tráfego de mão única, use “src" e "DST”Opções no lugar de“hospedeiro.”
Como capturar um pacote usando o número da porta com o comando tcpdump:
Para filtrar pacotes com o número da porta, use:
$ sudo tcpdump -i any -c3 -nn porta 443
O “443” é o número da porta HTTPS.
Como capturar um pacote usando o protocolo com o comando tcpdump:
Com o comando “tcpdump”, você pode filtrar pacotes de acordo com qualquer protocolo, como udp, icmp, arp, etc. Basta digitar o nome do protocolo:
$ sudo tcpdump -i any -c6 udp
Os comandos acima irão capturar apenas os pacotes que pertencem ao protocolo “udp”.
Como combinar opções de filtragem usando operadores lógicos:
Diferentes opções de filtragem podem ser combinadas usando operadores lógicos como “e / ou”:
$ sudo tcpdump -i any -c6 -nn host 10.0.2.15 e porta 443
Como armazenar os dados capturados:
Os dados capturados podem ser salvos em um arquivo para monitorá-lo posteriormente, e para essa opção “-w” será usada, e “w” significa “escrever”:
$ sudo tcpdump -i any -c5 -w packetData.pcap
A extensão do arquivo seria “.pcap, ”que significa“ captura de pacotes.”Assim que a captura for concluída, o arquivo será salvo em sua unidade local. Este arquivo não pode ser aberto ou lido usando qualquer programa editor de texto. Para lê-lo, use o “-r”Sinalizador com“ tcpdump ”:
$ tcpdump -r packetData.pcap
Conclusão:
O “tcpdump” é uma ferramenta valiosa e flexível para capturar e analisar o tráfego de rede para solucionar problemas de rede. O ponto de atenção deste guia é aprender o uso básico e avançado do utilitário de linha de comando “tcpdump”. Mas se você achar difícil, então existe um programa baseado em GUI menos complexo chamado “Wireshark,” que faz praticamente o mesmo trabalho, mas com vários recursos adicionais.