ssh als SOCKS-Proxy unter OS X nutzen

TUX-Avatar-350In dieser Anleitung möchte ich vorstellen, wie sich ssh als SOCKS-Proxy unter OS X nutzen lässt. Kurz vorweg, diese Anleitung lässt sich selbstverständlich auch auf andere Systeme wie z.B. BSD oder Linux übertragen, auf welchen eine Installation des ssh-Clients vorliegt.

Voraussetzung hierzu ist das Vorhandensein eines Root- oder V-Servers mit Zugriff auf einen installierten und konfigurierten SSH-Server, zu dem man eine Verbindung aufbauen kann.

Ziel ist, mittels SSH einen Tunnel einzurichten, der sich wie ein SOCKS-Proxy verhält, welcher zwischen dem anfragendem Webbrowser und dem Webserver steht. Anfragen werden nun über den verbundenen Root- bzw. V-Server geleitet. Der angefragte Webserver „sieht“ hier nur die IP-Adresse des Root- bzw. V-Servers, nicht die tatsächliche IP-Adresse des Clienten. Die tatsächliche IP-Adresse bleibt somit dem Kommunikationspartner verborgen.

Warum nutze ich diese Möglichkeit?

Kurz vorweg: Nicht aus Anonymisierungsgründen 😉 – da der verwendete Root-Server ohnehin von mir betrieben wird. Mir ging es um einen anderen Fall: Die gängige Praxis der Bandbreitenbeschränkung über ganze IP-Adressbereiche, vorzugsweise für private IP-Adressen. utilities-system-monitorIch habe Verständnis für Load-Balancing in einem vernünftigen (!) Rahmen, aber keinerlei Verständnis dafür, das Software-Updates in Größenordnungen von mehreren hundert Megabyte mit z.B. 60 KB/s durch die Leitung tröpfeln und ein Download somit mehrere Stunden dauern soll. Ein Login auf dem Root mit anschließendem manuellem Download via curl oder wget ergab dann oft Gewissheit: In diesem IP-Adressbereich sind Datenraten mit voller Bandbreite kein Thema.

Anfänglich fiel mir das nur bei wenigen Diensten auf, doch scheint es mittlerweile in Mode gekommen zu sein – und es nervt, ich bezeichne das als technischen Rückschritt und Gängelei der Endbenutzer. Ich erwarte nicht, das Serverbetreiber für tausende Nutzer zugleich pro Download-Slot 100 MB/s anbieten – aber Datenraten in Bereichen von ISDN und weniger sind ein definitives NoGo und eine Zumutung in der heutigen Zeit.

quasselWie schon beschrieben, umgehe ich diese Beschränkungen mittles manuellen Downloads via Server-Konsole, dies ist allerdings recht unkomfortabel. Die Alternative ist die Einrichtung eines „richtigen“ Proxy-Servers wie z.B. Squid. Diese ist allerdings nicht ganz trivial und entsprechend gegen missbräuchliche Nutzung abzusichern – was man als Serverbetreiber durchaus ernst nehmen sollte.

Mir ging es allerdings nicht um eine dauerhafte Proxy-Nutzung, weshalb ich mich für die Realisierung mittels eines ssh-Tunnels entschlossen habe.

Einrichtung

1) Start des ssh-Clients

Im OS X – Terminal hierzu folgenden Befehl absetzen:

ssh -D 8080 -C -N user@server.tld

user@server.tld ist natürlich durch eigene Angaben zu ersetzen. Das Terminal-Fenster bitte geöffnet lassen! Die Verbindung kann mittels der Tastenkombination Strg + C beendet werden.

2) Konfiguration des SOCKS-Proxys unter OS X

Hierzu wird im Bereich Systemeinstellung/Netzwerk eine separate Umgebung eingrichtet, um bequem zwischen normalem Netzwerkprofil und SSH-Lösung umschalten zu können.

Im Apfel-Menü den Punkt „Systemeinstellungen“ öffnen und das Icon „Netzwerk“ anklicken:

Bildschirmfoto 2016-04-10 um 17.09.51

„Umgebungen bearbeiten“ selektieren. Nun das Zahnrad-Symbol wählen und „Umgebung duplizieren“ wählen:

Bildschirmfoto 2016-04-10 um 17.11.04

Bildschirmfoto 2016-04-10 um 17.11.58

Einen Namen für die neue Umgebung wählen, z.B. SSH-Proxy und mit „Fertig“ abschließen:

Bildschirmfoto 2016-04-10 um 17.14.56

Anschließend auf „Weitere Optionen“ klicken und den Reiter „Proxies“ wählen:

Bildschirmfoto 2016-04-10 um 17.17.59

Nun den Eintrag „SOCKS-Proxy“ auswählen und als Server localhost und Port 8080 eintragen:

Bildschirmfoto 2016-04-10 um 17.24.42

Mit „Ok“ abschließen und mit „Anwenden“ aktivieren.

Fertig! Ob alles funktioniert, lässt sich z.B. in Safari / Firefox / Chrome über https://www.whatismyip.com testen. Hier sollte nun die IP-Adresse des Servers aufgelistet werden.

3) Wechsel zur regulären Konfiguration

Um wieder mit den normalen Einstellungen ohne SSH-Proxy zu surfen, einfach im Bereich Systemeinstellungen / Netzwerk auf die Umgebung „Automatisch“ schalten und mit „Anwenden“ bestätigen. Der ssh-Tunnel im Terminal kann nun via Strg + C beendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.