Guia de Interceptação e Diagnóstico de Rede com tcpdump

Introdução e Arquitetura

O tcpdump é um analisador de pacotes em nível de linha de comando, padrão em distribuições Linux e sistemas BSD. Ele utiliza a biblioteca libpcap para acessar diretamente a camada de rede do kernel, permitindo a inspeção de tráfego em tempo real para fins de auditoria, depuração de conectividade e monitoramento de segurança.

Estrutura de Comando e Modificadores

tcpdump [opções] [expressão_de_filtro]
  • -i [interface]: Define o adaptador de rede alvo para escuta.
  • -n: Suprime a conversão de IPs para nomes via DNS e resolve portas numericamente.
  • -c [quantidade]: Interrompe a execução automaticamente após capturar o número especificado de quadros.
  • -s [bytes]: Define o tamanho do snapshot (quantos bytes de cada pacote serão armazenados na memória).
  • -A: Exibe o conteúdo do pacote em formato ASCII legível.
  • -X: Apresenta os dados brutos simultaneamente em representação hexadecimal e ASCII.
  • -w [caminho]: Grava o fluxo binário cru em um arquivo .pcap para análise offline.
  • -r [caminho]: Reconstrói e filtra pacotes a partir de um arquivo de captura existente.

Mecanismo de Filtragem

A expressão de filtro utiliza sintaxe BPF (Berkeley Packet Filter) e suporta operadores booleanos (and, or, not) combinados com qualificadores de escopo. Isso permite a criação de regras precisas para isolar tráfego específico antes mesmo do processamento pelo espaço de usuário.

Cenários de Uso Reconfigurados

# 1. Escuta completa na interface de rede principal
sudo tcpdump -i enp0s3

# 2. Isolamento por host específico com supressão de resolução
sudo tcpdump -n host 10.0.0.85

# 3. Segmentação por protocolo de transporte
sudo tcpdump tcp
sudo tcpdump udp
sudo tcpdump icmp

# 4. Monitoramento de portas de serviço críticas
sudo tcpdump port 443 or port 8080

# 5. Combinação de endereço IP e porta com operadores lógicos
sudo tcpdump host 172.16.10.4 and port 3306
sudo tcpdump not host 192.168.0.5

# 6. Filtros direcionais explícitos
sudo tcpdump src 10.1.5.22
sudo tcpdump dst port 22

# 7. Restrições baseadas em tamanho de quadro
sudo tcpdump less 200
sudo tcpdump greater 1400

# 8. Captura limitada a sub-redes específicas
sudo tcpdump net 10.10.0.0/16 and udp

# 9. Exibição detalhada com marcação de tempo e cabeçalho de enlace
sudo tcpdump -tttt -n -e

# 10. Formato compacto para leitura rápida em terminais
sudo tcpdump -nq

Decomposição dos Campos de Saída

A estrutura de linha gerada pelo utilitário contém metadados essenciais para análise forense de rede:

  • timestamp: Registro cronológico exato da captura.
  • src / dst: Endereços IPv4 ou IPv6 de origem e destino.
  • proto: Identificador do protocolo de transporte ou camada de rede.
  • length: Dimensão total do quadro em bytes.
  • ttl: Time To Live, contador de roteadores que o pacote pode atravessar antes do descarte.
  • flags: Bits de controle TCP (SYN, ACK, FIN, RST, etc.) ou endicadores de fragmentação IP.
  • seq / ack: Contadores de sequência e confirmação para garantia de entrega e ordenação TCP.
  • tos: Type of Service, relacionado à prioridade de encaminhamento (QoS).
  • id / offset: Identificador único e deslocamento para reconstrução de fragmentos IP.
  • window: Tamanho da janela deslizante TCP para gerenciamento de fluxo.
  • urgent: Ponteiro indicando a posição de dados prioritários no stream.
  • options: Parâmetros negociados como MSS, SACK ou marcas temporais.

Persistência e Processamento em Lote

# Gravação binária para análise posterior em ferramentas gráficas
sudo tcpdump -i any -w /var/log/audit_2024.pcap

# Releitura de arquivo capturado aplicando novo filtro
sudo tcpdump -r /var/log/audit_2024.pcap port 5432

# Extração de texto legível para inspeção manual
sudo tcpdump -A -c 100 > dump_payload.txt

# Pipeline para extração seletiva de endpoints e portas
sudo tcpdump -nq -i enp0s3 tcp | awk '{print $3, $5}'

Tags: tcpdump packet-sniffing linux-sysadmin bpf-filter network-troubleshooting

Publicado em 9-28 01:09