Blog - HardwareSoftwareNetzwerkTechnikInnovationenHowTos

Unifi Dream Machine - Site to site VPN mit OpenVPN - die komplette Anleitung

Unifi Dream Machine - Site to site VPN mit OpenVPN - die komplette Anleitung

Wer ein Site-to-site VPN mit Unifi Hardware erstellen möchte benötigt an jedem Standort eine statische IP Adresse auf dem WAN Port. Zumindest bei der Variante mit IPSec. Diese bekommt man in der Regel von seinem Provider und ist oft aber nicht zwingend mit einer monatlichen Gebühr versehen. 

Für alle die keine Möglichkeit haben eine statische IP Adresse für den WAN Port zu bekommen, oder die Kosten scheuen bleibt noch eine Lösung: OpenVPN mit Dynamischen DNS.

Hierfür sind zwei weitere Schritte zu unternehmen um ans Ziel zu kommen. Sind diese allerdings gemeistert ist die Konfiguration ähnlich einfach wie bei der manual IPSec Variante.

Zum einen braucht man einen Hostname eines dynamischen DNS Service. Zum anderen den Preshared Key für die OpenVPN Verbindung. Die gute Nachricht ist, dass beides kostenlos zu bekommen ist.

Kurze Erläuterung zu den Begriffen:

Hostname
Der Hostname ist ein eindeutiger Bezeichner für ein Gerät oder einen Server, der über dynamisches DNS regelmäßig und einfach aktualisiert werden kann, um einen Domänennamen für eine sich ändernde IP-Adresse beizubehalten.

Dynamisches DNS
Dynamisches DNS ist ein System, das DNS-Einträge automatisch aktualisiert, um einen Domänennamen mit einer sich ändernden IP-Adresse zu verknüpfen, wodurch der Fernzugriff auf Geräte oder Server mit einem konstanten Domänennamen ermöglicht wird.

Preshared Key
Ein Preshared Key ist ein gemeinsam genutzter Geheimcode, der zur Authentifizierung in VPN-Verbindungen verwendet wird, um eine sichere Kommunikation zwischen zwei Geräten oder Netzwerken zu gewährleisten.

 

Den Hostname kann man bei einem Service wie z.B. DynDNS (dyndns.org) erstellen. Wie man die Dream Machine konfiguriert, dass sie die aktuelle WAN IP Adresse an den Dienst sendet lesen Sie hier.

Den Preshared Key für das OpenVPN kann man sich nicht wie gewöhnlich bei Passwörtern ausdenken, er muss generiert werden.
Hier erkläre ich den Weg des geringsten Widerstands um an diesen Link zu kommen:

Wir benötigen als Werkzeug ein Terminal und einen Editor.
Beim Mac empfehle ich das MacOS eigene Terminal und z.B. BBEdit als Editor.
Unter Windows könnte man Putty und Notepad++ verwenden.

 

Dream Machine für SSH Zugriff vorbereiten

 1. Login in die Dreammachine

Öffne Deinen Browser, gib die IP-Adresse der Dreammachine ein und akzeptiere die eventuelle Gefahr, die nicht vom Zertifikat der Konsole ausgeht. ;)
Danach authentifizieren wir uns mit Benutzername und Passwort um tätig zu werden.



Starten der Network Applikation
Ubiquiti stattet die DMs mit immer mehr Produktlinien und Applikationen aus. Daher öffnen wir nun die Netzwerk-Applikation.



Settings
Dann klicken wir im linken Symbol-Menü auf das Zahnrad - die Settings.



System
Es öffnet sich daneben ein Untermenü. Hier klicken wir auf den Punkt System.



Erweiterte Einstellungen
Mit einem Klick auf Advanced öffnen wir die erweiterten Einstellungen um an die optionen bzgl. SSH zu kommen.



SSH aktivieren
Scrollen wir ganz nach unten kommt der Punkt 'Device Authentication'. Hier setzen wir das richtige Häckchen und vergeben einen Benutzernamen und ein sicheres Passwort. Damit haben wir das Passwort für den SSH Zugriff auf die Geräte definiert und können eine Verbindung aufbauen.

 

SSH auf Dream Machine

 

Terminal öffnen

 

mit Windows & Putty

Windows hat keinen eingebauten SSH Client, den man in der Kommandozeile starten könnte. Daher bedienen wir uns einem Programm mit viel Tradition: Putty - dem Allrounder für Windows. (Direktdownload für x64 - hier, Website des Herstellers - hier.)

 

mit MacOS und der Konsole

Der Mac bringt ein solches Terminal als damalig Debian-Linux basierendes Betriebssystem gleich mit. Hier genügt es mit klick auf die Lupe oben rechts das Suchfenster zu öffnen und den Begriff "Terminal" einzugeben.

 

Jetzt wo wir uns das Werkzeug zurechtgelegt haben, um unter die Haube der Dream Machine zu sehen, können wir loslegen und uns einloggen:

 

 

Login Beispiele

 

Login mit Windows und Putty

  • Putty öffnen
  • IP-Adresse der Dream Machine bei Host Name eintragen eintragen
  • Connection type auf 'SSH' stellen
  • Open klicken

 

Login mit dem Mac

Mac Terminal Login Unifi Dream Machine

 

OpenVPN Key generieren

Jetzt sind wir an dem Punkt angelangt weshalb wir alle hier sind: Wie generiere ich einen 512 Zeichen langen Schlüssel für OpenVPN?
Denkt man sich nämlich einen Schlüssel aus - und sei er noch so kreativ - wird es nicht funktionieren. Der Key wird nicht akzeptiert. 

OpenVPN liefert allerdings einen Key-Generator, mit dem man sich einfach einen Key erstellen lassen kann.

Im folgenden also der Befel mit dem man die Sache zum laufen bekommt:

  • '--genkey secret heißt der Befehl und wird folgendermaßen eingegeben:

    openvpn --genkey secret file

    unifi ssh udm openvpn genkey secret file
  • 'file' kann man hier übrigens gegen jeden beliebigen Pfad und Dateinamen austauschen. Es könnte z.B. auch /tmp/vpnsecret heißen. Also:

    openvpn --genkey secret /tmp/vpnsecret

    Ein zufällig generierter Key wird erzeugt. 

  •  Jetzt wo der Code erstellt wurde, machen wir Ihn zu Veerwendung bereit.
    Wir öffnen ihn in im terminal mit dem texteditor 'vi' und zwar mit dem Befehl

    vi file

    Was wir nun angezeigt bekommen sieht etwa so aus:

    unifi_ssh_udm_openvpn_vi_key_512bit.png

  • Wir kopieren ihn in einen Code Editor wie Notepad++ (Windows) oder bbEdit (Mac) und entfernen alle Absätze, damit der Key in einer einzigen Zeile steht.
    Hintergrund: Absätze sind unsichbare zeichen, die entfernt werden müssen, sonst funktioniert der Code nicht.

  • Den Editor VI auf unserer Dream machine schließen wir noch mit der Tastenfolge: 

    :q! [Enter]

    Bedeutung: Der ":" Bedeutet ich will dem Editor einen Befehl geben und nicht im Dokument tippen. Das "q" bedeutet, ich möchte das Dokument schließen. Das "!" hintendran gehängt bedeutet schließen und nicht speichern. Auch wenn ich ungesicherte Änderungen gemacht habe.
    Schließen wir VI auf der Dream Machine nicht ordentlich wie beschrieben wird das Programm so lange weiterlaufen, bis das Gerät neugestartet wird. Das verwendet zwar nicht viel, aber unnötig Speicher.

  • Ist der Code nun also erstellt und im Editor von unsichtbaren Zeichen befreit, können wir Ihn in die Konfiguration unserer Dream Machine kopieren.

OpenVPN Tunnel konfigurieren

Site-to-site VPN auf der Dream Machine konfigurieren

  1. Im Web Interface der Dream Machine auf 'Settings' klicken.

    unifi settings click

  2. Dann auf 'Teleport & VPN' klicken.

    unifi settings vpn click

  3. Im Hauptfenster erscheinen nun die VPN EInstellungen und in der letzten Zeile findet man eine Schalfläche 'Create Site-to-site VPN'. Da klicken wir nun drauf.

    unifi create s2s vpn click

  4. Als erstes geben wir dem kind einen Namen und wählen als VPN Protokoll 'OpenVPN'.

    unifi openvpn config 02 name type

  5. Dann fügen wir in der dritten Zeile den soeben erstellten Presahred Key aus dem Editor ein:

    unifi openvpn config 03 preshared key

  6. Noch eine Besonderheit bei OpenVPN: Die lokale Tunnel IP Adresse. Jetzt denkt sich der unerfahrene Administrator "Wo bekomme ich die denn jetzt her?", aber die Lösung ist einfach: Die bestimmen wir selbst!
    Wir wählen also eine freie IP Adresse aus unserem lokalen Netzwerk, außerhalb des DHCP-Adressbereichs (!) und tragen diese hier ein. In diesem Fall habe ich eine IP-Adress ganz hinten im Netzwerk gewählt, die 192.168.1.250. Den Port 1194 lassen wir einfach stehen.
    Unwahrscheinlich, dass Ihr diesen schon verwendet. Falls doch, könnt Ihr Euch natürlich einen individuellen ausdenken.

    unifi openvpn config 04 local tunnel ip address

  7. Im nächsten Schritt teilen wir der Dream Machine alle lokalen Netze der Gegenseite mit.  In unserem Beispiel ist das 192.168.2.0/24 . Das tragen wir Eurem Fall entsprechen hier ein und klicken auf 'Add'.
    Hier nun zu erklären warum das Netz in dieser Art angegeben wird, würde nun wirklich jeden Rahmen sprengen. Wenn das nicht klar ist fehlen zu viele Grundlagen.

    unifi openvpn config 01 shared remote subnets

  8. Nun verraten wir der UDM die IP-Adresse (oder den dynamischen Namen / DynDNS) der Gegenseite unseres Site-to-site VPN.

    unifi openvpn config 05 remote ip address

  9. Zuletzt fehlt noch die 'Remote Tunnel IP Address', also die lokale Tunnel IP der Gegenseite. Um dem beispiel ein einfaches Schema zu geben, wählte ich analog zur lokalen Tunnel Adresse die 192.168.2.250.
    D.h. das lokale Netzwerk der Gegenseite (2) und die gleiche IP hinten (250).

    unifi openvpn config 06 remote tunnel address

  10. Nun klicken wir auf 'Add New VPN Network' und sichern die Einstellungen. Das war die erste Seite!

Steht nun auf der anderen Seite auch eine Dream machine hat man es leicht. Wir widerholen einfach die letzten zehn Schritte unter Beachtung der folgenden Punkte:

  • Lokale und remote IP-Adressen (wie die Tunnel-IP) und Netze sind nun vertauscht.
  • Der Preshared key bleibt identisch. Klar, oder? ;)

In der Unifi Cloud sind dann im Auswahl-Menü der Dream Machines die beiden Verbundenen auch mit einem grünen Strich verbunden dargestellt.

Hat man jedoch ein anderes OpenVPN fähiges Gerät auf der Gegenseite ist dies nun Hersteller-gemäß zu konfigurieren.

Tunnel testen

Das war es. Ihr habt es geschafft! Nun können wir die Früchte unserer Arbeit ernten und den Tunnel testen.
Z.B: mit einem Ping (ping 192.168.2.1), oder im Browser.

Ich hoffe ich konnte Euch helfen und wünsche Euch weiterhin viel Spass & Erfolg!

Related Articles

Information

Kim Siebert - IT & Internet Services
Industriestrasse 1
D-66663 Merzig
Saarland, Germany

 

Kim Siebert Logo