Introducción
Este documento describe los métodos para analizar el paquete capturado desde el dispositivo web seguro (SWA) mediante Wireshark.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas
Componentes Utilizados
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Al ponerse en contacto con el soporte técnico de Cisco, se le solicitará que proporcione detalles sobre la actividad de la red SWA entrante y saliente, que se puede supervisar mediante la ejecución de una captura de paquetes para recopilar el tráfico con fines de depuración o verificación.
Implementación de proxy explícito
Un proxy explícito requiere que los clientes se configuren para enviar su tráfico directamente al servidor proxy, a menudo a través de una configuración de proxy específica en su configuración de red (archivo PAC u opciones DHCP) o de la configuración del navegador. Esto permite al servidor proxy administrar y filtrar las solicitudes antes de reenviarlas al destino.
Nota: En una implementación explícita, la dirección IP de destino del paquete que sale de la máquina cliente es la dirección IP del servidor proxy.
Este es el flujo lógico de la red mientras se utiliza la implementación de proxy explícito:
Flujo de paquetes de proxy explícito
Implementación de proxy transparente
Un proxy transparente intercepta el tráfico de red sin requerir ningún cambio de configuración en el lado del cliente. El tráfico se redirige automáticamente al servidor proxy, lo que le permite filtrar y supervisar las solicitudes sin el reconocimiento explícito del cliente.
Nota: En la implementación transparente, la dirección IP de destino del paquete que sale de la máquina cliente es la dirección IP del servidor de destino.
Este es el flujo lógico de la red mientras se utiliza la implementación de proxy transparente:
Flujo de paquetes de proxy transparente
Para obtener más información sobre el flujo de paquetes transparente explícito de SWA, consulte Comprensión del flujo de paquetes en el dispositivo web seguro
Capturas de paquetes en AsyncOS versiones 7.x y posteriores
Para iniciar una captura de paquetes desde la interfaz gráfica de usuario (GUI), navegue hasta el menú Ayuda y soporte técnico en la parte superior derecha, elija Captura de paquetes y luego haga clic en Iniciar captura. Para detener el proceso de captura de paquetes, haga clic en Stop Capture.
Nota: Una captura iniciada en la GUI permanece guardada entre sesiones, incluso después de que la sesión de la GUI de SWA haya caducado o haya finalizado la sesión.
Para iniciar una captura de paquetes desde la Interfaz de línea de comandos (CLI), ingrese el comando Packetcapture > Start. Para detener el proceso de captura de paquetes, ingrese el comando Packetcapture > Stop y el SWA detiene la captura de paquetes cuando finaliza la sesión.
Guías de configuración en la captura de paquetes SWA
Para obtener más información sobre cómo realizar la captura de paquetes en SWA.
Configuración de la captura de paquetes en el dispositivo de seguridad de contenido
Guía del usuario de SWA: sección Captura de paquetes
Filtros de captura de paquetes en SWA
La captura predeterminada de la GUI de SWA y CLI (comando Packetcapture) utiliza la sintaxis de filtro tcpdump estándar. Esta sección proporciona información con respecto a los filtros de captura tcpdump y proporciona algunos ejemplos.
Estos son algunos de los filtros más utilizados:
- ip: Filtra todo el tráfico del protocolo IP.
- tcp: Filtra todo el tráfico del protocolo TCP.
- host: Filtra por una dirección IP específica de origen o destino.
Hay dos condiciones lógicas que se utilizan con frecuencia en tcpdump:
- Y: Captura paquetes sólo si se cumplen todas las condiciones especificadas (use
&&
).
- O bien: Captura paquetes si se cumple al menos una condición (utilice
||
).
Nota: Esas condiciones lógicas distinguen entre mayúsculas y minúsculas.
A continuación se muestra un ejemplo de filtro en SWA para recopilar los paquetes por dirección IP en implementaciones transparentes o explícitas:
IP de origen: 192.168.1.1
IP de destino: 10.20.3.15
host 192.168.1.1 || host 10.20.3.15
Este filtro captura el tráfico entre 10.20.3.15 y SWA, y el tráfico entre SWA y 192.168.1.1.
Consejo: No es necesario agregar la dirección IP SWA en el filtro.
Troubleshoot
Cuando el cliente intenta acceder a un sitio web, todo el proceso de comunicación se puede dividir en dos partes:
- El cliente se comunica con el SWA.
- SWA se comunica con el servidor de destino.
Consejo: Antes de capturar paquetes, verifique que la dirección IP del cliente permanezca sin cambios en la trayectoria a SWA. Los cambios de dirección IP se producen debido a reglas de traducción de direcciones de red (NAT) configuradas antes de que el tráfico llegue a SWA o a la presencia de un proxy de flujo descendente entre SWA y el equipo cliente.
Análisis de conexiones explícitas mediante filtros de Wireshark
Filtros Wireshark para conexiones explícitas
Para la primera fase de comunicación en la captura de paquetes: La IP de origen sería la dirección IP del cliente y la dirección IP de destino es la IP SWA (la interfaz entrante del SWA suele ser la interfaz P1).
Puede utilizar estos filtros en Wireshark:
Filtrar por la IP del cliente:
ip.addr ==
Para la segunda fase de la comunicación, la IP de origen sería la dirección IP SWA (la interfaz externa suele ser la interfaz P2) y la dirección IP de destino es la dirección IP del servidor Web.
Filtrar por la IP del servidor:
ip.addr ==
En la implementación explícita, el cliente envía su solicitud como HTTP Connect al proxy, para filtrar por HTTP Connect:
http.request.method == "CONNECT"
Filtre por el método de solicitud HTTP:
http.request.method==GET
or
http.request.uri contains ""
En la solicitud HTTPS para filtrar por saludo del cliente:
ssl.handshake.type==1
En caso de que desee ver que ambos lados se comunican entre sí, la mejor acción es utilizar el filtro de flujo TCP.
Sugerencia:Para buscar el número de secuencia TCP, haga clic con el botón derecho del ratón en cualquier paquete del filtro actual o haga clic con el botón derecho del ratón en el paquete deseado, seleccione Seguir, elija Transmisión TCP. Puede ver el número de secuencia TCP en la barra de filtros.
Para aislar los números de secuencia TCP de la primera y de la segunda fase, utilice el filtro:
tcp.stream eq || tcp.stream eq
Reemplace <first_phase_stream_number> y <second_phase_stream_number> por los números de flujo apropiados.
Análisis de conexiones transparentes mediante filtros de Wireshark
En las solicitudes transparentes que implican la redirección del protocolo de comunicación de caché web (WCCP) o el routing basado en políticas (PBR), mientras que el tráfico del cliente se dirige al SWA, el SWA responde con la dirección IP del servidor de destino en lugar de con su propia dirección IP. Como resultado, en las solicitudes transparentes, la captura de paquetes muestra la dirección IP del servidor de destino, pero utiliza la dirección MAC de SWA como la dirección MAC de destino (en el tráfico entre el cliente y SWA) y los paquetes que salen del SWA si la suplantación de IP no está habilitada, la IP de origen es la dirección IP del cliente con la dirección MAC de SWA.
Filtros Wireshark para conexiones transparentes
Al igual que en el caso de las solicitudes transparentes, Wireshark filtra lo mismo que las conexiones explícitas, pero tiene en cuenta que SWA no puede comunicarse con el cliente mediante su dirección IP real y que se ha suplantado como servidor de destino real.
Filtrar por la IP del cliente:
ip.addr ==
Filtrar por la IP del servidor:
ip.addr ==
Precaución: Si la suplantación de IP no está habilitada en el SWA, la dirección IP de origen del paquete desde el SWA al servidor web es la dirección IP del cliente.
Filtre por el método de solicitud HTTP:
http.request.method==GET
or
http.request.uri contains ""
En la solicitud HTTPS para filtrar por saludo del cliente:
ssl.handshake.type==1
En caso de que desee ver que ambos lados se comunican entre sí, la mejor acción es utilizar el filtro de flujo TCP.
Sugerencia: Para encontrar el número de secuencia TCP, haga clic con el botón derecho en cualquier paquete de su filtro actual o haga clic con el botón derecho en el paquete deseado, seleccione Seguir, elija Transmisión TCP. Puede ver el número de secuencia TCP en la barra de filtros
Para aislar los números de secuencia TCP de la primera y de la segunda fase, utilice el filtro:
tcp.stream eq || tcp.stream eq
Reemplace <first_phase_stream_number> y <second_phase_stream_number> por los números de flujo apropiados.
Los filtros de Wireshark son similares a las conexiones explícitas.
Cómo confirmar que la solicitud web del cliente es una conexión explícita o transparente
En las solicitudes explícitas: el cliente accede a una URL mientras conoce el servidor proxy, por lo que envía la solicitud de conexión HTTP a la dirección IP y al puerto del proxy.
SWA escucha los puertos TCP 3128 y 80 para el servicio de proxy de forma predeterminada. En las capturas explícitas de paquetes de implementación, puede ver que el tráfico entre el cliente y SWA está destinado a esos números de puerto de proxy.
En las solicitudes transparentes: el cliente accede a una URL mientras el cliente no conoce la IP del proxy y SWA no se comunica mediante su propia dirección IP. En su lugar, SWA suplantó la dirección IP del servidor de destino.
En el modo transparente, el tráfico aparece como si fluyera entre el cliente y el servidor de destino (por ejemplo, el sitio web de Cisco), pero la dirección MAC del servidor de destino es la del SWA. Para confirmar la dirección MAC de SWA, utilice el comando CLI: etherconfig > MEDIA.
Modificación de la vista Wireshark
Para tener una mejor visión general de los paquetes en Wireshark mientras se solucionan las solicitudes web mediante un proxy, es mejor tener la indicación de nombre de servidor (SNI) y la ID de flujo TCP en la vista de paquetes.
Adición de una columna SNI a la vista Wireshark
Paso 1. Abra el archivo de captura de paquetes con su Wireshark.
Paso 2. Haga clic con el botón derecho del ratón en el nombre de la columna en Wireshark.
Paso 3. Seleccione Preferencias de Columna.
Paso 4. Haga clic en el signo + (Agregar una nueva columna).
Paso 5. Introduzca un nombre para esa columna (por ejemplo, SNI).
Paso 6. En la sección Tipo, elija Personalizado.
Paso 7. En la sección Campo, ingrese tls.handshake.extensions_server_name.
Paso 8. Haga clic en Aceptar para guardar los cambios.
También puede seguir estos pasos:
Paso 1. Aplique el filtro en Wireshark: ssl.handshake.type==1 para aislar los mensajes Hello del Cliente en el intercambio de señales SSL/TLS.
Paso 2. Expanda los detalles del protocolo: Haga clic en Transport Layer Security > Expand Handshake Protocol: Mensaje de saludo del cliente > Ampliar extensión: Server name > Expanda Server Name Indication Extension (SNI).
Paso 3. Agregue el nombre del servidor como una columna. Haga clic con el botón derecho en el nombre del servidor (o el nombre del servidor específico) y seleccione Aplicar como columna.
Adición de una columna de número de secuencia a la vista Wireshark
Paso 1. Abra el archivo de captura de paquetes con su Wireshark.
Paso 2. Haga clic con el botón derecho del ratón en el nombre de la columna en Wireshark.
Paso 3. Seleccione Preferencias de Columna.
Paso 4. Haga clic en el signo + (Agregar una nueva columna).
Paso 5. Introduzca un nombre para esa columna (por ejemplo, Stream).
Paso 6. En la sección Tipo, elija Personalizado.
Paso 7. En la sección Campo, ingrese tcp.stream.
Paso 8. Haga clic en Aceptar para guardar los cambios.
También puede seguir estos pasos:
Paso 1. Localizar paquetes HTTP/TCP: Asegúrese de ver los paquetes que incluyen el protocolo HTTP/TCP.
Paso 2. Seleccione o haga clic en el paquete y en el panel inferior izquierdo Protocolo de control. Desplácese hacia abajo hasta obtener (Índice de secuencia:Número).
Paso 3. Haga clic con el botón derecho en el Índice de flujo: y aplicar como columna.
Información Relacionada