O sistema operacional pfSense orientado para firewalls e para funcionar como roteador, permite capturar todo o tráfego da rede em uma determinada interface que configuramos, tanto da WAN quanto da LAN, e, claro, também permite capturar o tráfego de um determinada VLAN se os tivermos configurados no computador. Poderemos capturar o tráfego nas duas direções, tanto no download quanto no upload, e também permite limitar por endereços IP e até portas TCP / UDP. Hoje neste artigo vamos mostrar como capturar o tráfego da rede para fazer uma análise completa e ver se existe algum tipo de problema.
Por que desejo capturar o tráfego da rede?
Fazer uma captura de tráfego de rede é muito importante para detectar possíveis problemas de comunicação. Vamos imaginar que um determinado computador deva enviar ou receber um determinado tráfego e não o receber, é possível que uma regra no firewall está evitando, ou que o problema não está no firewall e sim nos switches que conectamos. É muito normal ter os switches configurados com certas ACLs para proteger ainda mais a rede, e podemos até ativar diferentes tipos de contramedidas para ataques DoS que podem ocorrer na rede local. Caso o tráfego não esteja chegando ao pfSense, é possível que o problema esteja no “meio”, ou seja, nos switches, portanto, nos ajudará a descartar problemas de configuração e ver todo o fluxo do tráfego.
Se tivermos algum tipo de problema de comunicação e não pudermos encontrar onde o problema pode estar, devemos descartar que é um problema com o próprio firewall / roteador com pfSense, e então ir revisar as diferentes opções que temos entre . É aqui que entra a «captura de pacotes» do pfSense, que nos permitirá capturar todo o tráfego de uma determinada interface de rede.
Como funciona a “captura de pacotes” no pfSense
O dispositivo de captura de tráfego é instalado por padrão no sistema operacional pfSense, não será necessário instalá-lo através da lista de softwares disponíveis que temos a possibilidade de instalar. Devemos ir para o ” Diagnóstico / Captura de Pacote ”Seção para ver as opções de configuração disponíveis.
Nesta seção teremos diferentes opções de configuração, para “fazer o ajuste fino” do capturador de pacotes, algo fundamental para não capturar absolutamente todo o tráfego da rede, mas apenas o tráfego que especificamente selecionamos.
A primeira coisa que devemos fazer é « Interface «, Aqui devemos escolher a interface física ou lógica (se você usar VLANs) para usar na captura dos pacotes.
O sistema operacional pfSense nos permite habilitar o “modo promíscuo”. No “modo não promíscuo”, o sistema irá capturar apenas o tráfego direto para o host que passa por uma determinada interface. No “modo promíscuo” vamos habilitar o modo sniffing, e ele irá capturar todas as informações que o adaptador de rede vê, entretanto, é possível que o hardware que você usa no pfSense não suporte esta funcionalidade.
Também podemos escolher e filtrar se queremos IPv4, IPv6 ou ambos os protocolos de rede.
Em seguida, devemos escolher qual protocolo queremos capturar, podemos capturar qualquer protocolo (Any), ou filtrar por ICMP, TCP, UDP e muito mais.
Outras opções disponíveis são a possibilidade de escolher a opção “Endereço do host”. Esta opção permite capturar apenas o tráfego que tem como origem ou destino um endereço IP ou endereço MAC específico (se estiver diretamente conectado à mesma sub-rede). Se não colocarmos nada, ele irá capturar todos os pacotes que trafegam pela interface, sem filtrar por IP ou MAC de forma alguma.
Também podemos configurar a porta de origem ou destino se utilizarmos TCP e / ou UDP, ideal para apenas capturar o tráfego que nos interessa. Todos os protocolos da camada de aplicação fazem uso de portas de origem e destino específicas, por exemplo, se quisermos capturar o tráfego HTTP, colocaremos a porta 80 e filtraremos por TCP, pois é o que o protocolo da camada de aplicação HTTP usa.
Em “Packet Length” teremos que colocar 0 para capturar todos os frames e não limitar pelo tamanho do frame, e em “Count” é aconselhável colocar 0 para capturar todo o tráfego até pará-lo manualmente, por padrão é o valor de 100 que pode ser muito pequeno dependendo do equipamento em questão.
Na seção “Nível de detalhe” podemos fazer a captura de rede mostrada na parte inferior com mais ou menos detalhes, mas na maioria dos casos o que faremos é baixar a captura de dados e examiná-la cuidadosamente em programas como o Wireshark.
No nosso caso, vamos capturar o tráfego do nosso smartphone para verificar quais dados estamos enviando para a Internet, vamos filtrar pelo protocolo “Qualquer” e por qualquer porta, ou seja, vamos capturar todo o tráfego que vai para ou vem de 10.11.1.4.
Neste exemplo, capturaremos com qualquer comprimento de pacote, mas com um máximo de 100 pacotes. O nível de detalhamento é “normal”, e clicamos em “Iniciar” para iniciar a captura de dados.
Enquanto o capturador de pacotes está em execução, veremos que ele nos mostrará um botão “Parar” e logo abaixo dele veremos “Captura de pacotes em execução”.
Quando clicamos em «Parar», ele nos mostra quando a captura começou e quando parou. Podemos ver a imagem logo abaixo, mas temos muito poucas informações porque o nível de detalhe era “normal”. Na grande maioria dos casos, é melhor clicar em “Baixar captura” e baixar a captura de dados para análise posterior.
Como temos o programa Wireshark instalado, o que poderemos fazer é abrir essa captura diretamente para examinar a captura em detalhes.
Como você pode ver abaixo, temos toda a captura de dados no Wireshark e podemos ver todo o tráfego de entrada e saída para o nosso smartphone.
Como você viu, capturar o tráfego com pfSense é realmente fácil e simples, e nos permitirá detectar possíveis problemas de comunicação dos diferentes equipamentos, e descartar problemas de configuração dos switches, do pfSense ou diretamente nos PCs.