Neste laboratório, você aprenderá como usar o Wireshark, um poderoso analisador de protocolos de rede, para capturar e analisar o tráfego de rede IPv6. IPv6, o Protocolo de Internet de próxima geração, oferece um espaço de endereçamento maior e recursos de segurança aprimorados em comparação com IPv4.
À medida que a adoção do IPv6 cresce, é crucial que os profissionais de segurança cibernética saibam como monitorar e solucionar problemas em redes IPv6 usando ferramentas como o Wireshark. Este laboratório prático fornecerá experiência prática no monitoramento de tráfego IPv6, aplicável em ambientes de rede do mundo real.
Captura de Tráfego IPv6
Nesta etapa, focaremos na captura de tráfego de rede IPv6. IPv6 é a versão mais recente do Protocolo de Internet, projetada para abordar as limitações do IPv4, como o esgotamento dos endereços IP disponíveis. Para capturar e observar os pacotes IPv6 que viajam através de suas interfaces de rede, usaremos o Wireshark, um poderoso e amplamente utilizado analisador de protocolos de rede. Ele permite que você veja os detalhes do tráfego de rede, o que é essencial para o monitoramento e solução de problemas de rede.
Habilitando IPv6 no Seu Sistema
Antes de podermos começar a capturar tráfego IPv6, precisamos garantir que o IPv6 esteja habilitado em seu sistema. Isso ocorre porque, se o IPv6 estiver desabilitado, seu sistema não poderá enviar ou receber pacotes IPv6, e não poderemos capturar nenhum tráfego relevante.
Abra uma janela de terminal. Você pode fazer isso clicando no ícone do terminal na barra de tarefas ou pressionando Ctrl+Alt+T. O terminal é uma interface de linha de comando onde você pode inserir comandos para interagir com seu sistema.
Navegue até o diretório do projeto. É aqui que o script para habilitar o IPv6 está localizado. Use o seguinte comando:
cd /home/labex/project/
O comando cd significa "change directory" (mudar diretório). Ele permite que você se mova de um diretório para outro em seu sistema de arquivos.
Execute o script para habilitar o IPv6 em seu sistema. Use o seguinte comando:
sudo ./enable_ipv6.sh
O comando sudo é usado para executar comandos com privilégios administrativos. O ./ indica que o script está localizado no diretório atual. Este script habilita a funcionalidade IPv6 em sua máquina Linux, configurando as interfaces de rede e garantindo que o IPv6 não esteja desabilitado nas configurações do sistema.
Essas linhas indicam que o IPv6 está habilitado para todas as interfaces de rede, a interface padrão e a interface de loopback, respectivamente.
Iniciando o Wireshark e Configurando a Captura
Agora que o IPv6 está habilitado, podemos iniciar o Wireshark e configurá-lo para capturar o tráfego de rede.
Inicie o Wireshark executando o seguinte comando em seu terminal:
wireshark &
O símbolo & no final do comando executa o Wireshark em segundo plano. Isso significa que você pode continuar usando o terminal enquanto o Wireshark está em execução.
Quando o Wireshark abrir, você verá uma lista de interfaces de rede disponíveis. Estas são as conexões físicas ou virtuais através das quais seu sistema pode enviar e receber tráfego de rede. Procure a interface rotulada como any. Selecionar esta interface permite que o Wireshark capture pacotes de todas as interfaces de rede em seu sistema.
Para começar a capturar pacotes, você pode clicar duas vezes na interface any ou selecioná-la e clicar no botão azul com a barbatana de tubarão na barra de ferramentas.
O Wireshark agora começará a capturar todo o tráfego de rede em seu sistema. À medida que os pacotes são capturados, você os verá sendo exibidos na janela principal. Cada entrada de pacote mostra informações como os endereços IP de origem e destino, o protocolo usado e o tempo de captura.
Gerando Tráfego IPv6 para Captura
Para garantir que tenhamos algum tráfego IPv6 para analisar, geraremos alguns pacotes IPv6 pingando um endereço IPv6. Pingar é uma maneira simples de testar a conectividade entre dois dispositivos de rede.
Enquanto o Wireshark estiver em execução e capturando pacotes, abra uma nova janela de terminal. Isso permite que você execute comandos para gerar tráfego sem interferir no processo de captura de pacotes.
Primeiro, vamos encontrar o endereço IPv6 da sua interface eth1. Execute o seguinte comando:
ip addr show dev eth1 | grep inet6
O comando ip addr show exibe os endereços IP atribuídos às suas interfaces de rede. O dev eth1 especifica que queremos ver os endereços da interface eth1. O | é um operador de pipe, que pega a saída do comando do lado esquerdo e a usa como entrada para o comando do lado direito. O grep inet6 filtra a saída para mostrar apenas as linhas que contêm a string inet6, que são os endereços IPv6.
A saída mostrará os endereços IPv6 associados à interface eth1. Você deve ver um endereço IPv6 de link-local que começa com fe80::. Este é o seu endereço IPv6 local, que é usado para comunicação dentro do segmento de rede local.
Exemplo de saída:
inet6 fe80::42:acff:fe14:3/64 scope link
Agora, pingue este endereço IPv6 para gerar algum tráfego IPv6. Use o comando ping6, que é projetado especificamente para pingar endereços IPv6. Inclua o nome da interface (eth1) porque é um endereço link-local. O nome da interface é necessário para especificar qual interface de rede deve ser usada para a comunicação.
ping6 -c 4 fe80::42:acff:fe14:3%eth1
Observação: Substitua fe80::42:acff:fe14:3 pelo endereço IPv6 real exibido em seu sistema.
O parâmetro -c 4 diz ao ping para enviar 4 pacotes e, em seguida, parar. Isso é útil para limitar a quantidade de tráfego gerado.
Saída esperada:
PING fe80::42:acff:fe14:3%eth1(fe80::42:acff:fe14:3%eth1) 56 data bytes
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=3 ttl=64 time=0.064 ms
64 bytes from fe80::42:acff:fe14:3%eth1: icmp_seq=4 ttl=64 time=0.064 ms
--- fe80::42:acff:fe14:3%eth1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3060ms
rtt min/avg/max/mdev = 0.049/0.060/0.064/0.007 ms
Esta saída mostra os detalhes do processo de ping, incluindo o tempo que cada pacote levou para viajar para o destino e voltar, e a taxa de perda de pacotes.
Retorne à janela do Wireshark. Agora você deve ver vários novos pacotes na lista de captura, incluindo pacotes ICMPv6 gerados pelo seu comando ping. ICMPv6 é o Protocolo de Mensagens de Controle da Internet para IPv6, que é usado para relatórios de erros e fins de diagnóstico.
Pare a captura de pacotes clicando no botão vermelho "Parar" na barra de ferramentas do Wireshark.
Você capturou com sucesso o tráfego IPv6 usando o Wireshark. Na próxima etapa, você aprenderá como filtrar e analisar esse tráfego.
Filtrando e Analisando Tráfego IPv6
Agora que você capturou algum tráfego IPv6, é hora de aprender como filtrar e analisar esse tráfego. O Wireshark, um poderoso analisador de protocolos de rede, oferece excelentes recursos de filtragem. A filtragem do tráfego capturado ajuda você a se concentrar nos tipos específicos de pacotes IPv6 que deseja examinar. Em vez de olhar para um conjunto grande e misto de dados de rede, a filtragem permite que você isole as informações relevantes, tornando sua análise mais eficiente.
Usando Filtros de Exibição para IPv6
Os filtros de exibição no Wireshark são uma ótima ferramenta. Eles permitem que você visualize apenas os pacotes que correspondem a critérios específicos. Neste caso, focaremos nos pacotes IPv6.
Na janela principal do Wireshark, você verá uma lista de pacotes. No topo desta lista, há uma barra de filtro de exibição. Ela tem um campo de texto com a mensagem "Apply a display filter" (Aplicar um filtro de exibição). É nesta barra que você inserirá seus critérios de filtro.
Para mostrar apenas pacotes IPv6, digite o seguinte filtro na barra de filtro de exibição:
ipv6
Este filtro diz ao Wireshark para exibir apenas pacotes que usam o protocolo IPv6.
Depois de digitar o filtro, pressione Enter ou clique no botão de seta azul para aplicá-lo. Uma vez aplicado, a lista de pacotes agora exibirá apenas pacotes IPv6. Isso significa que qualquer pacote IPv4 ou de outro protocolo será filtrado, deixando apenas o tráfego IPv6.
Se você quiser refinar ainda mais seu filtro para mostrar apenas pacotes ICMPv6 (como os gerados pelo comando ping6), digite o seguinte filtro:
icmpv6
ICMPv6 é um protocolo chave para redes IPv6, usado para tarefas como relatórios de erros e mensagens de diagnóstico. Ao usar este filtro, você pode se concentrar nesses tipos específicos de pacotes.
Aplique o filtro como antes. Agora, você deve ver apenas os pacotes ICMPv6 dos seus comandos ping na lista de pacotes.
Examinando Detalhes do Pacote IPv6
O Wireshark fornece informações detalhadas sobre cada pacote. Vamos dar uma olhada mais de perto na estrutura de um pacote IPv6.
Na lista de pacotes filtrados, encontre um pacote ICMPv6 Echo Request. Você pode identificá-lo procurando por "Echo (ping) request" (Solicitação de eco (ping)) na coluna Info. Clique neste pacote para selecioná-lo.
Quando você seleciona um pacote, o painel do meio mostrará uma análise detalhada desse pacote. Procure a seção rotulada como "Internet Protocol Version 6". Se ela ainda não estiver expandida, clique na seta ao lado dela para expandi-la. Isso mostrará todos os campos no cabeçalho IPv6.
Nas informações do cabeçalho IPv6, há vários campos importantes a serem observados:
Version (Versão): Este campo deve ser 6 para IPv6. É uma maneira simples de confirmar que o pacote está usando o protocolo IPv6.
Traffic Class (Classe de Tráfego): Este campo é usado para QoS (Qualidade de Serviço). Ele ajuda a priorizar diferentes tipos de tráfego na rede.
Flow Label (Rótulo de Fluxo): Isso pode ser usado para manter o estado dos pacotes pertencentes ao mesmo fluxo. É útil para acompanhar pacotes relacionados.
Payload Length (Comprimento da Carga Útil): Isso indica o tamanho dos dados após o cabeçalho IPv6. Ele ajuda você a entender quantos dados estão sendo transportados no pacote.
Next Header (Próximo Cabeçalho): Este campo identifica o tipo de cabeçalho que segue o cabeçalho IPv6. Pode ser outro cabeçalho de protocolo como TCP ou UDP.
Hop Limit (Limite de Saltos): Semelhante ao TTL (Time To Live - Tempo de Vida) no IPv4, este valor é decrementado em cada roteador. Ele impede que os pacotes circulem indefinidamente na rede.
Source Address (Endereço de Origem): Este é o endereço IPv6 do remetente. Ele informa de onde o pacote se originou.
Destination Address (Endereço de Destino): Este é o endereço IPv6 do destinatário. Ele mostra para onde o pacote está indo.
Observe a diferença entre os endereços IPv6 e IPv4. O IPv6 usa endereços de 128 bits, que são normalmente escritos como oito grupos de quatro dígitos hexadecimais. Em contraste, o IPv4 usa endereços de 32 bits. Isso torna os endereços IPv6 muito mais longos e fornece um espaço de endereçamento muito maior.
Agora, expanda a seção "Internet Control Message Protocol v6" para ver os detalhes do pacote ICMPv6:
Type (Tipo): Isso indica o tipo de mensagem ICMPv6. Por exemplo, 128 é para Solicitação de Eco e 129 é para Resposta de Eco.
Code (Código): Isso especifica ainda mais o tipo de mensagem. Ele fornece informações mais detalhadas sobre a mensagem ICMPv6.
Checksum (Soma de Verificação): Isso é usado para detectar erros na mensagem ICMPv6. Ele ajuda a garantir a integridade dos dados.
Identifier (Identificador): Isso é usado para corresponder solicitações com respostas. Ele permite que o remetente acompanhe qual resposta corresponde a qual solicitação.
Sequence (Sequência): Este é um número de sequência que incrementa para cada pacote em uma sessão de ping. Ele ajuda a ordenar os pacotes.
Salvando os Pacotes Capturados
É frequentemente útil salvar suas capturas de pacotes para análise ou documentação posterior. Veja como você pode fazer isso:
No Wireshark, clique no menu File (Arquivo) e, em seguida, selecione Save As (Salvar como). Isso abrirá uma caixa de diálogo onde você pode escolher onde salvar o arquivo e qual nome dar a ele.
Navegue até o diretório /home/labex/project/. Este é o local onde queremos salvar nossa captura de pacotes.
Digite capture.pcapng como o nome do arquivo. Este é o nome que será usado para identificar a captura de pacotes salva.
Clique no botão Save (Salvar) para salvar sua captura de pacotes. O arquivo será salvo no formato PCAPNG, que é o formato padrão para capturas de pacotes do Wireshark. Este formato é amplamente suportado e pode ser aberto em outras ferramentas de análise de rede.
Você pode verificar se o arquivo foi salvo corretamente executando o seguinte comando em um terminal:
ls -l /home/labex/project/capture.pcapng
Este comando lista os detalhes do arquivo, incluindo suas permissões, proprietário, tamanho e data de criação.
Agora você aprendeu como filtrar o tráfego IPv6, examinar os detalhes dos pacotes IPv6 e salvar suas capturas de pacotes para referência futura. Na próxima etapa, você explorará os cabeçalhos de extensão IPv6 com mais detalhes.
Examinando os Headers de Extensão IPv6
Nesta etapa, exploraremos os cabeçalhos de extensão IPv6. IPv6 é o protocolo de Internet de próxima geração que oferece muitas melhorias em relação ao IPv4. Uma dessas melhorias chave é o uso de cabeçalhos de extensão. Esses cabeçalhos são cruciais porque fornecem funcionalidade aprimorada, como melhores recursos de roteamento e segurança. Compreendê-los é essencial para qualquer pessoa envolvida em monitoramento de rede e análise de segurança IPv6, pois eles podem revelar informações importantes sobre como os pacotes estão sendo tratados na rede.
Identificando Cabeçalhos de Extensão no Wireshark
Agora, vamos usar o Wireshark para identificar e entender os cabeçalhos de extensão IPv6 nos pacotes que capturamos anteriormente.
Primeiro, certifique-se de que o Wireshark esteja aberto. Se não estiver, você pode abri-lo usando o seguinte comando no terminal:
wireshark &
O & no final permite que o comando seja executado em segundo plano, para que você possa continuar usando o terminal para outras tarefas.
Em seguida,, abra o arquivo de captura que você salvou na etapa anterior. Veja como:
Clique em File (Arquivo) > Open (Abrir) no menu do Wireshark.
Navegue até o diretório /home/labex/project/.
Selecione o arquivo chamado capture.pcapng e clique em Open (Abrir). Este arquivo contém o tráfego de rede que você capturou anteriormente.
Na barra de filtro na parte superior do Wireshark, insira o seguinte filtro:
ipv6
Este filtro mostra todos os pacotes IPv6. Examinaremos o campo "Next Header" (Próximo Cabeçalho) nesses pacotes para identificar quaisquer cabeçalhos de extensão.
Selecione qualquer pacote IPv6 da lista de pacotes no lado esquerdo do Wireshark. No painel do meio, expanda a seção "Internet Protocol Version 6". Isso mostrará os detalhes do cabeçalho IPv6.
Procure o campo "Next Header" (Próximo Cabeçalho) dentro do cabeçalho IPv6 expandido. Este campo é muito importante, pois nos diz o que vem imediatamente após o cabeçalho IPv6. Pode ser um cabeçalho de extensão ou um protocolo de camada superior como TCP ou UDP.
O valor "Next Header" (Próximo Cabeçalho) corresponde a um número de protocolo específico:
0: Hop-by-Hop Options (Opções Hop a Hop)
43: Routing (Roteamento)
44: Fragment (Fragmentação)
50: ESP
51: AH
60: Destination Options (Opções de Destino)
58: ICMPv6
6: TCP
17: UDP
Se um cabeçalho de extensão estiver presente no pacote, ele aparecerá como uma seção expansível abaixo do cabeçalho IPv6 no painel de detalhes do pacote. Expanda-o para ver seu conteúdo, que pode fornecer informações valiosas sobre o tratamento do pacote.
Exportando Bytes de Pacotes para Análise
Para analisar ainda mais o campo "Next Header" (Próximo Cabeçalho), exportaremos os bytes de um pacote contendo-o.
Selecione qualquer pacote IPv6 da lista de pacotes.
No painel do meio, certifique-se de que a seção "Internet Protocol Version 6" esteja expandida. Se não estiver, expanda-a para visualizar os detalhes do cabeçalho IPv6.
Encontre o campo "Next Header" (Próximo Cabeçalho). Ele geralmente está perto do topo dos detalhes do cabeçalho IPv6.
Clique com o botão direito do mouse no campo "Next Header" (Próximo Cabeçalho) e selecione "Export Selected Packet Bytes" (Exportar Bytes do Pacote Selecionado).
Na caixa de diálogo que aparece, navegue até o diretório /home/labex/project/. É aqui que salvaremos os bytes exportados.
Digite extension_header.txt como o nome do arquivo.
Clique em "Save" (Salvar) para salvar o arquivo.
Você pode verificar se o arquivo foi criado com sucesso executando o seguinte comando no terminal:
cat /home/labex/project/extension_header.txt
A saída provavelmente será um único caractere representando o valor do Próximo Cabeçalho. Isso pode ser útil para análise ou script adicional.
Analisando a Cadeia de Cabeçalhos de Extensão
No IPv6, um pacote pode ter vários cabeçalhos de extensão, formando uma cadeia. Cada cabeçalho de extensão tem um campo "Next Header" (Próximo Cabeçalho) que indica o que o segue.
Por exemplo, um pacote IPv6 pode ter a seguinte estrutura:
O cabeçalho IPv6 principal com um valor "Next Header" (Próximo Cabeçalho) de 0, o que significa que o próximo cabeçalho é um cabeçalho de Opções Hop a Hop.
O cabeçalho de Opções Hop a Hop com um valor "Next Header" (Próximo Cabeçalho) de 43, indicando que o próximo cabeçalho é um cabeçalho de Roteamento.
O cabeçalho de Roteamento com um valor "Next Header" (Próximo Cabeçalho) de 6, significando que o próximo cabeçalho é um cabeçalho TCP.
Finalmente, o cabeçalho TCP e a carga útil.
Este mecanismo de encadeamento oferece muita flexibilidade no tratamento de pacotes. No entanto, ele também pode ser usado indevidamente para ataques de segurança, como tentar contornar as regras do firewall. É por isso que entender os cabeçalhos de extensão é crucial para o monitoramento da segurança da rede.
Agora você aprendeu como identificar e examinar os cabeçalhos de extensão IPv6 no Wireshark. Esta é uma habilidade essencial para qualquer pessoa envolvida em monitoramento de rede e análise de segurança IPv6.
Resumo
Neste laboratório, você aprendeu habilidades essenciais para o monitoramento de rede IPv6 usando o Wireshark. Você começou capturando tráfego IPv6 e gerando pacotes com comandos ping6. Em seguida, você se aprofundou na filtragem e análise dos pacotes capturados, com foco na estrutura e nos campos exclusivos dos cabeçalhos IPv6.
As principais habilidades adquiridas incluem a captura de tráfego IPv6, o uso de filtros de exibição para tipos específicos de pacotes, o exame de estruturas e cabeçalhos de pacotes, a salvaguarda de capturas para análise posterior, a identificação de cabeçalhos de extensão IPv6 e a compreensão do campo Next Header (Próximo Cabeçalho) e da cadeia de cabeçalhos de extensão. Essas habilidades são vitais para administradores de rede e profissionais de segurança cibernética em ambientes IPv6 - prevalentes, cruciais para a segurança da rede, solução de problemas e compreensão do comportamento da rede. À medida que a adoção do IPv6 cresce globalmente, esse conhecimento fornece uma base sólida para conceitos avançados.