O Wireshark é a lupa mais poderosa que existe para tráfego de rede. Se algo passa pelo cabo (ou pelo ar), o Wireshark vê. E analisa. E explica-te o que significa.

Quando comecei a fazer troubleshooting de rede, o Wireshark parecia um alarme de carro: demasiados sinais, demasiados painéis, não percebia nada. Usava tcpdump porque era "mais simples". Até ao dia em que precisei de perceber porque é que uma API respondia lentamente e o tcpdump não me dava as respostas.

O Wireshark não é só para peritos em redes. Com os filtros certos, seguires streams TCP, e usares as estatísticas integradas, consegues diagnosticar problemas que de outra forma seriam invisíveis. E no macOS, a instalação é mais simples do que parece.

Vou mostrar-te:

  • Instalação no macOS com brew e captura sem root
  • Interface: os 3 painéis, cores e profiles
  • Filtros de captura vs filtros de display (tabela de referência)
  • Seguir streams TCP, UDP e TLS
  • Estatísticas: IO graph, conversations, protocol hierarchy
  • Captura remota via SSH e tshark

Wireshark no macOS

⬆ Wireshark a correr no macOS com captura ativa e filtro HTTP aplicado


Instalação no macOS

A instalação no macOS é direta com Homebrew. Mas há um passo adicional para capturares sem root:

# Instalar o Wireshark com suporte a captura
brew install wireshark

# Instalar o chmodbpf para captura sem root (apenas macOS)
brew install wireshark-chmodbpf

# Verificar se o grupo access_bpf existe e adicionar o teu user
sudo dseditgroup -o edit -a $(whoami) -t user access_bpf

# Se preferires a GUI isolada (opcional)
brew install --cask wireshark
Copy

Importante: Depois de adicionares o user ao grupo access_bpf, tens de fazer logout e login (ou reiniciar) para fazer efeito. Sem isto, o Wireshark pede-te a password de admin sempre que inicia uma captura.


A interface: 3 painéis que contam a história

A interface do Wireshark está dividida em 3 áreas principais, cada uma com um propósito:

PainelO que mostraDica
Packet ListLista de todos os pacotes, com timestamp, origem, destino, protocolo, infoClica num pacote para veres os detalhes nos outros painéis
Packet DetailsÁrvore expansível com cada camada do pacote (Ethernet → IP → TCP → Aplicação)É aqui que vês os headers HTTP, TLS handshake, etc.
Packet BytesHex dump raw do pacote selecionadoÚtil para troubleshooting de baixo nível ou protocolos binários

As cores dos pacotes não são decorativas. Cada cor tem um significado:

  • Verde claro: Tráfego HTTP normal
  • Azul: Tráfego DNS
  • Vermelho: TCP RST (conexão rejeitada)
  • Amarelo: TCP Retransmissão (latência ou perda)
  • Roxo: TLS/SSL

Filtros de captura vs filtros de display

Esta é a maior fonte de confusão para iniciados. Filtros de captura (berkeley packet filter) decidem o que entra na captura. Filtros de display filtram o que já foi capturado, sem perder dados.

O que queresFiltro de CapturaFiltro de Display
Só HTTPtcp port 80http
HTTP ou HTTPStcp port 80 or 443http or tls
Um IP específicohost 192.168.1.100ip.addr == 192.168.1.100
Tráfego entre dois IPshost 10.0.0.1 and host 10.0.0.2ip.addr == 10.0.0.1 && ip.addr == 10.0.0.2
DNS queriesudp port 53dns
ARP apenasarparp
TCP SYN (novas conexões)não é possíveltcp.flags.syn == 1 && tcp.flags.ack == 0
Erros TCPnão é possíveltcp.analysis.flags

Dica de ouro: Usa filtros de captura apenas quando sabes exatamente o que queres (ex: só DNS). Para troubleshooting, faz uma captura ampla e usa filtros de display: assim não perdes contexto. O Wireshark é generoso com memória, as capturas de minutos são perfeitamente manejáveis.


Seguir streams tcp/udp/tls

Esta é a funcionalidade que mais uso. Seguir um stream TCP permite-te ver a conversa completa entre cliente e servidor, como se fosse um chat:

  1. Clica com o botão direito num pacote HTTP ou TCP
  2. Vai a Follow → TCP Stream
  3. O Wireshark mostra-te a conversa completa, com pedidos a vermelho e respostas a verde
  4. Podes guardar o raw stream, mudar de direção (A→B, B→A), ou procurar texto

Para streams TLS (HTTPS), só vês o handshake e dados encriptados a menos que tenhas as chaves privadas (o que não é comum em produção). Mas para HTTP, DNS, SMTP, FTP e outros protocolos não encriptados, é uma janela direta para a comunicação.


Estatísticas: io graph, conversations, protocol hierarchy

O menu Statistics do Wireshark é um tesouro de informação agregada:

# Atalhos úteis (GUI)
Statistics > IO Graph         # Gráfico de largura de banda ao longo do tempo
Statistics > Conversations    # Quem fala com quem (bytes, pacotes, duração)
Statistics > Endpoints         # Todos os IPs/MACs envolvidos
Statistics > Protocol Hierarchy # Percentagem de cada protocolo no tráfego
Copy

Estatísticas do Wireshark

⬆ Protocol Hierarchy e IO Graph: dois dos painéis de estatísticas mais úteis


Captura remota via SSH

Precisas de analisar tráfego de um servidor remoto mas só tens SSH? O Wireshark consegue fazer captura remota de duas formas:

# Opção 1: SSH + tcpdump + pipe para o Wireshark local
ssh servidor "tcpdump -w - -i eth0 not port 22" | wireshark -k -i -

# Opção 2: Usar o tshark no servidor e exportar o ficheiro
ssh servidor "tshark -i eth0 -w /tmp/captura.pcap -a duration:60"
scp servidor:/tmp/captura.pcap ./
wireshark captura.pcap
Copy

Atenção: Na Opção 1, certifica-te de que filtras a porta 22 (not port 22) para não criares um loop infinito de tráfego SSH a ser capturado e reenviado.


Tshark: Wireshark na linha de comandos

O tshark é a versão CLI do Wireshark. Perfeito para servidores sem GUI e para automação:

# Capturar 100 pacotes HTTP e mostrar info resumida
tshark -i en0 -c 100 -Y http

# Estatísticas de protocolos (como o Protocol Hierarchy da GUI)
tshark -r captura.pcap -z io,phs

# Listar conversas TCP
tshark -r captura.pcap -z conv,tcp

# Seguir um stream TCP específico (stream index 0)
tshark -r captura.pcap -z follow,tcp,ascii,0

# Extrair objetos (ficheiros) transferidos via HTTP
tshark -r captura.pcap --export-objects http,./exportados/
Copy

Boas práticas

PráticaPorquê
Usa filters de display, não de capturaPerdes contexto se filtrares na captura. Captura tudo, filtra depois
Guarda perfis de filtrosNo menu Edit → Configuration Profiles, cria perfis para HTTP, DNS, Troubleshooting
Usa coloring rulesView → Coloring Rules. Cria regras para destacar erros, retransmissões, etc.
Exporta objetosFile → Export Objects → HTTP. Útil para extrair ficheiros transferidos na rede
Não captures em produção sem filtroNum servidor com muito tráfego, uma captura sem filtro enche o disco em minutos

Recapitulando

  • Instalação: brew install wireshark + chmodbpf para captura sem root
  • Interface: 3 painéis (packet list, details, bytes) + cores com significado
  • Filtros de captura (BPF) vs display (pós-captura): tabela de referência
  • Seguir streams TCP para ver conversas completas
  • Estatísticas: IO Graph, Conversations, Protocol Hierarchy
  • Captura remota via SSH pipe e tshark para CLI

O Wireshark é uma ferramenta que quanto mais usas, mais valor tiras. Começa por seguir streams HTTP em tráfego do teu próprio computador: vais ficar surpreendido com o que as aplicações andam a comunicar sem tu saberes.

Recursos adicionais

Comentários (0)

Nenhum comentário ainda. Seja o primeiro!

Deixar comentário