Introduzione
In questo documento vengono descritti i metodi per analizzare il pacchetto acquisito da Secure Web Appliance (SWA) tramite Wireshark.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Quando si contatta il supporto tecnico Cisco, viene chiesto di fornire dettagli sull'attività della rete SWA in entrata e in uscita, che possono essere monitorati eseguendo un'acquisizione di pacchetti per raccogliere il traffico a scopo di debug o verifica.
Distribuzione proxy esplicita
Un proxy esplicito richiede che i client siano configurati per inviare il traffico direttamente al server proxy, spesso tramite specifiche impostazioni proxy nella configurazione di rete (file PAC o opzioni DHCP) o nelle impostazioni del browser. In questo modo il server proxy può gestire e filtrare le richieste prima di inoltrarle alla destinazione.
Nota: In una distribuzione esplicita, l'indirizzo IP di destinazione del pacchetto in uscita dal computer client è l'indirizzo IP del server proxy.
Di seguito è riportato il flusso logico della rete durante l'utilizzo della distribuzione proxy esplicita:
Flusso di pacchetti proxy esplicito
Distribuzione proxy trasparente
Un proxy trasparente intercetta il traffico di rete senza richiedere modifiche alla configurazione sul lato client. Il traffico viene reindirizzato automaticamente al server proxy, consentendo di filtrare e monitorare le richieste senza che il client ne sia esplicitamente a conoscenza.
Nota: Nella distribuzione trasparente, l'indirizzo IP di destinazione del pacchetto in uscita dal computer client corrisponde all'indirizzo IP del server di destinazione.
Di seguito è riportato il flusso logico della rete durante l'utilizzo della distribuzione del proxy trasparente:
Flusso di pacchetti proxy trasparente
Per ulteriori informazioni sul flusso di pacchetti trasparente SWA Explicit, vedere Informazioni sul flusso di pacchetti in Secure Web Appliance
Acquisizioni di pacchetti su AsyncOS versione 7.x e successive
Per avviare l'acquisizione di un pacchetto dall'interfaccia utente grafica (GUI), accedere al menu Guida e supporto tecnico in alto a destra, scegliere Acquisizione pacchetto, quindi fare clic su Avvia acquisizione. Per interrompere il processo di acquisizione del pacchetto, fare clic su Stop Capture (Interrompi acquisizione).
Nota: Un'acquisizione avviata nella GUI rimane salvata tra le sessioni, anche dopo la scadenza della sessione GUI SWA o la disconnessione.
Per avviare un'acquisizione pacchetto dall'interfaccia della riga di comando (CLI), immettere il comando Packetcapture > Start. Per interrompere il processo di acquisizione del pacchetto, immettere il comando Packetcapture > Stop e l'SWA interrompe l'acquisizione del pacchetto al termine della sessione.
Guide alla configurazione sull'acquisizione di pacchetti SWA
Per ulteriori informazioni su come eseguire l'acquisizione dei pacchetti in SWA.
Configurazione dell'acquisizione pacchetti su Content Security Appliance
Guida per l'utente SWA - Sezione Packet Capture
Filtri di acquisizione pacchetti su SWA
L'acquisizione predefinita dalla GUI SWA e dalla CLI (comando Packetcapture) utilizza la sintassi standard del filtro tcpdump. In questa sezione vengono fornite informazioni relative ai filtri di acquisizione tcpdump e alcuni esempi.
Di seguito sono elencati alcuni dei filtri più utilizzati:
- ip: Filtri per tutto il traffico del protocollo IP.
- tcp: Filtri per tutto il traffico del protocollo TCP.
- host: Filtri per un'origine o una destinazione di indirizzo IP specifica.
In tcpdump sono presenti due condizioni logiche utilizzate di frequente:
- E: Acquisisce i pacchetti solo se vengono soddisfatte tutte le condizioni specificate (utilizzare
&&).
- O: Acquisisce i pacchetti se almeno una condizione è soddisfatta (utilizzare
||).
Nota: Tali condizioni logiche fanno distinzione tra maiuscole e minuscole.
Di seguito è riportato un filtro di esempio in SWA per raccogliere i pacchetti in base all'indirizzo IP in distribuzioni trasparenti o esplicite:
IP di origine: 192.168.1.1
IP di destinazione: 10.20.3.15
host 192.168.1.1 || host 10.20.3.15
Questo filtro cattura il traffico tra la versione 10.20.3.15 e la SWA e il traffico tra la versione 192.168.1.1.
Suggerimento: Non è necessario aggiungere l'indirizzo IP SWA nel filtro.
Risoluzione dei problemi
Quando il client tenta di accedere a un sito Web, l'intero processo di comunicazione può essere suddiviso in due parti:
- Il client comunica con l'SWA.
- SWA che comunica con il server di destinazione.
Suggerimento: Prima di acquisire i pacchetti, verificare che l'indirizzo IP del client rimanga invariato nel percorso verso SWA. Le modifiche all'indirizzo IP si verificano a causa delle regole NAT (Network Address Translation) configurate prima che il traffico raggiunga il protocollo SWA o della presenza di un proxy a valle tra il protocollo SWA e il computer client.
Analisi Di Connessioni Esplicite Tramite Filtri Wireshark
Filtri Wireshark per connessioni esplicite
Per la prima fase della comunicazione nell'acquisizione dei pacchetti: L'indirizzo IP di origine corrisponde all'indirizzo IP del client e l'indirizzo IP di destinazione all'indirizzo IP SWA (l'interfaccia in entrata dell'interfaccia SWA è in genere l'interfaccia P1).
In Wireshark è possibile utilizzare i seguenti filtri:
Filtra in base all'indirizzo IP del client:
ip.addr ==
Per la seconda fase della comunicazione, l'indirizzo IP di origine è l'indirizzo IP SWA (l'interfaccia esterna è in genere l'interfaccia P2) e l'indirizzo IP di destinazione è l'indirizzo IP del server Web.
Filtra in base all'indirizzo IP del server:
ip.addr ==
Nella distribuzione esplicita, il client invia la propria richiesta come HTTP Connect al proxy, per filtrare in base alla HTTP Connect:
http.request.method == "CONNECT"
Filtrare in base al metodo di richiesta HTTP:
http.request.method==GET
o
http.request.uri contains ""
Nella richiesta HTTPS per filtrare il client Hello:
ssl.handshake.type==1
Se si desidera vedere entrambi i lati comunicare tra loro, l'azione migliore è utilizzare il filtro di flusso TCP.
Suggerimento:per trovare il numero di flusso TCP, fare clic con il pulsante destro del mouse su qualsiasi pacchetto nel filtro corrente o fare clic con il pulsante destro del mouse sul pacchetto desiderato, selezionare Segui, scegliere Flusso TCP. È possibile visualizzare il numero di flusso TCP nella barra dei filtri.
Per isolare i numeri di flusso TCP della prima e della seconda fase, utilizzare il filtro:
tcp.stream eq || tcp.stream eq
Sostituire <first_phase_stream_number> e <second_phase_stream_number> con i numeri di flusso appropriati.
Analisi delle connessioni trasparenti mediante i filtri Wireshark
Nelle richieste trasparenti che coinvolgono il reindirizzamento WCCP (Web Cache Communication Protocol) o il PBR (Policy-Based Routing), mentre il traffico del client viene indirizzato all'SWA, l'SWA risponde con l'indirizzo IP del server di destinazione piuttosto che con il proprio indirizzo IP. Di conseguenza, nelle richieste trasparenti, l'acquisizione dei pacchetti visualizza l'indirizzo IP del server di destinazione, ma utilizza l'indirizzo MAC SWA come indirizzo MAC di destinazione (nel traffico tra il client e l'SWA) e i pacchetti in uscita dall'SWA se lo spoofing IP non è abilitato, l'indirizzo IP di origine è l'indirizzo IP del client con l'indirizzo MAC SWA.
Filtri Wireshark per connessioni trasparenti
Come nel caso di una richiesta trasparente, Wireshark filtra lo stesso delle connessioni esplicite, ma tiene presente che SWA non può comunicare con il client utilizzando il proprio indirizzo IP effettivo e si autofalsifica come server di destinazione effettivo.
Filtra in base all'indirizzo IP del client:
ip.addr ==
Filtra in base all'indirizzo IP del server:
ip.addr ==
Attenzione: Se lo spoofing IP non è abilitato nell'interfaccia SWA, l'indirizzo IP di origine del pacchetto dal server SWA al server Web è l'indirizzo IP del client.
Filtrare in base al metodo di richiesta HTTP:
http.request.method==GET
o
http.request.uri contains ""
Nella richiesta HTTPS per filtrare il client Hello:
ssl.handshake.type==1
Se si desidera vedere entrambi i lati comunicare tra loro, l'azione migliore è utilizzare il filtro di flusso TCP.
Suggerimento: per trovare il numero di flusso TCP, fare clic con il pulsante destro del mouse su qualsiasi pacchetto nel filtro corrente o fare clic con il pulsante destro del mouse sul pacchetto desiderato, selezionare Segui, scegliere Flusso TCP. È possibile visualizzare il numero di flusso TCP nella barra dei filtri
Per isolare i numeri di flusso TCP della prima e della seconda fase, utilizzare il filtro:
tcp.stream eq || tcp.stream eq
Sostituire <first_phase_stream_number> e <second_phase_stream_number> con i numeri di flusso appropriati.
I filtri Wireshark sono simili alle connessioni esplicite.
Come confermare che la richiesta Web del client è una connessione esplicita o trasparente
Nelle richieste esplicite: il client accede a un URL riconoscendo il server proxy, quindi invia la richiesta di connessione HTTP all'indirizzo IP proxy e alla porta proxy.
Per impostazione predefinita, SWA resta in ascolto sulle porte TCP 3128 e 80 per il servizio proxy. Nelle acquisizioni esplicite dei pacchetti di distribuzione, è possibile vedere il traffico tra il client e SWA è destinato a quei numeri di porta proxy.
Nelle richieste trasparenti: il client accede a un URL quando non è a conoscenza dell'IP proxy e l'SWA non comunica utilizzando il proprio indirizzo IP. SWA ha invece falsificato l'indirizzo IP del server di destinazione.
In modalità trasparente, il traffico viene invece visualizzato come se scorresse tra il client e il server di destinazione (ad esempio, il sito Web di Cisco), ma l'indirizzo MAC del server di destinazione è quello del server SWA. Per confermare l'indirizzo MAC SWA, usare il comando CLI: etherconfig > MEDIA.
Modifica della vista di Wireshark
Per avere una migliore panoramica dei pacchetti in Wireshark durante la risoluzione dei problemi delle richieste Web tramite un proxy, è consigliabile avere l'indicazione del nome del server (SNI) e l'ID del flusso TCP nella vista dei pacchetti.
Aggiunta della colonna SNI alla vista Wireshark
Passaggio 1. Aprire il file di acquisizione del pacchetto con il Wireshark.
Passaggio 2. Fare clic con il pulsante destro del mouse sul nome delle colonne nel Wireshark.
Passaggio 3. Scegliere Preferenze colonna.
Passaggio 4. Fare clic sul segno + (Aggiungi nuova colonna).
Passaggio 5. Inserire un nome per la colonna, ad esempio SNI.
Passaggio 6. Nella sezione Tipo, scegliere Personalizzato.
Passaggio 7. Nella sezione Campo immettere tls.handshake.extensions_server_name.
Passaggio 8. Fare clic su OK per salvare le modifiche.
In alternativa, è possibile eseguire la procedura seguente:
Passaggio 1. Applicare il filtro su Wireshark: ssl.handshake.type==1 per isolare i messaggi Hello del client nell'handshake SSL/TLS.
Passaggio 2. Espandere Dettagli protocollo: Fare clic su Transport Layer Security > Expand Handshake Protocol: Hello > Espandi estensione client: Nome server > Espandi estensione SNI (Server Name Indication Extension).
Passaggio 3. Aggiungere il nome del server come colonna. Fare clic con il pulsante destro del mouse sul nome del server (o sul nome del server specifico) e selezionare Applica come colonna.
aggiunta della colonna del numero di flusso alla vista Wireshark
Passaggio 1. Aprire il file di acquisizione del pacchetto con il Wireshark.
Passaggio 2. Fare clic con il pulsante destro del mouse sul nome delle colonne nel Wireshark.
Passaggio 3. Scegliere Preferenze colonna.
Passaggio 4. Fare clic sul segno + (Aggiungi nuova colonna).
Passaggio 5. Inserire un nome per la colonna, ad esempio Stream.
Passaggio 6. Nella sezione Tipo, scegliere Personalizzato.
Passaggio 7. Nella sezione Campo immettere tcp.stream.
Passaggio 8. Fare clic su OK per salvare le modifiche.
In alternativa, è possibile eseguire la procedura seguente:
Passaggio 1. Individuare i pacchetti HTTP/TCP: Assicurarsi di visualizzare i pacchetti che includono il protocollo HTTP/TCP.
Passaggio 2. Selezionare o fare clic sul pacchetto e sul protocollo di controllo della trasmissione nel riquadro in basso a sinistra. Scorrere verso il basso per ottenere (Indice flusso:Numero).
Passaggio 3. Fare clic con il pulsante destro del mouse sull'indice di flusso: numero e applica come colonna.
Informazioni correlate