Aufmacher_Notebook_Router_Socken_hgesser.jpg

© Hans-Georg Eßer

Von den Socken

Mit SSH einen SOCKS-Proxy einrichten

09.10.2013
Wer im Büro oder an der Hochschule Zugriff auf besondere Web-Angebote hat, kann diese auch von zu Hause aus nutzen, wenn ein Büro-/Uni-Rechner via SSH erreichbar ist. Wir zeigen, wie Sie SSH, Firefox und weitere Programme passend konfigurieren.

Viele Unternehmen, Hochschulen und andere Einrichtungen bieten ihren Angestellten oder Studenten spezielle Informationsangebote im Internet, an Universitäten ist es z. B. üblich, Lizenzen für Bücher und Fachartikel zu erwerben, über die Nutzer Zugriff auf diese Texte erhalten, ohne dass der jeweilige Verlag sie separat zur Kasse bittet. Oft gibt es außerdem interne Wikis, Blogs oder sonstige Services, die interne Abläufe unterstützen. Wenn Sie auch ein solches Angebot nutzen können, funktioniert das alles prima, solange Sie im Büro oder Hörsaal sitzen – wollen Sie von zu Hause aus dieselben Dienste nutzen, sehen Sie sich ausgesperrt: Die Webserver erkennen Sie nicht als zugelassenen Nutzer oder sind erst gar nicht erreichbar, weil Sie nicht aus dem firmen- oder hochschuleigenen Netz zugreifen.

Standardlösung VPN

Das Problem lässt sich oft über die Einrichtung eines Virtual Private Networks (VPN) lösen, wie unser Guru-Training in dieser Ausgabe es beschreibt – die Einrichtung ist aber aufwendig und setzt meist das Hantieren mit Zertifikaten voraus, weil das Rechenzentrum des Arbeitgebers oder der Uni es so erwartet. Wenn Sie die Möglichkeit haben, sich über die Secure Shell (SSH) auf einem Rechner im internen Netz einzuloggen, können Sie sich den Aufwand sparen und stattdessen ein praktisches aber oft übersehenes Feature der Secure Shell nutzen: Eine einzige Option des Kommandozeilentools reicht aus, um einen so genannten SOCKS-Proxy einzurichten, den Ihr Webbrowser oder das Mailprogramm nutzen können – dann laufen alle Zugriffe über den Rechner, an dem Sie sich per SSH angemeldet haben. Rufen Sie dann z. B. über Firefox eine Webseite auf, sieht der Betreiber des Webservers nicht Ihre heimische IP-Adresse, sondern die aus der Firma/Uni als Absender der Anfrage, und prompt ist der Zugriff auf die Daten wieder erlaubt. Der Name SOCKS steht für "SocketS" bzw. "Socket Secure", ähnlich wie HTTPS die sichere Variante von HTTP ("HTTP Secure") ist.

Auf diese Weise Zugriffsbeschränkungen zu umgehen, ist übrigens kein unerlaubter Zugriff – wenn der SSH-Login auf dem Rechner gestattet ist, könnten Sie ja auch auf dem Weg einen Browser starten, der direkt auf dem Zielrechner läuft.

Einrichtung

Für SSH braucht es nur eine kleine Kommandozeilenoption: Sie heißt -D, steht für "dynamisch" und erwartet noch die Angabe einer relativ frei wählbaren Portnummer. Probieren Sie es z. B. mit der 1234 oder 12345 und merken Sie sich die Zahl; im Rest des Artikels gehen wir davon aus, dass Sie die 1234 gewählt haben.

  1. Öffnen Sie mit [Alt]+[F2] und Eingabe von konsole in das Schnellstartfenster ein Terminalfenster und geben Sie darin den Befehl

    ssh -D 1234 username@rechnername

    ein. Dabei ersetzen Sie username durch Ihren Benutzernamen auf dem Zielrechner und rechnername durch den Namen oder die IP-Adresse der Maschine. Wenn Sie zu Hause denselben Benutzernamen wie auf dem Firmen- oder Hochschulrechner verwenden, können Sie den Teil username@ auch weg lassen, also nur den Rechnernamen angeben.

  2. Meist müssen Sie anschließend das Passwort für den Zielrechner eingeben. Das können Sie umgehen, indem Sie ein SSH-Schlüsselpaar erstellen und dessen öffentliche Komponente auf dem Zielrechner hinterlegen – Details dazu verrät der Kasten SSH-Login mit Schlüssel.
  3. Sobald die SSH-Verbindung steht, läuft auch der SOCKS-Proxy. Im letzten Schritt aktivieren Sie die SOCKS-Nutzung im Browser, Mailprogramm oder einer sonstigen Anwendung. Wie das geht, erklären wir in den folgenden Abschnitten.

SSH-Login mit Schlüssel

Wollen Sie sich nicht mit Ihrem Passwort, sondern über einen SSH-Schlüssel anmelden, müssen Sie diesen zunächst lokal erzeugen und dann auf den Server übertragen. Sie öffnen dazu über [Alt]+[F2] und Eingabe von konsole ein Terminalfenster, in dem Sie die folgenden zwei Befehle ausführen:

ssh-keygen -t rsa

Das erste Kommando fragt Sie nach einer Schlüsseldatei (hier übernehmen Sie die Vorgabe id_rsa) und zweimal nach einer Passphrase (die Sie leer lassen, also nur [Eingabe] drücken). Dann folgt der Befehl

ssh-copy-id username@rechnername

in dem Sie username und rechnername durch den Benutzernamen auf dem anderen Rechner und den Rechnernamen (oder die IP-Adresse) ersetzen. Das Kommando erfragt (zum letzten Mal) das Passwort für die Gegenseite und kopiert dann den Schlüssel dorthin. Ab dem nächsten Login-Versuch erkennt der andere Rechner Sie automatisch und lässt Sie ohne Passwortabfrage rein.

Firefox und Thunderbird

In beiden Programmen aus dem Mozilla-Projekt ist der Weg zur Proxy-Nutzung fast identisch, darum fassen wir die Vorgehensweise zusammen. Rufen Sie zunächst den Menüpunkt Bearbeiten / Einstellungen auf. Wechseln Sie im Einstellungsfenster oben zum Bereich Erweitert und dann in der Reiterliste zu Netzwerk (Firefox) bzw. Netzwerk und Speicherplatz (Thunderbird). Klicken Sie unter der Überschrift Verbindung rechts auf Einstellungen. Es öffnet sich ein neues Fenster (Abbildung 1), in dem Sie die Option Manuelle Proxy-Konfiguration aktivieren und dann in das Feld SOCKS-Host den Rechnernamen localhost und daneben unter Port die Portnummer 1234 eintragen. Lassen Sie alle anderen Proxy-Einträge (HTTP-Proxy und SSL-Proxy, bei Firefox auch FTP-Proxy) leer.

Abbildung 1: Die Proxy-Konfiguration in Firefox und Thunderbird läuft fast exakt gleich ab, hier sehen Sie die nötigen Einstellungen im Mailprogramm.

Sobald Sie nun eine Webseite aufrufen oder Mails abholen bzw. verschicken, laufen alle Datenpakete zunächst über die verschlüsselte SSH-Verbindung und von dort weiter zum jeweiligen Web- oder Mail-Server. Für den Zugriff auf beschränkt zugängliche Dokumente heißt das: Es kann los gehen (Abbildung 2).

Abbildung 2: Vorher/nachher: Reguläre Zugriffe auf den Volltext eines Buchs blockt der Springer-Server ab (links). Wer aber aus dem Hochschulnetz zugreift – z. B. über den SOCKS-Proxy –, der darf den Download starten.

Programme ohne SOCKS-Support

Viele Programme unterstützen nicht die Einrichtung eines SOCKS-Proxys. Das ist aber in den meisten Fällen kein Problem, denn es gibt ein Hilfsprogramm namens tsocks, das alle Netzwerkzugriffe zwangsweise auf den Proxy "umbiegt". Es gehört auf keiner der EasyLinux-Distributionen zur Standardausstattung, weswegen Sie es zunächst nachinstallieren müssen:

  • Ubuntu-/Kubuntu-Anwender installieren das Paket tsocks nach (wahlweise über das Kommando sudo apt-get install tsocks oder über die grafische Paketverwaltung),
  • OpenSuse-Anwender müssen zunächst ein Repository einrichten (siehe Kasten tsocks für OpenSuse) und darüber ebenfalls das Paket tsocks installieren.

tsocks für OpenSuse

  1. Starten Sie über Rechner / Software installieren/entfernen die Softwareverwaltung von OpenSuse. Die Initialisierung des Programms benötigt eventuell etwas länger, wenn das Programm viele Repositories zunächst auf den aktuellen Stand bringen muss.
  2. Rufen Sie den Menüpunkt Konfiguration / Repositories auf und klicken Sie im sich öffnenden Fenster links unten auf Hinzufügen. Im folgenden Dialog übernehmen Sie die Vorgabe URL angeben und klicken auf Weiter.
  3. Tragen Sie unter Repository-Name die Bezeichnung tsocks und unter URL die Adresse http://download.opensuse.org/repositories/openSUSE:/11.4:/Contrib/standard/ ein; klicken Sie dann erneut auf Weiter.
  4. Es erscheint wieder die Liste der konfigurierten Repos, die nun ganz unten einen neuen Eintrag tsocks enthält. Bestätigen Sie die neuen Einstellungen mit OK.
  5. Die Softwareverwaltung fügt nun die Paketinformationen des neuen Repositories hinzu und warnt dabei, dass Sie eine nicht vertrauenswürdige Softwarequelle hinzufügen wollen, weil es sich nicht um ein offizielles OpenSuse-Repository handelt. Klicken Sie auf Vertrauen.
  6. Zurück im Hauptfenster der Softwareverwaltung tragen Sie links oben in das Suchfeld den Begriff tsocks ein, klicken auf Suchen und wählen dann in der Trefferliste den Eintrag tsocks (nicht torsocks!) durch einen Klick in das leere Kästchen vor dem Paketnamen aus (Abbildung 3).

    Abbildung 3: OpenSuse-Anwender müssen zunächst ein Repository hinzufügen, bevor sie "tsocks" nachinstallieren können.
  7. Klicken Sie zum Abschluss rechts unten auf Akzeptieren, dann wird das Programmpaket installiert.

Das für OpenSuse verwendete Repository ist schon etwas älter und eigentlich für die OpenSuse-Version 11.4 bestimmt – das dort enthaltene tsocks-Paket lief im Test aber problemlos unter OpenSuse 12.3, und ein alternatives Repository haben wir nicht gefunden. (Es gibt für Version 12.3 eine Quelle vom OpenSuse-Entwickler hipeng, das dort enthaltene tsocks-Paket funktionierte in unseren Tests aber nicht.)

Zur Konfiguration müssen Sie die Datei /etc/tsocks.conf bearbeiten. Da diese nach Abschluss der Einrichtung nur noch die beiden Zeilen

server = 127.0.0.1
server_port = 1234

enthalten soll, ist es am einfachsten, die bereits bestehende Datei umzubenennen und eine neue Datei zu erzeugen; in der Shell geht das z. B. mit den folgenden Befehlen:

sudo su
cd /etc
mv tsocks.conf tsocks.conf.old
echo "server = 127.0.0.1" > tsocks.conf
echo "server_port = 1234" >> tsocks.conf

(Der letzte Befehl enthält ein doppeltes Größerzeichen.) 127.0.0.1 ist immer die IP-Adresse des lokalen PCs, der zugehörige Rechnername ist localhost.

Programme starten Sie nun von der Konsole aus über Kommandos der Form tsocks progname. Abbildung 4 zeigt den Textmodus-Webbrowser w3m – einmal mit tsocks und einmal ohne gestartet.

Abbildung 4: Die Webseite "meineip.de" verrät die IP-Adresse – links wurde die Seite über "tsocks w3m" aufgerufen, rechts über "w3m" ohne den SOCKS-Server. Der als Proxy verwendete Hochschulrechner (links) nutzt eine IPv6-Adresse.

Keine Verbindung?

Alle Programme, die Sie auf die Verwendung des lokalen SOCKS-Proxys umgestellt haben, funktionieren nun nur noch, wenn auch der SSH-basierte Proxy aktiv ist – ansonsten erhalten Sie bei allen Versuchen, auf das Internet zuzugreifen, die Fehlermeldung, dass kein Verbindungsaufbau möglich ist. Dieser Fehler tritt auch immer dann auf, wenn Ihr Router nach der Zwangstrennung eine neue IP-Adresse erhalten hat, denn die SSH-Verbindung überlebt den Wechsel der IP-Adresse nicht. Das Programm ssh bemerkt aber meist nicht sofort, dass die Verbindung abgebrochen ist, darum müssen Sie nachhelfen.

Läuft ssh noch, ist das Terminalfenster blockiert. Öffnen Sie dann ein zweites Terminalfenster und geben Sie darin das Kommando

killall ssh

ein – das beendet alle ssh-Prozesse. (Alternativ können Sie auch mit [Alt]+[F2] ein Schnellstartfenster öffnen und darin das Kommando eingeben.) Jetzt können Sie in diesem (oder in dem anderen Terminalfenster) erneut mit ssh -D 1234 user@rechner die Verbindung zum Zielrechner aufbauen und dabei den SOCKS-Proxy aktivieren.

Wollen Sie zu den ursprünglichen Einstellungen zurückkehren und den SOCKS-Proxy gar nicht mehr verwenden, gehen Sie genauso wie bei der Einrichtung vor, nur wählen Sie diesmal in den Netzwerk- oder Verbindungseinstellungen der Programme aus, dass diese gänzlich ohne Proxy-Nutzung arbeiten sollen.

Mehr Komfort mit Plug-ins

Für Firefox und Thunderbird gibt es auch Plug-ins, die in der rechten unteren Fensterecke ein neues Icon platzieren, über das Sie schnell per Mausklick den Proxy ein- und ausschalten können. Für Firefox und Thunderbird empfiehlt sich z. B. Toggle Proxy [1,2], mit dem Sie wahlweise via Icon-Klick oder über eine Tastenkombination die Proxy-Einstellungen ändern können (Abbildung 5). Darüber hinaus gibt es komplexere Plug-ins wie Foxy Proxy [3], mit denen Sie z. B. festlegen können, für welche Webseiten Firefox einen Proxy verwenden soll: Tragen Sie da alle Seiten ein, die Sie über den Firmen- oder Hochschulzugang aufrufen wollen, können Sie automatisch für alle übrigen Webseiten über Ihren normalen Zugang surfen und damit etwas schneller im Netz unterwegs sein (Abbildung 6). (hge)

Abbildung 5: Wenn Sie das Add-on Toggle Proxy in Firefox oder Thunderbird installieren, können Sie per Mausklick (rechts unten) oder mit Alt+X die Proxy-Nutzung ein- und ausschalten.
Abbildung 6: Im Firefox-Plug-in Foxy Proxy können Sie mehrere Proxys konfigurieren und dabei festlegen, welche Webseiten der Browser über welchen Proxy besucht.

WLAN-Hotspots

Im Artikel haben wir beschrieben, wie Sie Einschränkungen des heimischen Rechners umgehen, indem Sie via SOCKS-Proxy alle Web-Anfragen über einen Rechner in der Firma oder Hochschule absenden – doch manchmal gibt es auch gute Gründe, den umgekehrten Weg zu gehen: Das ist z. B. dann der Fall, wenn Sie einen öffentlichen WLAN-Hotspot nutzen, der nur eine unverschlüsselte WLAN-Verbindung anbietet. Solche WLAN-Hotspots sind etwa in vielen Hotels üblich: Sie können sich zunächst an einem ungeschützten WLAN anmelden, werden aber beim ersten Aufruf einer Webseite automatisch zu einer Anmeldeseite weitergeleitet, die Ihnen den Zugang für 24 Stunden freischaltet. Danach können Sie regulär surfen. Das Problem ist, dass die Verbindungen im WLAN weiterhin unverschlüsselt sind – und andere Hotelgäste können dann eventuell Ihren Datenverkehr mitbeobachten.

Das Problem umgehen Sie, indem Sie (nach der obligatorischen Anmeldung auf der Hotspot-Begrüßungsseite) eine SSH-Verbindung zu Ihrem heimischen Linux-PC aufbauen (was eine Weiterleitung des SSH-Ports am DSL-/Kabel-Router voraussetzt) und dazu wieder mit der SSH-Option -D einen SOCKS-Proxy starten. Aktivieren Sie danach im Browser oder Mailprogramm, wie im Artikel beschrieben, die Verwendung dieses Proxys, laufen ab sofort alle Webzugriffe und Mail-Transfers verschlüsselt (dank SSH) zunächst zu Ihrem heimischen PC. Die anderen Hotspot-Nutzer schließen Sie damit effektiv aus: Sie können nur noch die verschlüsselte Verbindung mit Ihrem Heim-PC beobachten – sehen also nichts.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare