Captura todo el tráfico de red en pfSense para detectar problemas

El sistema operativo pfSense orientado a firewalls y a funcionar como router, permite capturar todo el tráfico de red en una determinada interfaz que tengamos configurada, tanto de la WAN como de la LAN, y, por supuesto, también permite capturar el tráfico de una determinada VLAN si es que las tenemos configuradas en el equipo. Podremos capturar el tráfico en ambos sentidos, tanto en descarga como en subida, y también permite limitar por direcciones IP e incluso puertos TCP/UDP. Hoy en RedesZone os vamos a enseñar cómo capturar el tráfico de red para realizar un análisis a fondo y ver si hay algún tipo de problema.

¿Para qué quiero capturar el tráfico de red?

Realizar una captura de tráfico de red es muy importante para detectar posibles problemas de comunicación. Imaginemos que un equipo en concreto, debe enviar o recibir un determinado tráfico y no lo recibe, es posible que una regla en el firewall esté impidiéndolo, o que el problema no esté en el firewall sino en los switches que tengamos conectados. Es muy normal tener configurados los switches con ciertas ACL para proteger aún más la red, e incluso podríamos activar diferentes tipos de contramedidas para ataques DoS que se podrían producir en la red local. En el caso de que el tráfico no esté llegando hasta el pfSense, es posible que el problema esté en «el medio», es decir, en los switches, por tanto, nos servirá para descartar problemas de configuración y ver todo el flujo del tráfico.

Si tenemos algún tipo de problema de comunicación, y no encontramos donde puede estar el problema, debemos descartar que sea problema del propio firewall/router con pfSense, e ir después a revisar los diferentes switches que tengamos entre medias. Aquí es donde entra el «Packet capture» de pfSense, que nos permitirá capturar todo el tráfico de una determinada interfaz de red.

Funcionamiento de «packet capture» en el pfSense

El capturador de tráfico viene instalado de forma predeterminada en el sistema operativo pfSense, no tendremos que instalarlo a través del listado de software disponible que tenemos la posibilidad de instalar. Debemos irnos a la sección de «Diagnostics / Packet Capture» para ver las opciones de configuración disponibles.

En esta sección tendremos diferentes opciones de configuración, para «afinar» el capturador de paquetes, algo fundamental para no capturar absolutamente todo el tráfico de la red, sino solamente el tráfico que nosotros seleccionemos específicamente.

Lo primero que debemos es la «Interface«, aquí deberemos elegir la interfaz física o lógica (si usas VLANs) a utilizar en la captura de los paquetes.

El sistema operativo pfSense nos permite habilitar el «modo promiscuo». En el «modo no promiscuo» el sistema capturará únicamente el tráfico directo al host que pase por una determinada interfaz. En el «modo promiscuo» habilitaremos el modo sniffing, y capturará toda la información que vea el adaptador de red, no obstante, es posible que el hardware que uses en pfSense no soporte esta funcionalidad.

También podremos elegir y filtrar si queremos IPv4, IPv6 o ambos protocolos de red.

A continuación, deberemos elegir qué protocolo queremos capturar, podremos capturar cualquier protocolo (Any), o filtrar por ICMP, TCP, UDP y mucho más.

Otras opciones disponibles son la posibilidad de elegir la opción de «Host address», esta opción nos permite capturar solamente el tráfico que tiene como origen o destino una determinada dirección IP o dirección MAC (si está directamente conectada a la misma subred). Si no ponemos nada, capturará todos los paquetes que viajen a través de la interfaz, sin filtrar por IP o MAC absolutamente nada.

También podremos configurar el puerto de origen o destino si hacemos uso de TCP y/o UDP, ideal para únicamente capturar el tráfico que a nosotros nos interese. Todos los protocolos de la capa de aplicación hacen uso de puertos específicos de origen y destino, por ejemplo, si queremos capturar el tráfico HTTP, pondremos puerto 80 y filtramos por TCP, ya que es lo que utiliza el protocolo de la capa de aplicación HTTP.

En «Packet Length» tendremos que poner 0 para capturar todas las tramas y no limitar por tamaño de trama, y en «Count» es recomendable poner 0 para capturar todo el tráfico hasta que nosotros lo paremos manualmente, por defecto está el valor de 100 que podría ser muy poco dependiendo del equipo en cuestión.

En la sección de «Level of detail» podremos hacer que la captura de red se nos muestra en la parte inferior con un mayor o menor detalle, pero en la mayoría de los casos lo que haremos será descargar la captura de datos y examinarlo con detenimiento en programas como Wireshark.

En nuestro caso, vamos a capturar el tráfico de nuestro smartphone para comprobar qué datos estamos enviando a Internet, filtraremos por «Any» protocol y cualquier puerto, es decir, todo el tráfico que vaya o venga de 10.11.1.4 lo capturaremos.

En este ejemplo, capturaremos con cualquier longitud de paquete, pero con un máximo de 100 paquetes. El nivel de detalle es «normal», y pinchamos en «Start» para comenzar la captura de datos.

Mientras se esté ejecutando el capturador de paquetes, veremos que nos mostrará un botón de «Stop» y justo debajo veremos «Packet capture is running».

Cuando pinchemos en «Stop», nos mostrará cuándo se ha empezado la captura y cuándo se ha parado. Podremos ver la captura justo debajo, pero tenemos muy poca información porque el nivel de detalle era «normal». En la gran mayoría de los casos, lo más recomendable es pinchar en «Download Capture» y descargarnos la captura de datos para su posterior análisis.

Como tenemos instalado el programa Wireshark, lo que vamos a poder hacer es abrir directamente esta captura para examinar la captura en detalle.

Tal y como se puede ver a continuación, tenemos toda la captura de datos en Wireshark y podremos ver todo el tráfico entrante y saliente a nuestro smartphone.

Tal y como habéis visto, capturar el tráfico con pfSense es realmente fácil y sencillo, y nos permitirá detectar posibles problemas de comunicación de los diferentes equipos, y descartar problemas de configuración de los switches, el pfSense o directamente en los PC.

¡Sé el primero en comentar!