Einleitung
In diesem Dokument werden die Methoden zum Analysieren des von der Secure Web Appliance (SWA) erfassten Pakets mithilfe von Wireshark beschrieben.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
Wenn Sie sich an den technischen Support von Cisco wenden, werden Sie gebeten, Details zu den ausgehenden und eingehenden Netzwerkaktivitäten des SWA anzugeben. Diese können überwacht werden, indem eine Paketerfassung ausgeführt wird, um Datenverkehr für Debugging- oder Verifizierungszwecke zu erfassen.
Explizite Proxy-Bereitstellung
Bei einem expliziten Proxy müssen Clients so konfiguriert werden, dass sie ihren Datenverkehr direkt an den Proxyserver senden. Dies geschieht häufig über spezifische Proxyeinstellungen in ihrer Netzwerkkonfiguration (PAC-Datei oder DHCP-Optionen) oder die Browsereinstellungen. Auf diese Weise kann der Proxyserver Anforderungen verwalten und filtern, bevor sie an das Ziel weitergeleitet werden.
Anmerkung: Bei einer expliziten Bereitstellung ist die Ziel-IP-Adresse des Pakets, das den Client-Computer verlässt, die IP-Adresse des Proxy-Servers.
Im Folgenden wird der logische Netzwerkfluss bei Verwendung der expliziten Proxy-Bereitstellung dargestellt:
Expliziter Proxy-Paketfluss
Transparente Proxy-Bereitstellung
Ein transparenter Proxy fängt den Netzwerkverkehr ab, ohne dass auf der Clientseite Konfigurationsänderungen erforderlich sind. Der Datenverkehr wird automatisch an den Proxyserver umgeleitet, sodass dieser Anfragen ohne ausdrückliche Zustimmung des Clients filtern und überwachen kann.
Anmerkung: Bei der transparenten Bereitstellung ist die Ziel-IP-Adresse des Pakets, das den Client-Computer verlässt, die IP-Adresse des Zielservers.
Nachfolgend ist der logische Fluss des Netzwerks bei Verwendung der transparenten Proxy-Bereitstellung aufgeführt:
Transparenter Proxy-Paketfluss
Weitere Informationen zum expliziten transparenten SWA-Paketfluss finden Sie unter Verstehen des Paketflusses in der sicheren Web-Appliance.
Paketerfassung mit AsyncOS 7.x und höher
Um eine Paketerfassung über die grafische Benutzeroberfläche (GUI) zu starten, navigieren Sie zum Menü Hilfe und Support oben rechts, wählen Sie Paketerfassung aus, und klicken Sie dann auf Erfassung starten. Um die Paketerfassung zu beenden, klicken Sie auf Stopp Capture (Erfassung beenden).
Anmerkung: Eine in der GUI gestartete Aufzeichnung bleibt sitzungsübergreifend gespeichert, auch nach Ablauf oder Abmeldung der SWA-GUI-Sitzung.
Um eine Paketerfassung über die Befehlszeilenschnittstelle (CLI) zu starten, geben Sie den Befehl PacketCapture > Start ein. Um den Paketerfassungsprozess zu beenden, geben Sie PacketCapture > Stopp Command ein, und der SWA beendet die Paketerfassung, wenn die Sitzung endet.
Konfigurationsanleitungen zur SWA-Paketerfassung
Weitere Informationen zum Durchführen der Paketerfassung in SWA.
Konfigurieren der Paketerfassung auf der Content Security Appliance
SWA-Benutzerhandbuch - Abschnitt "Paketerfassung"
Paketerfassungsfilter auf SWA
Die Standarderfassung aus der SWA-GUI und CLI (PacketCapture-Befehl) verwendet die standardmäßige tcpdump-Filtersyntax. Dieser Abschnitt enthält Informationen zu tcpdump-Erfassungsfiltern sowie einige Beispiele.
Hier sind einige der am häufigsten verwendeten Filter:
- ip: Filter für den gesamten IP-Protokoll-Datenverkehr
- tcp: Filter für den gesamten TCP-Protokollverkehr.
- Host: Filter für eine bestimmte IP-Adressquelle oder ein bestimmtes Ziel.
Es gibt zwei logische Bedingungen, die häufig in tcpdump verwendet werden:
- Und: Erfasst Pakete nur, wenn alle angegebenen Bedingungen erfüllt sind (Verwendung
&&).
- ODER: Erfasst Pakete, wenn mindestens eine Bedingung erfüllt ist (verwenden)
||).
Anmerkung: Diese logischen Bedingungen unterscheiden zwischen Groß- und Kleinschreibung.
Im Folgenden finden Sie einen Beispielfilter in SWA, um die Pakete in transparenten oder expliziten Bereitstellungen nach IP-Adresse zu sammeln:
Quell-IP: 192.168.1.1
Ziel-IP: 10.20.3.15
host 192.168.1.1 || host 10.20.3.15
Dieser Filter erfasst Datenverkehr zwischen 10.20.3.15 und SWA sowie zwischen SWA und 192.168.1.1.
Tipp: Es ist nicht erforderlich, die SWA-IP-Adresse dem Filter hinzuzufügen.
Fehlerbehebung
Wenn der Kunde versucht, auf eine Website zuzugreifen, kann der gesamte Kommunikationsprozess in zwei Teile aufgeteilt werden:
- Der Client kommuniziert mit dem SWA.
- SWA kommuniziert mit dem Zielserver.
Tipp: Bevor Sie Pakete erfassen, stellen Sie sicher, dass die Client-IP-Adresse im Pfad zu SWA unverändert bleibt. IP-Adressänderungen werden aufgrund von Network Address Translation (NAT)-Regeln vorgenommen, die vor dem Eintreffen des Datenverkehrs in SWA konfiguriert wurden, oder aufgrund des Vorhandenseins eines Downstream-Proxys zwischen SWA und dem Client-System.
Explizite Verbindungen mithilfe von Wireshark-Filtern analysieren
Wireshark-Filter für explizite Verbindungen
Für die erste Phase der Kommunikation bei der Paketerfassung: Bei der Quell-IP handelt es sich um die Client-IP-Adresse, und die Ziel-IP-Adresse ist die SWA-IP (die eingehende Schnittstelle des SWA ist in der Regel die P1-Schnittstelle).
Sie können diese Filter in Wireshark verwenden:
Nach Client-IP filtern:
ip.addr ==
In der zweiten Kommunikationsphase entspricht die Quell-IP der SWA-IP-Adresse (die externe Schnittstelle ist in der Regel die P2-Schnittstelle), und die Ziel-IP-Adresse ist die IP-Adresse des Webservers.
Nach Server-IP filtern:
ip.addr ==
In der expliziten Bereitstellung sendet der Client seine Anforderung als HTTP-Connect an den Proxy, um anhand der HTTP-Connect:
http.request.method == "CONNECT"
Nach HTTP-Anforderungsmethode filtern:
http.request.method==GET
Oder
http.request.uri contains ""
In der HTTPS-Anforderung zum Filtern nach Client Hello:
ssl.handshake.type==1
Wenn Sie möchten, dass beide Seiten miteinander kommunizieren, sollten Sie am besten einen TCP-Stream-Filter verwenden.
Tipp: Um die TCP-Streamnummer zu finden, klicken Sie mit der rechten Maustaste auf ein beliebiges Paket in Ihrem aktuellen Filter oder klicken Sie mit der rechten Maustaste auf das gewünschte Paket, wählen Sie Folgen aus, und wählen Sie TCP-Stream aus. Die TCP-Datenstromnummer wird in der Filterleiste angezeigt.
Verwenden Sie den Filter, um die erste und die zweite TCP-Streamnummer zu isolieren:
tcp.stream eq || tcp.stream eq
Ersetzen Sie <first_phase_stream_number> und <second_phase_stream_number> durch die entsprechenden Streamnummern.
Analysieren transparenter Verbindungen mit Wireshark-Filtern
Bei den transparenten Anforderungen mit WCCP-Umleitung (Web Cache Communication Protocol) oder richtlinienbasiertem Routing (Policy-Based Routing, PBR), während der Client-Datenverkehr an den SWA weitergeleitet wird, antwortet der SWA mit der IP-Adresse des Zielservers und nicht mit seiner eigenen IP-Adresse. Daher zeigt die Paketerfassung bei transparenten Anforderungen die IP-Adresse des Zielservers an, verwendet jedoch die SWA-MAC-Adresse als Ziel-MAC-Adresse (im Datenverkehr zwischen Client und SWA) und die Pakete, die vom SWA ausgehen, wenn IP-Spoofing nicht aktiviert ist. Die Quell-IP ist die Client-IP-Adresse mit SWA-MAC-Adresse.
Wireshark-Filter für transparente Verbindungen
Wie bei einer transparenten Anfrage filtert Wireshark die gleichen Daten wie explizite Verbindungen, behält jedoch den Hinweis bei, dass SWA nicht mit seiner tatsächlichen IP-Adresse mit dem Client kommunizieren kann und sich stattdessen als tatsächlicher Zielserver getäuscht hat.
Nach Client-IP filtern:
ip.addr ==
Nach Server-IP filtern:
ip.addr ==
Vorsicht: Wenn IP-Spoofing im SWA nicht aktiviert ist, ist die Quell-IP-Adresse des Pakets vom SWA an den Webserver die Client-IP-Adresse.
Nach HTTP-Anforderungsmethode filtern:
http.request.method==GET
Oder
http.request.uri contains ""
In der HTTPS-Anforderung zum Filtern nach Client Hello:
ssl.handshake.type==1
Wenn Sie möchten, dass beide Seiten miteinander kommunizieren, sollten Sie am besten einen TCP-Stream-Filter verwenden.
Tipp: Um die TCP-Streamnummer zu finden, klicken Sie mit der rechten Maustaste auf ein beliebiges Paket in Ihrem aktuellen Filter, oder klicken Sie mit der rechten Maustaste auf das gewünschte Paket, wählen Sie Folgen, und wählen Sie TCP-Stream aus. Die TCP-Datenstromnummer wird in der Filterleiste angezeigt.
Verwenden Sie den Filter, um die erste und die zweite TCP-Streamnummer zu isolieren:
tcp.stream eq || tcp.stream eq
Ersetzen Sie <first_phase_stream_number> und <second_phase_stream_number> durch die entsprechenden Streamnummern.
Wireshark-Filter ähneln expliziten Verbindungen.
So bestätigen Sie, dass die Clientwebanforderung eine explizite oder transparente Verbindung ist
In den ausdrücklichen Aufforderungen: Der Client greift auf eine URL zu, während er den Proxyserver erkennt. Der Client sendet daher die HTTP-Verbindungsanforderung an die IP-Adresse des Proxys und den Proxyport.
SWA hört standardmäßig den TCP-Port 3128 und 80 für den Proxydienst ab. Bei der expliziten Bereitstellungspaketerfassung können Sie sehen, dass der Datenverkehr zwischen dem Client und SWA für diese Proxyportnummern bestimmt ist.
In den transparenten Anträgen: Der Client greift auf eine URL zu, während der Client die Proxy-IP nicht erkennt, und SWA kommuniziert nicht über seine eigene IP-Adresse. Stattdessen fälschte die SWA die IP-Adresse des Zielservers ab.
Im transparenten Modus wird der Datenverkehr stattdessen so angezeigt, als ob er zwischen dem Client und dem Zielserver fließt (z. B. auf der Cisco Website). Die MAC-Adresse des Zielservers ist jedoch die des SWA. Um die SWA-MAC-Adresse zu bestätigen, verwenden Sie CLI Command: etherconfig > MEDIA.
Ändern der Wireshark-Ansicht
Um einen besseren Überblick über die Pakete in Wireshark zu erhalten, während Sie die Webanfragen mithilfe eines Proxys beheben, sollten Sie die Server Name Indication (SNI) und die TCP Stream ID in Ihrer Paketansicht haben.
Hinzufügen einer SNI-Spalte zur Wireshark-Ansicht
Schritt 1: Öffnen Sie die Paketerfassungsdatei mit Ihrem Wireshark.
Schritt 2: Klicken Sie mit der rechten Maustaste auf den Spaltennamen in Wireshark.
Schritt 3: Wählen Sie Spaltenvoreinstellungen.
Schritt 4: Klicken Sie auf das Zeichen + (Neue Spalte hinzufügen).
Schritt 5: Geben Sie einen Namen für diese Spalte ein (z. B. SNI).
Schritt 6. Wählen Sie im Abschnitt Typ die Option Benutzerdefiniert.
Schritt 7: Geben Sie im Abschnitt Feld den Namen tls.handshake.extensions_server_name ein.
Schritt 8: Klicken Sie auf OK, um die Änderungen zu speichern.
Sie können auch folgendermaßen vorgehen:
Schritt 1: Wenden Sie den Filter auf Wireshark an: ssl.handshake.type==1 zum Isolieren der Client Hello-Nachrichten im SSL/TLS-Handshake.
Schritt 2: Erweitern Sie Protokolldetails: Klicken Sie auf Transport Layer Security > Expand Handshake Protocol: Client Hello > Erweiterung erweitern: Servername > Erweitern Sie die Servernamenseingabeerweiterung (SNI).
Schritt 3: Servername als Spalte hinzufügen Klicken Sie mit der rechten Maustaste auf den Servernamen (oder den spezifischen Servernamen), und wählen Sie Als Spalte übernehmen aus.
Hinzufügen einer Streamnummernspalte zur Wireshark-Ansicht
Schritt 1: Öffnen Sie die Paketerfassungsdatei mit Ihrem Wireshark.
Schritt 2: Klicken Sie mit der rechten Maustaste auf den Spaltennamen in Wireshark.
Schritt 3: Wählen Sie Spaltenvoreinstellungen.
Schritt 4: Klicken Sie auf das Zeichen + (Neue Spalte hinzufügen).
Schritt 5: Geben Sie einen Namen für diese Spalte ein (z. B. Stream).
Schritt 6. Wählen Sie im Abschnitt Typ die Option Benutzerdefiniert.
Schritt 7: Geben Sie im Abschnitt Feld die Datei tcp.stream ein.
Schritt 8: Klicken Sie auf OK, um die Änderungen zu speichern.
Sie können auch folgendermaßen vorgehen:
Schritt 1: Suche nach HTTP-/TCP-Paketen: Stellen Sie sicher, dass Sie Pakete anzeigen, die das HTTP/TCP-Protokoll enthalten.
Schritt 2: Wählen Sie das Paket und ein Übertragungsprotokoll links unten aus, oder klicken Sie darauf. Scrollen Sie nach unten (Stream Index:Number).
Schritt 3. Klicken Sie mit der rechten Maustaste auf den Stream-Index: und als Spalte anwenden.
Zugehörige Informationen