Introduction
Ce document décrit les méthodes d'analyse du paquet capturé à partir de l'appareil Web sécurisé (SWA) à l'aide de Wireshark.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Lorsque vous contactez l'assistance technique Cisco, vous êtes invité à fournir des détails sur l'activité réseau sortante et entrante SWA, qui peut être surveillée en exécutant une capture de paquets pour collecter le trafic à des fins de débogage ou de vérification.
Déploiement de proxy explicite
Un proxy explicite nécessite que les clients soient configurés pour envoyer leur trafic directement au serveur proxy, souvent via des paramètres de proxy spécifiques dans leur configuration réseau (fichier PAC ou options DHCP) ou les paramètres du navigateur. Cela permet au serveur proxy de gérer et de filtrer les requêtes avant de les transférer vers la destination.
Remarque : Dans un déploiement explicite, l'adresse IP de destination du paquet quittant l'ordinateur client est l'adresse IP du serveur proxy.
Voici le flux logique du réseau lors de l'utilisation du déploiement de proxy explicite :
Flux de paquets proxy explicites
Déploiement de proxy transparent
Un proxy transparent intercepte le trafic réseau sans nécessiter de modification de configuration côté client. Le trafic est automatiquement redirigé vers le serveur proxy, ce qui lui permet de filtrer et de surveiller les requêtes sans que le client en soit explicitement conscient.
Remarque : Dans le déploiement transparent, l'adresse IP de destination du paquet quittant la machine client est l'adresse IP du serveur de destination.
Voici le flux logique du réseau lors de l'utilisation du déploiement de proxy transparent :
Flux de paquets proxy transparent
Pour plus d'informations sur le flux de paquets SWA Explicit Transparent, référez-vous à Comprendre le flux de paquets dans l'appareil Web sécurisé
Captures de paquets sur AsyncOS versions 7.x et ultérieures
Afin de démarrer une capture de paquets à partir de l'interface graphique utilisateur (GUI), naviguez vers le menu Aide et support en haut à droite, choisissez Capture de paquets, puis cliquez sur Démarrer la capture. Afin d'arrêter le processus de capture de paquets, cliquez sur Stop Capture.
Remarque : Une capture démarrée dans l'interface utilisateur graphique reste enregistrée sur plusieurs sessions, même après l'expiration ou la déconnexion de la session de l'interface utilisateur graphique SWA.
Afin de démarrer une capture de paquets à partir de l'interface de ligne de commande (CLI), entrez la commande Packetcapture > Start. Afin d'arrêter le processus de capture de paquets, entrez la commande Packetcapture > Stop , et le SWA arrête la capture de paquets quand la session se termine.
Guides de configuration sur la capture de paquets SWA
Pour plus d'informations sur la façon d'effectuer la capture de paquets dans SWA.
Configurer la capture de paquets sur l'appliance de sécurité du contenu
Guide de l'utilisateur SWA - Section Packet Capture
Filtres de capture de paquets sur SWA
La capture par défaut de l'interface utilisateur graphique et de l'interface de ligne de commande SWA (commande Packetcapture) utilise la syntaxe de filtre tcpdump standard. Cette section fournit des informations sur les filtres de capture tcpdump et fournit quelques exemples.
Voici quelques-uns des filtres les plus utilisés :
- ip : Filtre tout le trafic du protocole IP.
- tcp: Filtre tout le trafic du protocole TCP.
- hôte : Filtres pour une adresse IP source ou de destination spécifique.
Deux conditions logiques sont fréquemment utilisées dans tcpdump :
- ET: Capture les paquets uniquement si toutes les conditions spécifiées sont remplies (utilisez
&&
).
- OU: Capture les paquets si au moins une condition est remplie (utilisez
||
).
Remarque : Ces conditions logiques sont sensibles à la casse.
Voici un exemple de filtre dans SWA pour collecter les paquets par adresse IP dans des déploiements transparents ou explicites :
Source IP : 192.168.1.1
Destination IP : 10.20.3.15
host 192.168.1.1 || host 10.20.3.15
Ce filtre capture le trafic entre 10.20.3.15 et SWA, et le trafic entre SWA et 192.168.1.1.
Conseil : Il n'est pas nécessaire d'ajouter l'adresse IP SWA dans le filtre.
Dépannage
Lorsque le client tente d'accéder à un site Web, l'ensemble du processus de communication peut être divisé en deux parties :
- Le client communique avec le SWA.
- SWA communique avec le serveur de destination.
Conseil : Avant de capturer des paquets, vérifiez que l'adresse IP du client reste inchangée dans le chemin vers SWA. Les modifications d'adresse IP se produisent en raison des règles NAT (Network Address Translation) configurées avant que le trafic n'atteigne SWA ou de la présence d'un proxy en aval entre SWA et la machine cliente.
Analyser les connexions explicites à l'aide des filtres Wireshark
Filtres Wireshark pour les connexions explicites
Pour la première phase de la communication dans la capture de paquets : L'adresse IP source est l'adresse IP du client et l'adresse IP de destination est l'adresse IP SWA (l'interface entrante du SWA est généralement l'interface P1).
Vous pouvez utiliser ces filtres dans Wireshark :
Filtrer par l'adresse IP du client :
ip.addr ==
Pour la deuxième phase de la communication, l’adresse IP source est l’adresse IP SWA (l’interface externe est généralement l’interface P2) et l’adresse IP de destination est l’adresse IP du serveur Web.
Filtrer par l'adresse IP du serveur :
ip.addr ==
Dans le déploiement explicite, le client envoie sa demande en tant que connexion HTTP au proxy, pour filtrer par la connexion HTTP :
http.request.method == "CONNECT"
Filtrer par la méthode de requête HTTP :
http.request.method==GET
ou
http.request.uri contains ""
Dans la requête HTTPS pour filtrer le paquet Hello du client :
ssl.handshake.type==1
Si vous souhaitez que les deux côtés communiquent ensemble, la meilleure action consiste à utiliser le filtre de flux TCP.
Conseil : pour trouver le numéro du flux TCP, cliquez avec le bouton droit sur un paquet de votre filtre actuel ou cliquez avec le bouton droit sur le paquet de votre choix, sélectionnez Suivre, puis Flux TCP. Vous pouvez voir le numéro de flux TCP dans la barre de filtre.
Pour isoler les numéros des flux TCP de la première et de la deuxième phase, utilisez le filtre suivant :
tcp.stream eq || tcp.stream eq
Remplacez <first_phase_stream_number> et <second_phase_stream_number> par les numéros de flux appropriés.
Analyser les connexions transparentes à l'aide des filtres Wireshark
Dans les requêtes transparentes impliquant la redirection WCCP (Web Cache Communication Protocol) ou PBR (Policy-Based Routing), alors que le trafic client est dirigé vers le SWA, le SWA répond avec l'adresse IP du serveur de destination plutôt qu'avec sa propre adresse IP. Par conséquent, dans les requêtes transparentes, la capture de paquets affiche l'adresse IP du serveur de destination mais utilise l'adresse MAC SWA comme adresse MAC de destination (dans le trafic entre le client et SWA) et les paquets sortant du SWA si l'usurpation d'adresse IP n'est pas activée, l'adresse IP source est l'adresse IP du client avec l'adresse MAC SWA.
Filtres Wireshark pour connexions transparentes
Comme dans le cas d’une requête transparente, Wireshark filtre les connexions de la même manière que les connexions explicites, mais garde une note indiquant que SWA ne peut pas communiquer avec le client en utilisant son adresse IP réelle et qu’il s’est plutôt usurpé en tant que serveur de destination réel.
Filtrer par l'adresse IP du client :
ip.addr ==
Filtrer par l'adresse IP du serveur :
ip.addr ==
Mise en garde : Si l'usurpation d'adresse IP n'est pas activée dans le SWA, l'adresse IP source du paquet de SWA vers le serveur Web est l'adresse IP du client.
Filtrer par la méthode de requête HTTP :
http.request.method==GET
ou
http.request.uri contains ""
Dans la requête HTTPS pour filtrer le paquet Hello du client :
ssl.handshake.type==1
Si vous souhaitez que les deux côtés communiquent ensemble, la meilleure action consiste à utiliser le filtre de flux TCP.
Conseil : pour trouver le numéro de flux TCP, cliquez avec le bouton droit sur un paquet de votre filtre actuel ou cliquez avec le bouton droit sur le paquet de votre choix, sélectionnez Follow (Suivre), puis sélectionnez TCP Stream (Flux TCP). Vous pouvez voir le numéro de flux TCP dans la barre de filtre
Pour isoler les numéros des flux TCP de la première et de la deuxième phase, utilisez le filtre suivant :
tcp.stream eq || tcp.stream eq
Remplacez <first_phase_stream_number> et <second_phase_stream_number> par les numéros de flux appropriés.
Les filtres Wireshark sont similaires aux connexions explicites.
Comment confirmer que la requête Web du client est une connexion explicite ou transparente
Dans les demandes explicites : le client accède à une URL tout en étant conscient du serveur proxy, de sorte que le client envoie la requête de connexion HTTP à l'adresse IP du proxy et au port du proxy.
SWA écoute par défaut les ports TCP 3128 et 80 pour le service proxy. Dans les captures de paquets de déploiement explicites, vous pouvez voir que le trafic entre le client et SWA est destiné à ces numéros de port proxy.
Dans les requêtes transparentes : le client accède à une URL alors qu'il ne connaît pas l'adresse IP du proxy et que SWA ne communique pas avec sa propre adresse IP. Au lieu de cela, SWA a usurpé l'adresse IP du serveur de destination.
En mode transparent, le trafic apparaît plutôt comme s'il circulait entre le client et le serveur de destination (par exemple, le site Web de Cisco), mais l'adresse MAC du serveur de destination est celle du SWA. Pour confirmer l'adresse MAC SWA, utilisez la commande CLI : etherconfig > MEDIA.
Modification de la vue Wireshark
Pour avoir une meilleure vue d'ensemble des paquets dans Wireshark lors du dépannage des requêtes Web à l'aide d'un proxy, il est préférable d'avoir l'indication de nom de serveur (SNI) et l'ID de flux TCP dans votre vue de paquets.
Ajout d'une colonne SNI à la vue Wireshark
Étape 1. Ouvrez le fichier de capture de paquets avec Wireshark.
Étape 2. Cliquez avec le bouton droit sur le nom des colonnes dans Wireshark.
Étape 3. Sélectionnez Préférences de colonne.
Étape 4. Cliquez sur le signe + (Ajouter une nouvelle colonne).
Étape 5. Entrez un nom pour cette colonne (par exemple, SNI).
Étape 6. Dans la section Type, sélectionnez Personnalisé.
Étape 7. Dans la section Field, entrez tls.handshake.extensions_server_name.
Étape 8. Cliquez sur OK pour enregistrer les modifications.
Vous pouvez également suivre les étapes suivantes :
Étape 1. Application du filtre sur Wireshark : ssl.handshake.type==1 pour isoler les messages Hello du client dans la connexion SSL/TLS.
Étape 2. Développer les détails du protocole : Cliquez sur Transport Layer Security > Expand Handshake Protocol : Client Hello > Extension : Nom du serveur > Développer l'extension d'indication du nom du serveur (SNI).
Étape 3. Ajouter le nom du serveur en tant que colonne Cliquez avec le bouton droit sur le nom du serveur (ou le nom du serveur spécifique) et sélectionnez Appliquer en tant que colonne.
Ajout de la colonne Stream Number à la vue Wireshark
Étape 1. Ouvrez le fichier de capture de paquets avec Wireshark.
Étape 2. Cliquez avec le bouton droit sur le nom des colonnes dans Wireshark.
Étape 3. Sélectionnez Préférences de colonne.
Étape 4. Cliquez sur le signe + (Ajouter une nouvelle colonne).
Étape 5. Entrez un nom pour cette colonne (par exemple, Stream).
Étape 6. Dans la section Type, sélectionnez Personnalisé.
Étape 7. Dans la section Field, entrez tcp.stream.
Étape 8. Cliquez sur OK pour enregistrer les modifications.
Vous pouvez également suivre les étapes suivantes :
Étape 1 : localisation des paquets HTTP/TCP Vérifiez que vous visualisez les paquets qui incluent le protocole HTTP/TCP.
Étape 2. Sélectionnez ou cliquez sur le paquet et sur un protocole de contrôle de transmission dans le volet inférieur gauche. Faites défiler vers le bas pour obtenir (Stream Index:Number).
Étape 3. Cliquez avec le bouton droit sur Stream Index : et appliquer comme colonne.
Informations connexes