Ich habe ab und an das Problem, dass ich von unterwegs auf mein Heimnetz zugreifen möchte, die Firewall des öffentlichen WLAN Hotspots (Cafe, Uni, ICE, etc.) aber die gängigen VPN-Ports blockiert. Abhilfe schafft hier das kleine Python-Programm sshuttle, welches – einmal auf dem Client Rechner installiert – ein VPN über eine SSH Verbindung aufbaut.
Einzige Bedingung: Python auf dem Remote Server und Python plus Root-Access auf dem lokalen Rechner.
Installation unter Ubuntu:
apt-get install sshuttle
VPN-Tunnel aufbauen (inkl. DNS forward):
sudo sshuttle --dns --remote username@server.example.com 0/0
Tunnel nur für bestimmte Subnetze:
sudo sshuttle --remote username@server.example.com 192.168.0.1/24 10.10.0.0/16
Auch spannend sind die Optionen --auto-hosts
und --auto-nets
, bei denen sshuttle shuttle die Hosts der anderen Seite automatisch für die Dauer der Session in das hosts file aufnimmt oder die am anderen Ende verfügbaren Netze automatisch ermittelt. Um das Anlegen der notwendigen Routen kümmert sich das Programm übrigens in allen hier genannten Fällen selbst!
sshuttle mag zwar kein ausgewachsenes VPN ersetzen, ist für mich aber mittlerweile nicht mehr aus meinem Alltag wegzudenken.
Einfach und genial!
https://github.com/apenwarr/sshuttle
https://sshuttle.readthedocs.io
Auf dem Mac geht es via