Zurück zum Blog

Web-Traffic ohne VPN über einen SOCKS-Tunnel leiten

Web-Traffic ohne VPN über einen SOCKS-Tunnel leiten

Wenn es darum geht, Ihren Fußabdruck im Web zu sichern, haben Sie vielleicht schon von VPNs gehört, oder? Ein VPN fungiert als Vermittler zwischen Ihrem Computer und dem Internet. Der gesamte Datenverkehr läuft über den VPN-Server, wodurch Ihre IP-Adresse und Ihr Standort effektiv maskiert werden.

Ein VPN ist jedoch nicht die einzige Form eines Proxyservers. SOCKS (Socket Secure) ist ein ähnliches Netzwerkprotokoll, das die Kommunikation mit Servern durch eine Firewall ermöglicht, indem es den Netzwerkverkehr im Namen eines Clients weiterleitet. Im Vergleich zu VPN bietet SOCKS mehr Flexibilität und Kontrolle über die Netzwerkkonfiguration. Es ist nützlich, wenn Sie den VPN-Client nicht installieren können oder einem VPN-Anbieter nicht vertrauen.

Diese Anleitung wird zeigen, wie Sie einen SSH-SOCKS-5-Proxy-Tunnel einrichten und Ihren Webverkehr durch den Tunnel leiten.

Voraussetzungen

Zur Demonstration haben wir einen lokalen Rechner mit Ubuntu Desktop und einen entfernten Rechner mit Ubuntu Server verwendet. Sie müssen SSH konfiguriert haben, damit es reibungslos funktioniert. Da wir einen SOCKS-Proxy verwenden, benötigen wir zum Testen der Verbindung eine App, die diesen nutzen kann. Firefox ist ein perfektes Beispiel. Es ist ein moderner Webbrowser, der den SOCKS-5-Proxy-Tunnel unterstützt.

Wenn Sie Windows verwenden, nutzen Sie entweder WSL (Windows-Subsystem für Linux), um eine lokale Linux-Umgebung einzurichten, oder PuTTY, eine Open-Source-App, die verschiedene Netzwerkprotokolle wie Telnet, rlogin usw. implementieren kann.

Konfigurieren des SOCKS-Tunnels

  • Einrichten des SOCKS-Tunnels (macOS/Linux)

Auf dem lokalen Computer müssen wir einen SSH-Schlüssel konfigurieren, um eine sichere Verbindung zu gewährleisten. Der SSH-Schlüssel muss auch auf dem Remote-System registriert sein. Diese Anleitung zur Konfiguration der SSH-Schlüssel-basierten Authentifizierung zeigt den Prozess im Detail.

Der folgende SSH-Befehl baut einen SOCKS-Tunnel zum Remote-Server auf:

Lassen Sie uns den Befehl aufschlüsseln:

  • -i: Es teilt SSH mit, welcher SSH-Schlüssel für die Verbindung verwendet werden soll.

  • -D: Es teilt SSH mit, dass wir einen SOCKS-Tunnel einrichten möchten. Als Port verwenden wir den Port 1024. Dies ist kein fester Wert. Sie können jeden Port wählen zwischen 1024 und 65536.

  • -f: Der SSH-Prozess wird im Hintergrund ausgeführt (fork).

  • -C: SSH komprimiert die Daten, bevor sie an den Remote-Server gesendet werden. Dies kann sowohl den Datenverbrauch senken als auch die effektive Bandbreite erhöhen.

  • -q: Führt das Tool im Silent-Modus (stumm) aus.

  • -N: Es teilt SSH mit, dass nach dem Aufbau des Tunnels kein Befehl gesendet wird.

Nach der Ausführung können wir überprüfen, ob der Prozess ordnungsgemäß gestartet wurde. Der folgende Befehl gibt Informationen über alle laufenden SSH-Prozesse aus:

Routing grep ssh

Jetzt können Sie das Terminalfenster sicher schließen. Der SSH-Prozess läuft wie gewünscht im Hintergrund weiter.

  • Einrichten des SOCKS-Tunnels (Windows)

Für Windows-Benutzer ist die Verwendung von PuTTY eine einfachere Lösung. Zuerst müssen Sie PuTTY herunterladen:

Routing download putty

Nach der Installation starten Sie PuTTY:

Routing putty screen1

Geben Sie im linken Bereich auf der Registerkarte Session den Host Name (or IP address) Ihres Servers ein. Wählen Sie als Connection type die Option SSH. Gehen Sie als Nächstes zu Connection >> SSH >> Tunnels. Wählen Sie hier im Feld Destination die im Screenshot gezeigten Optionen aus:

Routing putty screen2

Klicken Sie anschließend auf Open. Es öffnet sich ein Terminalfenster, um eine Verbindung zum Remote-Server über SSH herzustellen. Melden Sie sich auf dem Remote-Server an:

Routing putty screen 3

Implementieren des SOCKS-Tunnels

Der Tunnel ist nun eingerichtet. Jede App, die SOCKS unterstützt, kann den Tunnel nutzen. Zur Demonstration ist Firefox ein hervorragendes Beispiel.

Öffnen Sie zuerst Firefox. Klicken Sie in der oberen rechten Ecke auf das Menüsymbol. Gehen Sie zu Settings:

ubuntu screen1

Suchen Sie als Nächstes nach proxy. Klicken Sie bei Settings unter Configure how Firefox connects to the internet:

firefox preferences

Wählen Sie danach Manual proxy configuration. Verwenden Sie für den SOCKS Host, use localhost oder 127.0.0.1. Geben Sie dann für den Port den Port ein, den wir für den SOCKS-Tunnel reserviert haben. Vergessen Sie nicht, SOCKS_v5:

firefox proxy conf

Aktivieren Sie zuletzt die Option Proxy DNS when using SOCKS_v5. Klicken Sie auf OK, um fortzufahren.

Öffnen Sie als Nächstes einen neuen Tab und versuchen Sie, auf eine beliebige Webseite zuzugreifen. Sie können beispielsweise Ihre IP-Adresse über CheckMyIP.

Proxy-Einstellungen rückgängig machen

Wenn Sie die Proxy-Verbindung zum SSH-Tunnel nicht mehr benötigen, können Sie sie in den Firefox-Proxy-Einstellungen sicher deaktivieren:

Routing firefox reverting proxy conf

Wählen Sie im Fenster System-Proxy-Einstellungen verwenden und klicken Sie auf OK.

Schließen des SOCKS-Tunnels

  • Schließen des Tunnels unter macOS/Linux

Um den Tunnel zu schließen, müssen wir den SSH-Prozess manuell beenden. Wir benötigen die PID (Prozess-ID) des SSH-Prozesses. Der folgende Befehl zeigt die PIDs aller laufenden SSH-Prozesse an:

Notieren Sie sich den SSH-Prozess, der mit dem Befehl zur Erstellung des Tunnels ausgeführt wird. Beenden Sie den Prozess:

Wenn keine Option definiert ist, sendet der kill-Befehl ein generisches SIGTERM -Signal an den Zielprozess. Mehr über die Linux-Prozessverwaltung erfahren Sie in diesem Tutorial.

  • Schließen des Tunnels unter Windows

Das Schließen des PuTTY-Fensters sollte die Tunnelverbindung beenden.

Fehlerbehebung

Hier sind einige häufige Probleme, die auftreten können, wenn Sie versuchen, SOCKS zur Weiterleitung von Datenverkehr zu verwenden.

  • Firewall

Wenn Sie aufgrund einer Firewall-Einschränkung keine Verbindung herstellen können, ist die Firewall wahrscheinlich so konfiguriert, dass sie Verbindungen zu Port 22 blockiert. Dies ist der Standardport, den SSH für Verbindungen zu Remote-Systemen verwendet. Einige Ports bleiben standardmäßig geöffnet, beispielsweise Port 80 (allgemeiner Web-Datenverkehr) und Port 443 (TLS, sicherer Web-Datenverkehr).

Wenn der SSH-Server keine Webinhalte bereitstellt, können wir einen der Standardports ( 80 oder 443 ) anstelle von Port 22 verwenden. Es wird empfohlen, Port 443 zu verwenden, da dieser standardmäßig verschlüsselten Datenverkehr erwartet. Er verschlüsselt auch den ausgehenden Datenverkehr. Um diese Änderung vorzunehmen, müssen wir die SSH-Konfigurationsdatei ändern. Öffnen Sie die Datei in einem Texteditor:

SSH kann für seine Zwecke mehrere Ports verwenden. Scrollen Sie in der Konfigurationsdatei nach unten und suchen Sie den Port-Bereich:

Routing sshd config

Sobald die Änderungen vorgenommen wurden, speichern Sie die Datei und schließen Sie den Editor. Starten Sie den SSH-Dienst neu, um die Änderung anzuwenden:

Um zu überprüfen, ob der neue Port funktioniert, versuchen Sie, eine Verbindung zum Remote-Server über den neuen Port herzustellen:

Wenn die Verbindung erfolgreich war, können wir Port 443 sicher für das SSH-Tunneling verwenden. Hier ist der überarbeitete Befehl zum Einrichten des SOCKS-Tunnels:

Hier weist das Flag -p SSH an, Port 443.

Fazit

In der heutigen Zeit gehören Privatsphäre und Sicherheit zu den größten Anliegen. Es gibt viele Möglichkeiten, sicher im Internet zu surfen, wenn Sie sich in einem unsicheren Netzwerk befinden. In den meisten Fällen bietet die Verwendung eines VPNs ausreichende Sicherheit für Ihren Netzwerkverkehr. Andererseits bietet Ihnen ein SOCKS-Tunnel die erforderliche Sicherheit, wenn Sie keinem VPN vertrauen können oder wollen. Ein SOCKS-Tunnel gibt Ihnen zudem die volle Kontrolle über die Einrichtung.

Viel Spaß beim Computing!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.