sshuttle – ein VPN für Arme – funktioniert prächtig mit eigenem root-Server oder Raspberry Pi

3 Kommentare Autor: Jürgen (jdo)

Mein root-Server von Contabo ist nun ausreichend getestet, kann E-Mails verschicken und ist mehr oder weniger eingerichtet. Nächste Woche sollte ich Zeit finden, damit die Website auf den Server umziehen kann. Nun habe ich ein bisschen nachgedacht, was sich sonst noch so alles mit einem root-Server, VPS oder vServer anstellen lässt. Logisch wird auch Nextcloud darauf installiert. Aber auch als VPN könnte man den Server nutzen. Nun gibt es die komplexe Methode mit der Installation und Konfiguration von OpenVPN, oder Du nimmst ganz einfach sshuttle.

Was ist sshuttle?

Vereinfacht gesagt ist sshuttle ein Programm, das Traffic via SSH über einen anderen Rechner, in meinem Fall mein root-Server, leitet. Die Voraussetzungen für einen Einsatz sind laut Entwickler einfach.

Dabei ist sshuttle so etwas wie ein Hybrid aus VPN und Port Forwarding. Wie ein VPN verhält es sich, da jeder Port des gesamten Netzwerks weitergeleitet wird. Im Gegensatz zu einem VPN ist sshuttle aber nicht stateless, sondern trackt jede einzelne Verbindung. Wer es ganz genau wissen will, kann einen Blick in die Dokumentation werfen.

Auf dem Client oder Router muss Linux, FreeBSD oder macOS laufen. Weiterhin brauchst Du SSH-Zugriff auf ein anderes Netzwerk – root- oder Admin-Rechte sind nicht einmal notwendig. An beiden Enden muss Python (2.7 oder 3.5) verfügbar sein.

Als Gründe für den Einsatz werden angegeben:

  • Das Remote-Netzwerk stellt kein VPN zur Verfügung oder nur komische beziehungsweise komplexe VPN-Protkolle (IPsec, PPTP, …)
  • Du willst nicht für jeden einzelnen Host ein SSH Port Forwarding einrichten.
  • Dir taugt das Port Forwarding von OpenSSH nicht
  • Oder in meinem Fall: Ich will mich einfach ab und zu über einen sicheren Server verbinden, gerade wenn ich unterwegs bin und ein öffentliches WLAN nutze. Kontrolle ist besser, heißt es ja immer und ich habe einen root-Server.

Die Software installieren

Auf dem Server muss die Software übrigens nicht installiert sein, sondern nur auf dem Client. Der Aufruf übernimmt alle notwendigen Schritte.

Unter Ubuntu oder Linux Mint kann ich die Software einfach aus dem Repositories installieren. Wie das bei anderen Distributionen ist, weiß ich nicht:

sudo apt install sshuttle

Es geht aber auch via pip:

pip install sshuttle

oder mit clone:

git clone https://github.com/sshuttle/sshuttle.git
./setup.py install

Mehr steckt da auch nicht dahinter.

Verbinden wir uns via sshuttle

Die Syntax ist recht einfach. Nehmen wir an, dass ich sämtlichen Traffic inklusive DNS durch meinen Server leiten möchte. Dann sieht das so aus:

sshuttle --dns -vr ssh-server 0/0

Sollte der Befehl zu einem Abbruch führen, dann versuche:

sshuttle --dns -vr ssh-server -x ssh-server 0/0

Dabei steht ssh-server in der Regel für name@remote-server. 0/0 ist eine Abkürzung für 0.0.0.0/0. Mit dem Befehl oben wird sämtlicher Traffic nun durch meinen root-Server geleitet. Ich kann aber auch Adressen ausschließen, sollen die nicht durch den Pseudo-VPN laufen. Dafür ist der Schalter -x zuständig, der sich auch mehrfach verwenden lässt (und beim zweiten Befehl oben schließt Du den Server an sich aus).

sshuttle --dns -vr ssh-server -x IP-Adresse/24 -x Andere-IP-Adresse 0/0

Oder ich will nur bestimmten Traffic durch den Remote-Server leiten, dann gebe ich eben diese IP-Adressen an:

sshuttle -vr ssh-server IP-Adresse/24 Andere-IP-Adresse

Das sind die möglichen Optionen:

sshuttle und die Optionen

sshuttle und die Optionen

Hilfreich können an dieser Stelle die sshuttle Helpers sein. Damit kannst Du zum Beispiel Domänennamen anstelle von IP-Adressen verwenden. Das ist vor allen Dingen bei -x hilfreich oder wenn nur eine bestimmte Adresse getunnelt werden soll.

Tipp: Ist die Verbindung wirklich langsam, kannst Du den Schalter –no-latency-control testen, womit die Nutzung der Bandbreite optimiert wird. Es ist einen Versuch wert.

Auch zu Raspberry Pi im Home-Netzwerk möglich

Ist Dein Raspberry Pi über eine dynamische Adresse von außen erreichbar und OpenSSH aktiviert, dann geht natürlich auch der Weg vom entfernten Netzwerk in das eigene Home-Netz. Die Syntax bleibt gleich, ich wollte es lediglich als Anregung anmerken.

Auf dem Raspberry Pi läuft Raspbian oder Ubuntu und damit ist eine Verbindung via SSH ohne Weiteres machbar. Wenn Du also weder einen root-Server noch einen VPN Provider aber einen Raspberry Pi hast, kannst Du trotzdem in einem öffentlichen Netzwerk sicher über das Heim-Netzwerk verbinden.

Mit einem Raspberry Pi, der eigenen Internet-Verbindung wird sshuttle dann endgültig zum VPN für Arme. Aber die Lösung funktioniert großartig. Übrigens gibt es eine kostenlose Android-App, mit der Du die VPN-Lösung ebenfalls verwenden kannst.

Ist Dir das zu kompliziert?

Hast Du keinen eigenen Server oder willst Dir keinen Raspberry Pi zu Hause aufstellen, kannst Du auch ein kommerzielles VPN nutzen. NordVPN kostet zum Beispiel nur knapp über 3 Euro pro Monat und ist damit absolut erschwinglich. Der Vorteil ist, dass Dir weltweit mehr als 5000 Server zur Verfügung stellen. Außerdem ist bei allen Apps von NordVPN CyberSec integriert. Das ist ein Adblocker, der aber auch Tracker und Malware blockiert. Bei NordVPN darfst Du bis zu 6 Geräte gleichzeitig verbinden.

Ein echtes VPN hat viele Vorteile, vor allen Dingen, wenn Du anonym im Web unterwegs sein willst.

NordVPN bietet nicht nur eine tolle App für Android, sondern auch der Linux Client ist echt Klasse. Der funktioniert auch super auf einem Raspberry Pi. Dank NordLynx kannst Du unter Linux auch das relativ neue VPN-Protokoll WireGuard nutzen, das sich in Speedtests als schneller erweist.

NordVPN risikofrei testen!*

NordVPN hat wie viele andere Anbieter auch eine Geld-Zurück-Garantie von 30 Tagen. Deswegen kannst Du das VPN testen und wenn es Dir nicht gefällt, bekommst Du Dein Geld zurück.

Schnäppchen!

Du suchst ein günstiges VPN? Dauerhaft günstige Angebote. Bei manchen Anbietern bekommst Du bis zu 83 % Rabatt plus 3 Monate kostenlos.

Auf der Schnäppchen-Seite findest Du auch Deals für Spiele, E-Books und so weiter.

Nette Pi-Konstellation

Suchst Du ein VPN für den Raspberry Pi? NordVPN* bietet einen Client, der mit Raspberry Pi OS (32-Bit / 64-Bit) und Ubuntu für Raspberry Pi (64-Bit) funktioniert.




 Alle Kommentare als Feed abonnieren

3 Kommentare zu “sshuttle – ein VPN für Arme – funktioniert prächtig mit eigenem root-Server oder Raspberry Pi”

  1. lucie says:

    Schöne Idee. Ein Rootserver wäre für mich aber überdimensioniert, daher verbinde ich mich über VPN immer mit meiner Fritzbox.

  2. Max says:

    Kann man sshuttle auch auf einem Windows Client nutzen?
    Und wie sieht es aus mit einem (Android) Smartphone als Client?