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
- Terminal öffnen
- Befehl eingeben: ssh "root@[LAN-IP-Adresse-DreamMachine]", also z.B. ssh
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. .1.1 - Enter - Passwort eingeben - Enter
- Sind die Zugangsdaten korrekt, sieht Euer Terminal etwa so aus und Ihr seid eingeloggt:
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
-
'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 Befehlvi file
Was wir nun angezeigt bekommen sieht etwa so aus: - 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
- Im Web Interface der Dream Machine auf 'Settings' klicken.
- Dann auf 'Teleport & VPN' klicken.
- 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.
- Als erstes geben wir dem kind einen Namen und wählen als VPN Protokoll 'OpenVPN'.
- Dann fügen wir in der dritten Zeile den soeben erstellten Presahred Key aus dem Editor ein:
- 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. - 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. - Nun verraten wir der UDM die IP-Adresse (oder den dynamischen Namen / DynDNS) der Gegenseite unseres Site-to-site VPN.
- 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). - 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!