3 herramientas para solucionar problemas de filtrado de paquetes

Nmap, Wireshark y tcpdump son herramientas útiles para solucionar problemas de su red. Este artículo le muestra cómo usarlos con un ejemplo de la vida real, porque cuando intenta aprender una nueva tecnología o técnica, a veces la mejor manera es recorrer un escenario.

Índice

el problema comienza

En este escenario, un analista comercial tenía privilegios administrativos en todos los dispositivos de red (enrutadores, conmutadores, servidores y clientes). Desafortunadamente, esta persona no tenía un conocimiento sólido de estos dispositivos o sus servicios, como firewalls y filtros de paquetes, registro o enrutamiento. En mi rol, heredé este entorno y me dijeron que aceptara que los no administradores tuvieran privilegios administrativos.

Un dispositivo cliente se sentó en un segmento interno y un servidor de base de datos se sentó en otro. Un enrutador con estrictas reglas de filtrado de paquetes se encontraba entre los dos segmentos. Las reglas eran ad hoc y no en un orden terriblemente lógico, y la aplicación afectada se comunicaba entre el cliente y el servidor usando puertos no estándar. Yo era el único administrador de la empresa y, por suerte, me había tomado el día libre.

El analista decidió que había un problema con el filtro del enrutador y comenzó a hacer cambios. El analista no guardó la configuración del filtro original y no realizó un seguimiento de los cambios. El analista hizo varios cambios hasta que se frustró y me envió un correo electrónico diciendo: "No sé qué está mal. No sé qué hice. Ahora, no funciona. ¡Arréglalo!".

Esta oportunidad de resolución de problemas nació de una situación de la vida real que enfrenté como administrador. Se cometieron muchos errores que permitieron que sucediera este fracaso en primer lugar.

Elige tus herramientas

Podría haber tomado varios enfoques para restaurar la conectividad. Decidí usar Nmap, Wireshark y tcpdump para ayudar a identificar cambios en el filtro. La idea general era determinar los puertos que la aplicación espera usar y compararlos con los puertos permitidos por el enrutador a través de la interfaz.

Puede utilizar los siguientes pasos si se encuentra en la misma situación.

1. Escanee el enrutador

Un paso lógico de solución de problemas es identificar las conexiones disponibles. Comience escaneando ambos lados del enrutador para documentar los puertos abiertos. Nmap es una gran herramienta para este trabajo.

Ejecute el escaneo de cada segmento contra la interfaz del enrutador conectado a ese segmento. Guarde los resultados del análisis y luego compare la configuración del filtro con los resultados del análisis. Si ambas interfaces tienen las direcciones 192.168.1.1 y 192.168.2.1, los comandos son:

$ sudo nmap 192.168.1.1
$ sudo nmap 192.168.2.1

Puede haber más de dos interfaces en el enrutador, por lo tanto, realice los análisis adicionales necesarios para asegurarse de que los filtros no bloqueen (o permitan) el tráfico inadecuado. Esta es una gran oportunidad para comprender exactamente cómo está configurado el enrutador. Utilizar el -oN opción para que Nmap escriba los resultados en un archivo.

Obtendrá una lista de puertos para cada interfaz de enrutador. A continuación, averigüe qué puertos espera que la aplicación esté abierta. La idea es comparar los puertos que la aplicación quiere usar con los puertos que puede usar en el enrutador.

2. Interceptar comunicaciones

Otra forma de saber qué puertos de destino espera ver la aplicación es capturar el tráfico de red en cada segmento. La captura del lado del cliente del enrutador muestra los paquetes dirigidos a la dirección IP del servidor remoto. Recuerde, sin embargo, que un número de puerto también está expuesto en la salida del rastreador de paquetes. Estos son los datos que está tratando de recopilar.

Use tcpdump o Wireshark para lograr esto. Las siguientes secciones documentan ambas herramientas.

Usando tcpdump

Puede usar tcpdump para interceptar el tráfico que se origina en el ordenador cliente y está destinado al servidor remoto en 192.168.2.100. El encabezado del paquete muestra el puerto de destino e indica la dirección IP y el número de puerto que debe usar el tráfico. Esto se puede comparar con las reglas de filtro existentes tal como aparecen en el dispositivo y a través de un escaneo Nmap. Recuerde que esta captura ocurre en el segmento de clientes.

$ tcpdump dst 192.168.2.100

La captura muestra hacia dónde intenta ir el tráfico. Pero, ¿cómo puede tcpdump mostrar si el tráfico pasa por el enrutador y hacerlo en la interfaz correcta?

[ Download the checklist Considerations for implementing DevSecOps practices. ]

Use tcpdump en el lado del servidor del enrutador para capturar el tráfico dirigido al servidor. Lo ideal es que las capturas a cada lado del router sean idénticas; lo que se envía a un lado debe transmitirse al otro lado. Por supuesto, el problema a resolver es que esto no suceda. La captura del lado del servidor muestra el tráfico que pasa, y ya sabe que no está entrando el tráfico adecuado. La comparación de lo que se envía por un lado con lo que se recibe por el otro permite reducir el tráfico filtrado y por tanto identificar las reglas a modificar.

Use la misma captura (dirección IP de destino) en este lado del enrutador:

$ tcpdump dst 192.168.2.100

Envíe los resultados de tcpdump a archivos usando el -w {filename} pedido. Lea los archivos .pcap producidos por tcpdump usando el -r opción con tcpdump o Wireshark.

Uso de Wireshark

Puede usar Wireshark en lugar de tcpdump, si lo desea. Cualquiera de las herramientas puede manejar el trabajo y, a veces, Wireshark es un poco más fácil de usar. El proceso es el mismo.

Primero, capture el tráfico del lado del cliente del enrutador. A continuación, capture el tráfico del lado del servidor. Use un filtro de visualización en Wireshark para mostrar los paquetes con la dirección IP del servidor como destino (este proceso básicamente replica los pasos del ejemplo de tcpdump, solo que con una herramienta diferente).

Compara las dos capturas. De particular interés son los números de puerto incrustados en los paquetes del ordenador del cliente. Estos números de puerto indican los puertos en los que el cliente espera comunicarse. En teoría, el lado del servidor debería mostrar los mismos paquetes, pero nuevamente, esa es exactamente la falla con la que está lidiando.

3. Verifique la configuración del firewall del enrutador

Otra forma de confirmar el flujo de tráfico es verificar específicamente los puertos desde fuera del enrutador. ¡Nmap al rescate, otra vez! el -sA La opción muestra el estado del puerto de la máquina de destino.

La sintaxis de Nmap para verificar el estado del firewall es bastante simple:

$ nmap -sA 192.168.2.100

Siéntase libre de redirigir la salida a un archivo.

Estos son los estados más comunes informados por Nmap:

  • Abierto: El puerto acepta conexiones entrantes
  • Granja: Ninguna aplicación está escuchando en el puerto
  • Filtrado: El filtrado de paquetes evita que Nmap determine si un servicio está escuchando
  • Sin filtrar: El puerto es accesible pero Nmap no puede determinar la información del puerto

Prevenir una recurrencia

Después de resolver el problema, hicimos todo lo posible para evitar que volviera a suceder y le aclaramos al analista que solo el administrador de la red puede cambiar la configuración. También cambié la contraseña administrativa en los dispositivos de red a algo que solo yo conocía.

El uso de un rastreador de paquetes para ver qué tráfico se envía desde un ordenador de origen y comparar la salida con el tráfico capturado en el otro lado del enrutador ayuda a reducir los problemas de configuración del filtrado de paquetes, lo que le permite corregir o actualizar las reglas según sea necesario. Un escaneo de puertos proporciona una segunda forma de ver cómo se ve la configuración del enrutador a partir de los segmentos de la red, lo cual es útil para comparar la configuración actual de los filtros y la configuración esperada.

Artículos de interés

Subir