Introdução ao Tcpdump

Se você executa um servidor, sem dúvida chegará a um ponto em que precisará resolver alguns problemas relacionados à rede. É claro que seria fácil enviar uma mensagem para o departamento de suporte, mas às vezes você precisa sujar as mãos. Nesse caso, tcpdumpé a ferramenta para esse trabalho. Tcpdump é um analisador de pacotes de rede que é executado sob a linha de comando.

Este artigo será dividido em três partes:

  • Funcionalidades básicas.
  • Filtragem com base em determinadas características de tráfego.
  • Um pequeno trecho dos recursos mais avançados (como expressões lógicas, filtragem por sinalizadores TCP).

Como o tcpdump não está incluído na maioria dos sistemas básicos, você precisará instalá-lo. No entanto, quase todas as distribuições Linux têm o tcpdump em seus repositórios principais. Para distribuições baseadas no Debian, o comando para instalar o tcpdump é:

apt-get install tcpdump

Para CentOS / RedHat, use o seguinte comando:

yum install tcpdump

O FreeBSD oferece um pacote pré-compilado que pode ser instalado emitindo:

pkg install tcpdump

Há também uma porta disponível, net/tcpdumpque pode ser instalada via:

cd /usr/ports/net/tcpdump
make install clean

Se você executar tcpdumpsem argumentos, será atingido por resultados. A execução em uma instância recém-ativada aqui no Vultr por menos de cinco segundos fornece os seguintes resultados:

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

Antes de entrar em mais detalhes sobre como filtrar entrada, você deve dar uma olhada em alguns parâmetros que podem ser passados ​​para o tcpdump:

  • -i- Especifica a interface que deseja ouvir, por exemplo: tcpdump -i eth0.
  • -n- Não tente fazer pesquisas inversas em endereços IP, por exemplo: tcpdump -n(se você adicionar outro ntcpdump, você mostrará os números das portas em vez dos nomes).
  • -X- Mostrar o conteúdo dos pacotes recolhidos: tcpdump -X.
  • -c- Somente captura xpacotes, xsendo um número arbitrário, por exemplo, tcpdump -c 10captura exatamente 10 pacotes.
  • -v- Aumente a quantidade de informações de pacotes exibidas, mais vs adicionam mais verbosidade.

Cada um desses parâmetros mencionados aqui pode ser combinado. Se você quisesse capturar 100 pacotes, mas apenas na interface VPN tun0, o comando tcpdump ficaria assim:

tcpdump -i tun0 -c 100 -X

Existem dezenas (senão centenas) de opções além dessas poucas, mas elas são as mais comuns. Sinta-se livre para ler a página de manual do tcpdump no seu sistema.

Agora que você tem um entendimento básico do tcpdump, é hora de analisar um dos recursos mais impressionantes do tcpdump: expressões. Expressões tornarão sua vida muito mais fácil. Eles também são conhecidos como BPF ou Berkeley Packet Filters. O uso de expressões permite exibir (ou ignorar) seletivamente pacotes com base em certas características - como origem, destino, tamanho ou mesmo número de sequência TCP.

Até agora, você conseguiu limitar sua pesquisa a uma certa quantidade de pacotes em uma determinada interface, mas vamos ser honestos aqui: isso ainda deixa muito ruído de fundo para funcionar efetivamente com os dados coletados. É aí que as expressões entram em cena. O conceito é bem direto, então deixaremos de lado a teoria seca aqui e apoiaremos o entendimento com alguns exemplos práticos.

As expressões que você provavelmente usará mais são:

  • host - Procure tráfego com base em nomes de host ou endereços IP.
  • srcou dst- Procure tráfego de ou para um host específico.
  • proto- Procure o tráfego de um determinado protocolo. Funciona para tcp, udp, icmp e outros. Omitir a protopalavra-chave também é possível.
  • net - Procure tráfego de / para um determinado intervalo de endereços IP.
  • port - Procure tráfego de / para uma determinada porta.
  • greaterou less- Procure tráfego maior ou menor que uma certa quantidade de bytes.

Enquanto a página de manual tcpdumpcontém apenas alguns exemplos, a página de manual pcap-filterpossui explicações muito detalhadas sobre como cada filtro funciona e pode ser aplicado.

Se você quiser ver como está a sua comunicação com um determinado servidor, use a hostpalavra - chave, por exemplo (incluindo alguns dos parâmetros acima):

tcpdump -i eth0 host vultr.com

Às vezes, existem computadores na rede que não respeitam o MTU ou enviam spam com pacotes grandes; filtrá-los pode ser difícil às vezes. Expressões permitem filtrar pacotes maiores ou menores que um determinado número de bytes:

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

Talvez apenas uma certa porta seja do seu interesse. Nesse caso, use a portexpressão:

tcpdump -i eth0 -X port 21

Você também pode procurar por intervalos de portas:

tcdump -i eth0 -X portrange 22-25

Como os gateways NAT são bastante comuns, você pode procurar apenas portas de destino:

tcpdump dst port 80

Se você estiver assistindo o tráfego no seu servidor da web, talvez queira examinar apenas o tráfego TCP na porta 80:

tcpdump tcp and dst port 80

Você provavelmente está se perguntando o que a palavra and- chave está fazendo lá. Boa pergunta. Isso nos leva à última parte deste artigo.

tcpdump oferece suporte básico para expressões lógicas, mais especificamente:

  • and/ &&- Lógico "e".
  • or/ ||- Lógico "ou".
  • not/ !- Lógico "não".

Juntamente com a capacidade de agrupar expressões, isso permite criar pesquisas muito poderosas para o tráfego de entrada e saída. Então, vamos filtrar o tráfego vindo do vultr.com na porta 22 ou 443:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

Executar isso na linha de comando fornecerá o seguinte erro:

bash: syntax error near unexpected token `('

Isso ocorre porque há uma ressalva: bashtenta avaliar todos os personagens que puder. Isso inclui o (e )personagens. Para evitar esse erro, você deve usar aspas simples em torno da expressão combinada:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

Outro exemplo útil: ao depurar problemas de SSH com um de seus usuários, você pode querer ignorar tudo o que está relacionado à sua sessão de SSH:

tcpdump '!(host $youripaddress) && port 22)'

Novamente, os casos de uso são infinitos e é possível especificar em profundidades extremas que tipo de tráfego você deseja ver. O comando a seguir mostraria apenas pacotes SYNACK de um handshake TCP:

tcpdump -i eth0 'tcp[13]=18'

Isso funciona observando o décimo terceiro deslocamento do cabeçalho TCP e o décimo oitavo byte dentro dele.

Se você chegou até aqui, está pronto para a maioria dos casos de uso que surgirem. Mal consigo tocar a superfície sem entrar em muitos detalhes. Eu recomendo que você experimente as diferentes opções e expressões um pouco mais; e, como de costume: consulte a página de manual quando se perder.

Por último, mas não menos importante - uma rápida olhada para trás. Lembra do começo deste artigo? Com os milhares de pacotes capturados em questão de segundos? O poder de tcpdumppode reduzir muito isso:

tcpdump -i eth0 tcp port 22

O resultado é agora:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

Isso é muito mais saudável e fácil de depurar. Rede feliz!



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.