Bauen Sie ein Overlay-VPN mit einem Netbird Server
4 Minuten Lesezeit
Überblick
Wenn es darum geht, VMs in verschiedenen Cloudumgebungen, Bare Metal Server, Kubernetesumgebungen sowie Workstations und mobile Geräte sicher miteinander zu verbinden, ist es sinnvoll auf ein Overlay-VPN wie Netbird zurückzugreifen.
Netbird bildet mit Hilfe von Wireguard ein verschlüsseltes Peer-to-Peer Mesh Netzwerk, in dem alle Teilnehmer - eingeschränkt durch konfigurierbare Firewallregeln - miteinander verbunden sind.
Wenn man sich dabei nicht auf eine vom Anbieter bereitgestellte Cloudlösung verlassen möchte, kann man die notwendigen Netbird-Komponenten auch selbst betreiben. Dabei sollte man ein paar Punkte berücksichtigen, um eine möglichst hohe Verfügbarkeit zu erreichen. Dieses Tutorial erklärt die Einrichtung.
Netbird Server installieren
Für die Installation des Netbird Servers folgt man am Besten dem Self-Hosting Quickstart Guide (5 min).
Dazu erstellt man sich eine kleine VM in der pluscloudopen mit einer vCPU und 2 GB Arbeitsspeicher (Flavor SCS-1V-2 oder SCS-1V-2-5), erzeugt eine Security Rule, die die Ports 80/tcp, 443/tcp und 3478/udp eingehend erlaubt, assoziiert diese mit der neuen VM, konfiguriert eine Floating-IP Adresse und erzeugt beim DNS-Hoster seines Vertrauens die im Quickstart Guide beschriebenen DNS-Einträge für diese IP-Adresse.
Dann installiert man Docker und die ggfs. fehlenden Softwarepakete (jq und curl) nach der entsprechenden Installationsanleitung und startet die Installation der Netbird Komponenten. Es entsteht ein Setup für docker compose, welches alle enthaltenen Container steuert.
Die DNS-Einträge sind erforderlich, damit der Netbird Server und der Proxy Server sich per Let’s Encrypt http-01 Challenge SSL-Zertifikate erzeugen können.
Netbird external Relay Server installieren
Nach der Installation des Netbird Servers sind erstmal alle Komponenten auf einer VM angesiedelt. Natürlich ist eine einzelne VM nicht hoch ausfallsicher - selbst wenn die Infrastruktur der pluscloudopen auf hohe Verfügbarkeit ausgelegt ist, ist der Absturz eines einzelnen Hypervisors nicht ganz auszuschließen.
Ein Ausfall der gerade installierten VM würde zum Ausfall sowohl der Managment-Ebene (Dashboard und Netbird Server) als auch der Datenebene (Relay, STUN und Signal Server) führen. Um z. B. auch beim Update des Netbird Servers Störungen auf der Datenebene zu minimieren, ist es sinnvoll, die Komponenten voneinander zu trennen.
Dazu hat Netbird auch eigene Anleitungen erstellt: Splitting Your Self-Hosted Deployment.
Dazu sollte man zunächst die Relay Komponente ausgliedern. Diese ist völlig unabhängig von den anderen Komponenten und authentisiert sich beim Netbird Server über ein shared secret.
Es ist also durchaus eine Option mehrere (mindestens zwei) Relay Server zu installieren und diese auch über mehrere Umgebungen der pluscloudopen zu verteilen. Wenn die VM mit dem Netbird Server in der Umgebung DE-WEST-1 installiert ist, könnten die beiden Relay Server z. B. in DE-WEST-2 und DE-NORTH-1 installiert werden.
Auf diese Weise würden auch Probleme, die eine komplette Availability Zone betreffen, nicht zum Problem für das Overlay-VPN werden.
Für die Installation von separaten Relay Servern hält Nebird ebenfalls eine Dokumentation bereit: Set Up External Relay Servers.
Auch hier reicht eine minimale VM (SCS-1V-1, SCS-1V-1-10), die eine public IP-Adresse bekommt. Die Security Group sollte die Ports 80/tcp, 443/tcp und 3478/udp für den Zugriff von außen öffnen.
Netbird external Signal Server installieren?
Der Signal Server kann nicht in mehrere Instanzen aufgeteilt werden, um seine Ausfallsicherheit zu erhöhen. Auch eine Trennung vom Netbird Management Server bringt also keine erhöhte Ausfallsicherheit mit sich.
Generell kann kann er aber - genau wie die Relay Server - vom Netbird Management Server abgetrennt werden. Das entsprechende Vorgehen ist in Set Up External Signal Server in der Netbird Dokumentation beschrieben.
Da die Ausfallsicherheit sich nicht verbessert, empfehlen wir den Signal Server nicht vom Netbird Management Server zu trennen.
SQLite Backup/Replikation
Um auch auf Probleme mit der SQLite Datenbank vorbereitet zu sein, empfiehlt sich eine normale Backuproutine zu verwenden. Der Datenverlust zwischen zwei Backups kann verringert werden, wenn man auf eine Replikationslösung wie Litestream zurückgreift, die die SQLite Datenbank “permanent” an einen anderen Ort (z. B. ein S3-Bucket oder ein anderes Verzeichnis) repliziert. Die Dokumentation beschreibt die Installation und z. B. das Einrichten der Replikation in ein Verzeichnis auf derselben VM oder nach S3 wie z. B. S3 Object Storage von plussserver.
Tipp
Wir empfehlen einen Blick in die ausführliche und umfangreiche Netbird Dokumentation zu werfen, um weitere Anwendungsfälle und Einsatzszenarien kennenzulernen.