Wie konfiguriere ich Charles Proxy für Proxying über einen VPN-Tunnel?

Melden
  1. Grundverständnis des Netzwerkflusses mit VPN und Proxy
  2. VPN-Verbindung sicherstellen und konfigurieren
  3. Charles Proxy richtig konfigurieren
  4. Netzwerk- und Betriebssystem-Konfiguration
  5. Testen der Konfiguration
  6. Besonderheiten bei Authentifizierung und Verschlüsselung
  7. Zusammenfassung

Charles Proxy ist ein mächtiges Werkzeug zum Debuggen von Netzwerkverkehr. Wenn du Charles Proxy in einer Umgebung betreiben möchtest, in der der gesamte Netzwerkverkehr oder ein Teil davon über einen VPN-Tunnel geleitet wird, musst du einige spezielle Konfigurationen vornehmen. Ziel ist es, sicherzustellen, dass Charles Proxy den Traffic korrekt abfängt und dabei der VPN-Tunnel nicht stört oder umgangen wird.

Grundverständnis des Netzwerkflusses mit VPN und Proxy

Ein VPN-Tunnel bildet eine verschlüsselte Verbindung zu einem entfernten Netzwerk und leitet den Netzwerkverkehr über diesen Tunnel. Charles Proxy läuft lokal als HTTP-Proxy auf deinem Rechner. Damit der Datenverkehr, der über Charles geleitet wird, auch korrekt durch den VPN-Tunnel läuft, muss die VPN-Verbindung so konfigurieren sein, dass der gesamte Netzwerkverkehr (oder zumindest der über Charles weitergeleitete) durch die VPN-Schnittstelle geleitet wird. Außerdem muss Charles so konfiguriert sein, dass er den richtigen Schnittstellen zuhört und authentifizierte Verbindungen akzeptiert, falls der VPN-Tunnel besondere Sicherheitsanforderungen hat.

VPN-Verbindung sicherstellen und konfigurieren

Zu Beginn solltest du sicherstellen, dass der VPN-Tunnel korrekt aktiv ist. Je nach VPN-Client werden alle Verbindungen oder nur selektive Verbindungen (Split-Tunneling) über den VPN-Tunnel geleitet. Für das Proxying bietet es sich an, das Split-Tunneling bei Bedarf zu deaktivieren, damit der gesamte Rechnerverkehr, inklusive der HTTP(S)-Anfragen über Charles Proxy, über die VPN-Verbindung läuft. Nur so kann sichergestellt werden, dass auch die durch Charles weitergeleiteten Verbindungen über den VPN-Tunnel ins entfernte Netz gelangen.

Charles Proxy richtig konfigurieren

Charles läuft standardmäßig auf dem lokalen Rechner und hört auf dem Port 8888 (standardmäßig). Wenn der VPN-Client eine eigene Netzwerkschnittstelle anlegt, ist es wichtig, in Charles sicherzustellen, dass der eingehende und ausgehende Verkehr über diese Schnittstelle korrekt abgewickelt wird. Öffne dazu die Charles-Einstellungen und überprüfe unter Proxy > Proxies, auf welcher Adresse und welchem Port Charles den Proxy bereitstellt. Du kannst auch in Proxy > Proxy Settings die Option "Enable transparent HTTP proxying" aktivieren, wenn dies sinnvoll ist, um den Traffic automatisch zu erfassen.

Ein häufiges Problem ist, dass interne DNS-Auflösungen oder Routen nicht korrekt über Charles oder den VPN-Tunnel funktionieren. In solchen Fällen kann es helfen, dass du in Charles unter Proxy > SSL Proxying Settings die dominierten Hostnamen und Ports einträgst, die über den VPN-Verkehr laufen sollen. So kann Charles SSL-Verbindungen entschlüsseln und mitloggen, ohne dass die Verbindung fehlschlägt.

Netzwerk- und Betriebssystem-Konfiguration

Insbesondere bei MacOS oder Windows kann es notwendig sein, die Netzwerkeinstellungen so zu konfigurieren, dass Anwendungen den lokalen Proxy verwenden. Das Betriebssystem oder die jeweilige Anwendung muss auf den Charles-Proxy als HTTP- und HTTPS-Proxy zeigen. In den Netzwerkeinstellungen des Systems oder in den Anwendungseinstellungen kannst du die Proxyadresse (normalerweise localhost bzw. 127.0.0.1) und den entsprechenden Port angeben.

Falls der VPN-Client eigene Firewallregeln setzt oder eigene Routingtabellen verwendet, musst du sicherstellen, dass die Route zum Charles-Proxy (localhost) lokal bleibt und nicht über den VPN-Tunnel versucht wird. Charles läuft auf dem lokalen Rechner und sollte jederzeit über die lokale Netzwerk-Loopback-Adresse erreichbar sein.

Testen der Konfiguration

Um sicherzustellen, dass der Traffic über Charles und durch den VPN-Tunnel läuft, kannst du entweder in Charles beobachten, ob die Anfragen auftauchen, oder mit Tools wie traceroute bzw. ping überprüfen, ob der Paketfluss dem erwarteten Pfad über den VPN-Tunnel folgt. Falls die Verbindung fehlschlägt, überprüfe die VPN-Routen und Firewall-Einstellungen sowohl am Rechner als auch im VPN-Client.

Besonderheiten bei Authentifizierung und Verschlüsselung

Wenn dein VPN-Server oder Clouddienst eine Zwei-Faktor-Authentifizierung verwendet oder Client-Zertifikate benötigt, musst du dies bei der Einrichtung des VPN beachten. Charles ist hierbei nur "Mittelsmann" und funktioniert unabhängig vom VPN-Tunnel, jedoch darf Charles keine eigenen Zertifikatskonflikte verursachen. Installiere ggf. das Charles-Root-Zertifikat in deinem System und in den Anwendungen, damit SSL Proxying funktioniert, ohne Warnmeldungen.

Zusammenfassung

Die Schlüssel zum erfolgreichen Proxying von HTTP/HTTPS-Verkehr über einen VPN-Tunnel mit Charles sind die korrekte VPN-Konfiguration (idealerweise ohne Split-Tunneling für den gewünschten Traffic), die korrekte Einstellung von Charles als Proxy auf dem lokalen Rechner, die Anpassung der Netzwerkeinstellungen deines Betriebssystems, damit Anwendungen den Proxy verwenden, und eine erfolgreiche SSL-Proxy-Konfiguration inklusive Zertifikatinstallation. Mithilfe von Tests und Beobachtung des Traffics in Charles kannst du sicherstellen, dass der Datenstrom korrekt über den VPN-Tunnel läuft und dabei von Charles aufgezeichnet wird.

0

Kommentare