Como capturar pacotes no Mikrotik

De Wiki BPF
Ir para navegação Ir para pesquisar

Introdução

Certos problemas de rede só podem ser identificados mais profundamente através da análise de uma captura de pacotes. Através desta captura podemos identificar excesso de retransmissões, falhas em consultas em DNS, emissão de pacotes com IP de origem incorreto e diversos outros problemas que dificilmente veríamos de forma tradicional.

Existem diversas formas de se capturar pacotes em uma rede. O método mais usado geralmente é através do utilitário tcpdump do Linux. O Mikrotik possui duas formas de se analisar pacotes: torch e packet sniffer.

Apesar de o torch também ser um recurso válido, ele é relativamente limitado à alguns detalhes dos pacotes. Por este motivo, iremos demonstrar neste artigo como capturar os pacotes utilizando o packet sniffer, pois podemos visualizar a captura localmente em nossos computadores com o Wireshark.

Requisitos

  • Um roteador Mikrotik;
  • Wireshark;
  • Winbox.

Salvando um arquivo de captura no Mikrotik

No Winbox, em Tools > Packet Sniffer, preencha da seguinte forma:

Guia General

  • Memory Limit: a quantidade máxima de memória em KB que será usada para salvar a captura de pacotes. Geralmente 10000 KBs (10 MB) é suficiente para capturas normais.
  • Only headers: caso queira salvar apenas os cabeçalhos dos pacotes, marque esta opção. Se tiver dúvidas do que precisa, deixe-a desmarcada.
  • File name: nome do arquivo que será salvo no roteador. Utilize sempre a extensão .pcap para facilitar o reconhecimento do software padrão (Wireshark) no sistema operacional. Exemplo: ProblemasGoogle.pcap.
  • File limit: este será o tamanho máximo do arquivo. Este tamanho dependerá do que você deseja analisar.
Captura de pacotes mk 1.png

Guia Streaming

Como não iremos transmitir a captura em tempo real nesta seção, todos os campos desta guia podem ser deixados desmarcados e em branco.

Guia Filter

Esta guia é onde você configurará os filtros para selecionar o que exatamente deseja capturar.

Caso deseje utilizar mais de um filtro em um parâmetro específico, basta clicar na seta para baixo do lado direito do parâmetro. Para selecionar se o condicional será e ou ou, utilize o campo Filter Operation, explicado mais abaixo.

Os campos de Interfaces até CPU não são obrigatórios, portanto utilize apenas os filtros que te forem desejados. Caso não deseje filtrar nada específico, basta deixar todos esses campos em branco.

  • Interfaces: De qual interface deseja coletar a captura.
  • Mac Address: De qual endereço MAC de origem ou destino deseja coletar a captura.
  • Mac Protocol: De qual protocolo de camada 2 deseja coletar a captura.
  • IP Address: De qual IPv4 (obsoleto) de destino ou de origem deseja coletar a captura.
  • IPv6 Address: De qual IPv6 de destino ou de origem deseja coletar a captura.
  • IP Protocol: De qual protocolo de camada 4 deseja coletar a captura
  • Port: De qual porta deseja coletar a captura
  • CPU: De qual CPU deseja capturar os pacotes
  • Direction: Baseado na interface selecionado, qual sentido deseja capturar pacotes: rx (download) ou tx (upload).
  • Filter Operation: Quando um campo tiver mais de um parâmetro, a opção selecionada aqui decidirá se a condição será e ou ou. Exemplos:
    • Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja or, a captura irá coletar pacotes que coincidam com qualquer um destes IPs;
    • Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja and, a captura irá coletar apenas os pacotes que coincidam com os dois IPs ao mesmo tempo.
Captura de pacotes mk 3.png

No Winbox, em Tools > Packet Sniffer, clique em start quando desejar iniciar a captura;

No Winbox, em Tools > Packet Sniffer, clique em stop quando desejar parar a captura. Após isso, o arquivo estará salvo no menu files no Mikrotik e poderá ser baixado localmente.

Transmitindo a captura em tempo real para o Wireshark

Em Tools > Packet Sniffer, preencha da seguinte forma:

Guia General

  • Memory Limit: A quantidade máxima de memória em KB que será usada para salvar a captura de pacotes. Geralmente 10000 KBs (10 MB) é suficiente para capturas normais.
  • Only headers: Caso queira capturar apenas os cabeçalhos dos pacotes, marque esta opção. Se tiver dúvidas do que precisa, deixe-a desmarcada.
  • File name: Este campo não será preenchido, visto que iremos transmitir a captura em tempo real para o Wireshark.
  • File limit: Este campo não será preenchido, visto que iremos transmitir a captura em tempo real para o Wireshark.
Captura de pacotes mk 4.png

Guia Streaming

Esta guia é utilizada para configurar a transmissão remota para o computador local que está rodando o Wireshark. É aqui que configuraremos para que a captura seja lida em tempo real no Wireshark.

Para que este streaming funcione, é necessário que a porta UDP 37008 esteja liberada em sua rede.

  • Streaming Enabled: Habilitar ou não a transmissão em tempo real.
  • Server: IP do computador que irá rodar o wireshark para leitura em tempo real dos pacotes. Infelizmente este campo só suporta o antigo protocolo IPv4.
  • Filter stream: Filtrar ou não que o tráfego de transmissão das capturas também seja capturado. Não faz sentido capturar este tráfego geralmente, então se tiver dúvidas, deixe a caixa sempre marcada.
Captura de pacotes mk 5.png

Guia Filter

Esta guia é onde você configurará os filtros para selecionar o que exatamente deseja capturar.

Caso deseje utilizar mais de um filtro em um parâmetro específico, basta clicar na seta para baixo do lado direito do parâmetro, como indicado no campo x do screenshot abaixo. Para selecionar se o condicional será e ou ou, utilize o campo Filter Operation, explicado mais abaixo.

Os campos de Interfaces até CPU não são obrigatórios, portanto utilize apenas os filtros que te forem desejados. Caso não deseje filtrar nada específico, basta deixar todos esses campos em branco.

  • Interfaces: De qual interface deseja coletar a captura.
  • Mac Address: De qual endereço MAC de origem ou destino deseja coletar a captura.
  • Mac Protocol: De qual protocolo de camada 2 deseja coletar a captura.
  • IP Address: De qual IPv4 (obsoleto) de destino ou de origem deseja coletar a captura.
  • IPv6 Address: De qual IPv6 de destino ou de origem deseja coletar a captura.
  • IP Protocol: De qual protocolo de camada 4 deseja coletar a captura
  • Port: De qual porta deseja coletar a captura
  • CPU: De qual CPU deseja capturar os pacotes
  • Direction: Baseado na interface selecionado, qual sentido deseja capturar pacotes: rx (download) ou tx (upload).
  • Filter Operation: Quando um campo tiver mais de um parâmetro, a opção selecionada aqui decidirá se a condição será e ou ou. Exemplos:
    • Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja or, a captura irá coletar pacotes que coincidam com qualquer um destes IPs;
    • Caso você adicione dois IPs no campo IPv6 Address e a condição aqui seja and, a captura irá coletar apenas os pacotes que coincidam com os dois IPs ao mesmo tempo.

Lendo esta captura no Wireshark

  1. Abra o Wireshark como administrador;
  2. Caso não deseje ver todo o tráfego local de seu computador, utilize filtros no menu superior, como no exemplo do screenshot abaixo;
  3. Após isso, clique no botão azul para iniciar a captura, como indicado no screenshot abaixo:
Captura pacotes mk.png

Se tudo tiver dado certo, você já começará a ver os pacotes transmitidos à seu computador.

No Winbox, em Tools > Packet Sniffer, clique em start quando desejar iniciar a captura;

No Winbox, em Tools > Packet Sniffer, clique em stop quando desejar parar a captura.


Artigo original por Daniel Damito.