Interface de Rede e Captura Básica

LinuxBeginner
Pratique Agora

Introdução

Bem-vindo ao laboratório de Interface de Rede e Captura Básica!

Imagine que seu computador é uma casa e o tráfego de rede é a correspondência sendo entregue e enviada. Para entender o que está acontecendo, você precisaria de uma câmera de segurança vigiando a caixa de correio. No mundo Linux, o tcpdump atua como essa poderosa câmera de segurança para sua rede. É uma ferramenta de linha de comando que permite inspecionar os dados que fluem para dentro e para fora do seu sistema, ajudando você a solucionar problemas de conectividade e identificar atividades suspeitas.

Antes de prosseguir, é útil definir o objeto básico que estamos observando. A comunicação em rede é dividida em pequenas unidades chamadas pacotes. Um pacote é um pequeno pacote de informações que carrega tanto as instruções de entrega quanto o conteúdo real. As instruções de entrega residem nos cabeçalhos, que contêm detalhes como endereço de origem, endereço de destino, protocolo e informações de porta. O conteúdo real é chamado de payload. Neste primeiro laboratório, não se espera que você decodifique todos os campos ainda. O objetivo é se familiarizar com a ideia de que o tcpdump permite que você observe esses pacotes à medida que eles se movem pelo seu sistema.

Neste laboratório, você aprenderá o básico sobre o uso do tcpdump. Começaremos identificando as "portas" do seu computador (interfaces de rede). Em seguida, você praticará a captura de tráfego de rede em tempo real, controlando a quantidade de dados coletados e, finalmente, salvando essas capturas para revisá-las mais tarde, como um vídeo gravado.

Identificar Interfaces de Rede

Antes de podermos configurar nossa "câmera de segurança" para observar o tráfego, precisamos saber onde estão as portas. Em redes, essas portas são chamadas de "interfaces de rede". Uma interface de rede é o ponto de conexão entre o seu computador e a rede externa. Por exemplo, uma conexão cabeada comum é frequentemente chamada de eth0, enquanto uma conexão de loopback interna (onde o computador fala consigo mesmo) é chamada de lo.

Essa distinção é importante porque o tcpdump não captura "a internet" em um sentido global vago. Ele escuta em um ponto de observação específico dentro do sistema operacional. Se você anexar sua captura à interface errada, poderá não ver nada útil, mesmo quando a máquina estiver muito ocupada. Aprender a escolher a interface correta é um dos primeiros hábitos práticos da análise de pacotes.

Para descobrir quais interfaces estão disponíveis em sua máquina, o tcpdump fornece um comando de descoberta simples. A flag -D significa "Discover" (Descobrir) ou "Display" (Exibir).

Como espionar o tráfego de rede é uma ação privilegiada, devemos usar o comando sudo para executar o tcpdump com poderes de administrador (superusuário).

Execute o seguinte comando em seu terminal para listar as interfaces:

sudo tcpdump -D

Você deverá ver uma saída semelhante a esta:

1.eth0 [Up, Running, Connected]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]

Olhando para esta lista, eth0 (ou eth1, dependendo do seu ambiente de máquina virtual específico) é a porta principal que conecta sua máquina virtual à rede externa. A interface lo é usada puramente para comunicação interna. Você também notará um pseudo-dispositivo especial chamado any, que é um atalho útil se você quiser capturar o tráfego que atravessa todas as portas ativas ao mesmo tempo.

Nota: Se sua interface principal for eth1 em vez de eth0, substitua eth0 por eth1 em todos os comandos subsequentes ao longo deste laboratório.

Capturar Tráfego em Tempo Real

Agora que você sabe onde estão localizadas suas portas de rede, pode começar a capturar os pacotes (a correspondência) que passam por elas. Focaremos na interface eth0, pois ela lida com a conexão de rede principal.

Quando as pessoas usam o tcpdump pela primeira vez, a saída pode parecer intimidadora porque cada linha é um resumo compacto de um pacote. Pense em cada linha como uma entrada rápida de registro de incidente. Ela ainda não mostra cada byte, mas geralmente mostra o suficiente para responder a perguntas de alto nível, como quem falou com quem, qual protocolo foi usado e quantos dados foram movidos. No trabalho de segurança, essa visão resumida é frequentemente a maneira mais rápida de detectar se um sistema está se comportando normalmente ou de forma estranha.

Para dizer ao tcpdump qual interface específica monitorar, você usa a flag -i, que significa simplesmente "interface".

Execute o seguinte comando para começar a capturar o tráfego na eth0:

sudo tcpdump -i eth0

Assim que você executar este comando, o tcpdump começará imediatamente a imprimir informações sobre cada pacote diretamente no seu terminal. Parecerá uma matriz de texto rolando rapidamente:

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:23:45.123456 IP 192.168.1.10.22 > 192.168.1.20.54321: Flags [P.], seq 1:100, ack 1, win 500, length 99
10:23:45.124567 IP 192.168.1.20.54321 > 192.168.1.10.22: Flags [.], ack 100, win 499, length 0
...

O programa será executado continuamente, tentando capturar tudo até que você diga explicitamente para parar. Este é um comportamento comum para ferramentas de monitoramento no Linux.

Para interromper a captura e recuperar o controle do seu terminal, mantenha pressionada a tecla Ctrl e pressione C. Este atalho de teclado (Ctrl+C) é universalmente usado no Linux para interromper e cancelar um programa em execução.

Depois de pará-lo, o tcpdump encerrará graciosamente e fornecerá um breve resumo do que viu, incluindo quantos pacotes foram capturados com sucesso e quantos foram descartados.

Gerenciar o Tamanho da Captura (Contagem de Pacotes)

Parar manualmente uma captura de pacotes com Ctrl+C é uma boa habilidade, mas nem sempre é prática. Em uma rede movimentada, sua tela pode ser inundada com milhares de linhas em apenas alguns segundos. Às vezes, você só precisa de uma pequena amostra do tráfego para ver o que está acontecendo.

Isso introduz uma mentalidade importante de analista: coletar dados não é automaticamente útil, a menos que permaneça gerenciável. Em ambientes reais, uma captura mal planejada pode sobrecarregar sua tela, preencher o armazenamento ou enterrar o evento interessante sob milhares de pacotes não relacionados. Limitar a contagem de pacotes é uma forma simples de controle de escopo. Bons investigadores restringem constantemente sua coleta para que possam pensar claramente sobre o que estão vendo.

Para resolver isso, o tcpdump oferece a flag -c, que significa "count" (contagem). Esta flag permite que você defina um limite estrito para o número de pacotes que deseja capturar. Assim que esse número é atingido, a ferramenta para automaticamente.

Execute o seguinte comando para capturar exatamente 5 pacotes na interface eth0:

sudo tcpdump -i eth0 -c 5

Você verá exatamente 5 pacotes impressos na sua tela. Depois disso, o prompt de comando retornará automaticamente sem que você precise pressionar Ctrl+C.

tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10:28:12.345678 IP 10.0.0.5.443 > 10.0.0.2.34567: Flags [P.], seq 1:50, ack 1, win 256, length 49
...
5 packets captured
5 packets received by filter
0 packets dropped by kernel

Usar a flag -c é um excelente hábito ao explorar redes desconhecidas. Isso evita que seu terminal seja sobrecarregado e fornece uma parte gerenciável de dados para analisar no seu próprio ritmo.

Parar e Revisar a Saída

Assistir ao texto rolar em tempo real é um desafio, especialmente quando você está tentando identificar um detalhe específico. Uma abordagem muito melhor é gravar o tráfego de rede em um arquivo para que você possa revisá-lo cuidadosamente mais tarde. Isso é exatamente como gravar imagens de segurança em uma fita.

Essa mudança da visualização ao vivo para a evidência salva é um ponto de virada importante no trabalho de cibersegurança. A captura ao vivo é útil para solução de problemas imediata, mas a captura salva é o que torna possível a análise cuidadosa, a colaboração e a reconstrução de incidentes. Uma vez que o tráfego é preservado em um arquivo, você pode reproduzi-lo repetidamente, compartilhá-lo com colegas de equipe e aplicar novos filtros mais tarde sem precisar que o evento original aconteça novamente.

Essas gravações são normalmente salvas com uma extensão .pcap, que significa "packet capture" (captura de pacotes).

Um arquivo PCAP não é apenas um log de texto. Ele armazena os dados do pacote em um formato binário estruturado que as ferramentas de análise entendem. É por isso que os profissionais preferem PCAP em vez de copiar a saída do terminal para notas. O arquivo preserva o tempo original e os bytes brutos de forma próxima o suficiente para que outras ferramentas possam, posteriormente, reinterpretar a mesma evidência de maneiras diferentes.

Para salvar a saída, você usará a flag -w, que significa "write" (escrever). Combinaremos isso com nossa útil flag -c para obter uma amostra rápida de 5 pacotes e escrevê-los em um arquivo chamado capture.pcap.

Execute o seguinte comando:

sudo tcpdump -i eth0 -c 5 -w capture.pcap

Desta vez, o terminal parecerá incomumente silencioso. O tcpdump não imprime os detalhes do pacote na tela quando você usa -w. Em vez disso, ele grava silenciosamente os dados binários brutos diretamente no arquivo capture.pcap no seu diretório atual.

Agora que o tráfego está salvo, você pode reproduzi-lo. Você usará a flag -r, que significa "read" (ler), para abrir o arquivo. Como você está simplesmente lendo um arquivo que você possui, não precisa de privilégios de sudo para esta etapa.

Execute o seguinte comando para ler seus pacotes salvos:

tcpdump -r capture.pcap

Os 5 pacotes que você capturou anteriormente serão impressos de forma limpa no seu terminal, dando a você todo o tempo necessário para examiná-los:

reading from file capture.pcap, link-type EN10MB (Ethernet), snapshot length 262144
10:35:22.111222 IP 10.0.0.2.22 > 10.0.0.5.55555: Flags [P.], seq 1:100, ack 1, win 300, length 99
...

Salvar capturas em um arquivo PCAP é um pilar da análise profissional de rede. Ele permite que você mantenha registros confiáveis, pause a ação e compartilhe facilmente os logs de tráfego com colegas de equipe ao investigar problemas complexos.

Resumo

Parabéns! Você concluiu com sucesso seus primeiros passos na análise de rede.

Neste laboratório, você aprendeu como implantar o tcpdump como uma poderosa ferramenta de observação. Você praticou a identificação de interfaces de rede usando a flag -D e a captura de tráfego em tempo real em uma interface específica usando a flag -i. Você também aprendeu como manter o controle sobre o volume de saída limitando a contagem de pacotes com a flag -c. Finalmente, você descobriu como salvar dados brutos de rede em um arquivo .pcap permanente usando a flag -w e lê-lo novamente para uma revisão cuidadosa usando a flag -r.

Esses comandos fundamentais são a base absoluta da solução de problemas de rede e investigações de segurança. Ao dominar esses conceitos básicos, você está no caminho certo para entender as conversas invisíveis que acontecem em seus sistemas. Continue praticando e os dados fluindo logo começarão a fazer todo o sentido!