Ein Blog über Code, Hardware und Co

Technik und Hardware

Lubuntu als VPN-Client mit Port Forwarding

Ich benötige für das eine oder andere Projekt, wie z.B. einen Webserver, einen Mailserver oder auch einige Storage-Nodes an meinem Anschluss mehrere IPv4 Adressen mit jeweils einem eigenen /24 Netz.
Eine Lösung (die man auch für DSLite und LTE-Anschlüsse nutzen kann), ist das Nutzen eines VPN-Tunnels.

Ich zeige dir hier, wie du in wenigen Schritten eine Lubuntu VM (z.B. auf deinem Synology NAS) aufsetzen und als VPN-Client einrichten kannst, der dann die Verbindung an dein Netzwerk weiterleitet.

Wieso Lubuntu?

Lubuntu ist eine Linux-Distribution, die Ubuntu sehr ähnelt, sich aber auf die wichtigsten Dienste beschränkt und auf ressourcenfressende Grafikeffekte verzichtet. Daher arbeitet Lubuntu sehr effizient und benötigt wenige Ressourcen.

Ich nutze Ubuntu in einer VM mit einem CPU-Core, 1GB RAM und 20GB Festplattenspeicher. Ich nutze zudem IMMER die LTS-Versionen, da hier eine lange Unterstützung und Versorgung mit Sicherheitspatches gewährleistet ist.

Installation von Lubuntu auf einem Synology NAS

  • Lubuntu-Image herunterladen
  • Virtuelle Maschine im VMM einrichten (Es reicht 1 Core, 1GB Ram, 20GB HDD)
  • Lubuntu installieren


Achtung: Unbedingt die Energieeinstellungen und vor allem den Screensaver anpassen (ausschalten), sonst raubt dieser dem Synology NAS alle Leistung ;).

Installation der benötigten OpenVPN-Pakete – Oder: Einen VPN Client unter Lubuntu installieren

Ich nutze für den Aufbau eines Tunnels immer OpenVPN. OpenVPN ist weit verbreitet und wird von fast allen Providern unterstützt. Zudem ist es vergleichsweise sicher und bietet eine Vielzahl an Konfigurationsmöglichkeiten. Außerdem handelt es sich bei OpenVPN um Opensource-Sorftware.

Bild 1: Über das Lubuntu-Startmenü das QTerminal öffnen.

OpenVPN selbst installieren

Mit folgendem Kommando auf der Konsole (QTerminal) installieren wir OpenVPN:

sudo apt-get install openvpn

Ein kleines GUI zur Verwaltung/Einstellung: Einen grafischen openVPN-Client installieren

Natürlich kann man nun relativ einfach über die Konsole einen VPN-Tunnel konfigurieren und starten. Aber es gibt leichtgewichtige GUIs, die uns den einen oder anderen Befehl abnehmen und somit verhindern, dass ich a) das eine oder andere Kommando mit der Zeit vergesse und b) den einen oder anderen Leser her vielleicht überfordere.

Daher installieren wir mit folgendem Befehl ein GUI:

sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome

Zugangsdaten herunterladen/besorgen

Als nächstes benötigen wir die Zugangsdaten zu dem bestehenden VPN-Dienst.
Ich nutze in meinem Fall feste-ip.net.

VPN-Verbindung einrichten

Um die VPN-Verbindung einzurichten, rufen wir nun das Startmenü auf und wählen “Einstellungen” -> “Advanced Network Configuration”.

Es öffnet nun eine Auflistung mit den Netzwerkverbindungen des Computers (siehe Bild 2).

Bild 2: Verwaltung der Netzwerkverbindungen von Lubuntu.

Es öffnet nun eine Auflistung mit den Netzwerkverbindungen des Computers (siehe Bild 2). Wir klicken auf das “+”, um eine neue Verbindung zu erstellen.

Dort wählen wir “Import saved VPN configuration” (Siehe Bild 3) und klicken auf “Create”.

Bild 3: Auswahl des Typs der neuen Netzwerkverbindung.

Wir müssen nun eine “.ovpn”-Konfigurationsdatei auswählen. Diese erhalten wir in der Regel von dem jeweiligen VPN-Provider.

Bild 4: Auswahl der ovpn-Konfigurationsdatei.

Anschließend füllen wir noch das Passwort aus und klicken auf “save”:

Bild 5: Konfiguration und Zugangsdaten.

Wir sehen nun: Die neue VPN-Verbindung ist eingerichtet (Bild 6).

Bild 6: Die neue VPN-Verbindung ist zu sehen.

Jetzt können wir über die Taskleiste mit eine Klick auf die Netzwerkverbindung(en) den Verbindungsaufbau starten. Nach kurzer Zeit erhalten wir die Bestätigung:

Bild 7: Erfolgreicher VPN-Verbindungsaufbau.

Eine kurze Überprüfung, ob der Tunnel auch funktioniert können wir anstellen, indem wir einmal den Browser öffnen und z.B. über wieistmeineip.de überprüfen, mit welcher IP man unterwegs ist.

Tipp: VPN automatisch verbinden

Für unseren Anwendungszweck ist es nun natürlich sinnvoll, wenn sich die VM direkt nach jedem Start mit dem VPN verbindet.
Zum Glück ist das ganz problemlos über eine simple Einstellung möglich.

Die Einstellung findet sich im Verbindungsmanager, aber nicht bei der VPN-Verbindung, sondern bei der Kabelverbindung. Einfach die Verbindung anwählen, auf das Zahnrad für “Einstellungen” klicken und dann in den “General”-Tab wechseln. Dort “Automatically connect to VPN” anhaken und unsere soeben eingerichtete VPN-Verbindung auswählen. Fertig, nach jedem Neustart verbindet sich die VM nun automatisch mit dem VPN.

Bild 8: Automatisch nach dem Start mit dem VPN verbinden.

Docker installieren und TCP-Proxy installieren

Halt, was? Wieso Docker?
Docker möchte ich nutzen, um den Traffic der VPN-Verbindung, die wir bereits eingerichtet haben, weiterzuleiten an den Host, der die eigentlichen Dienste bereitstellt und der die statische IP nutzen soll.
Dazu nutze ich Docker und ein Image, das einen kleinen TCP-Proxy bereitstellt.

Hier habe ich beschrieben, wie du Docker auf Lubuntu/Ubuntu installieren und verwenden kannst.

Nachdem nun Docker installiert ist, müssen wir den TCP-Proxy als Image vom Docker-Hub herunterladen:

sudo docker pull hpello/tcp-proxy

TCP-Proxy starten

Anmerkung: Sollten deine Dienste UDP nutzen, so ist diese Lösung nicht geeignet, da der TCP-Proxy, wie der Name schon sagt, nur TCP-Pakete weiterleiten kann.

Die Nutzung des Proxy ist einfach, mit folgendem Befehl können wir ihn starten:

sudo docker run -it --rm -p 1234:8080 hpello/tcp-proxy my.new.host 8080

Auch hier ist es natürlich sinnvoll, den Container nach jedem Systemstart neu zu starten:

sudo docker run -it --restart=always -p 1234:8080 hpello/tcp-proxy my.new.host 8080

In der Praxis sähe das dann z.B. so aus:

sudo docker run -it --rm -p 28989:28989 hpello/tcp-proxy 192.168.172.77 28989

Fertig!

Schreibe eine Antwort