Constellation (Fernzugriff) einrichten

Einleitung

Constellation ist ein VPN-Modul, mit dem Sie eine Fernverbindung zu Ihrem Server herstellen können. Es basiert auf Nebula und ist ein sehr leistungsstarkes Tool zur Absicherung Ihres Servers. Normalerweise müssten Sie Ports für Ihre Server öffnen bzw. weiterleiten, um eine Fernverbindung herzustellen. Mit Constellation können Sie eine Verbindung zu Ihrem Server herstellen, ohne Ports öffnen zu müssen und ohne das Risiko, gehackt zu werden. Es lässt sich zudem sehr einfach einrichten und kann verwendet werden, um gleichzeitig eine Verbindung zu mehreren Servern herzustellen.

Erste Schritte

Wenn Sie Constellation zum ersten Mal aufrufen, wird dieser Einrichtungsbildschirm angezeigt

  1. Gerätenamen: Dies ist der Name Ihres Servers. Geben Sie Ihrem Server einen eindeutigen Namen in Ihrem Constellation Netzwerk.
  2. Hostnamen: Dies ist sehr wichtig. Alles, was Sie hier eingeben, ermöglicht es Geräten, sich direkt mit Ihrem Server zu verbinden (siehe Hinweis unten).
  3. IP-Bereich, den das VPN verwenden wird. Die Standardeinstellung kann i.d.R. so belassen werden.
  4. Dies ist der zweite wichtige Punkt, den Sie beachten müssen: Wenn Sie sich hinter einem CGNAT befinden und den Port nicht öffnen können, muss dieses Kontrollkästchen deaktiviert sein. Wenn Sie den Port hingegen öffnen möchten (und somit der VPN-Port direkt geöffnet wird), aktivieren Sie dieses Kontrollkästchen.
  5. Falls Sie bereits ein Constellation-Netzwerk haben, können Sie mit diesem Button eine Konfiguration hochladen und den Server in ein bestehendes Netzwerk integrieren.

Hinweis: Wenn Sie einen öffentlichen Server verwenden, muss der Hostname Ihre öffentliche IP-Adresse enthalten, damit Clients versuchen können, eine direkte Verbindung zu Ihrem Server herzustellen. Wenn Sie einen privaten Server haben, fügen Sie bitte dennoch Ihre lokale IP-Adresse zum Hostnamen hinzu, da Geräte so zu Hause eine direkte Verbindung zu Ihrem Server herstellen können (und sogar offline funktionieren!).

Interface

Wenn Sie die Constellation-Seite aufrufen, müssen Sie zunächst das VPN aktivieren. Sobald dies geschehen ist, sollte Folgendes angezeigt werden:

Hier eine Übersicht:

  1. Dies gibt an, ob der Knoten mit den Constellation-Kommunikationsschichten verbunden ist, die zur Synchronisation der Knoten dienen.
  2. Constellation aktivieren / deaktivieren
  3. Der Status des aktuellen Knotens
  4. Hiermit können Sie den internen VPN-Dienst (Nebula) neu starten. Dies ist nützlich, wenn Sie die Konfiguration ändern oder wenn das VPN nicht ordnungsgemäß funktioniert.
  5. Die Protokolle des Dienstes zu Debugging-Zwecken
  6. Gibt die vom VPN verwendete Konfiguration aus, ebenfalls nützlich für das Debugging
  7. Zerstört Ihr Netzwerk vollständig. Wenn Sie umfangreiche Arbeiten planen, sollten Sie mit dieser Schaltfläche von vorne beginnen
  8. Dies ermöglicht es diesem Server, Anfragen weiterzuleiten. Standardmäßig versucht Constellation, P2P-Verbindungen zwischen verschiedenen Knoten unserer Constellation herzustellen. Manchmal ist dies nicht möglich, beispielsweise wenn du dich hinter bestimmten Arten von NAT befindest. In diesem Fall kannst du diese Option aktivieren, und der Server leitet die Anfrage für dich weiter. Dies erhöht zwar die Latenz, ermöglicht dir aber dennoch, eine Verbindung zu deinen Knoten herzustellen.
  9. Dies ermöglicht es dem Client, diesen Server als Ausgangsknoten zu nutzen (d. h. alle Anfragen über diesen Knoten zu leiten)
  10. Verwende dies als Tunnel-Einstiegspunkt. Dadurch kann der Server Anfragen empfangen, die für andere Server deiner Constellation bestimmt sind (Tunneling und/oder Lastenausgleich).
  11. Falls dies nicht dein Hauptserver ist (entweder ein öffentlicher Server oder nur ein Nebenserver), kannst du ihn mit einem anderen Cosmos-Constellation-Netzwerk verbinden, indem du die Datei „constellation.yml“ dort hochlädst.

Gerät hinzufügen

Um eine Verbindung zu Ihrem Netzwerk herzustellen, müssen Sie ein Gerät anlegen. Klicken Sie dazu auf die Schaltfläche „Knoten hinzufügen“. Es sollte nun Folgendes angezeigt werden:

  • Gerätetyp: Hier können Sie auswählen, ob es sich bei dem neuen Gerät um einen „Lighthouse“ handelt oder nicht. Weitere Informationen zu „Lighthouses“ finden Sie im nächsten Abschnitt. Wenn Sie diese Option auswählen, können Sie den Hostnamen des „Lighthouses“ festlegen und bestimmen, ob er Anfragen weiterleiten darf (siehe oben).
    • Client: Dies sind Ihre Computer und Smartphones, die eine Verbindung zum Netzwerk herstellen.
    • Cosmos-Server (Manager): Ein vollwertiger Cosmos-Server. Dieser stellt Ihre Benutzer, Lizenzen usw. für alle Geräte bereit.
    • Cosmos-Server (Agent): Dies ist ein Cosmos-Server mit eingeschränkten Berechtigungen, der beispielsweise für Leuchttürme oder Tunnel nützlich ist.
  • Der Eigentümer des Geräts, nützlich für Berechtigungen und die Verwaltung (für Clients)
  • Der Name des Geräts
  • Die IP-Adresse des Geräts. Standardmäßig wird automatisch die nächste verfügbare IP-Adresse im Netzwerk ausgewählt. Du kannst sie bei Bedarf ändern, stelle jedoch sicher, dass sie noch nicht vergeben ist.
  • (Nur Server) Der öffentliche Hostname ist die IP-Adresse/der Hostname, den dein Cosmos-Server verwendet, um mit diesem anderen Server zu kommunizieren
  • Die beiden anderen Optionen entsprechen denen deines Hauptservers

Wenn Sie fertig sind, klicken Sie auf „Hinzufügen“ – Ihr Gerät kann sich nun verbinden. Es erscheint ein Bildschirm mit einem QR-Code und einer Datei zum Herunterladen. Sie können beides nutzen, um eine Verbindung zu Ihrem Netzwerk herzustellen. Es empfiehlt sich, den QR-Code auf Ihrem Mobiltelefon und die Datei auf Ihrem Computer zu verwenden.

Client / App

Um eine Verbindung zu Ihrem Netzwerk herzustellen, müssen Sie den Client herunterladen. Klicken Sie dazu auf die Schaltfläche „Download“. Die Anwendungen für Ihre Plattform finden Sie hier.

Lighthouses and Relaying

Constellation nutzt ein P2P-Protokoll, um eine Verbindung zu Ihren Geräten herzustellen. Das bedeutet, dass Ihre Geräte versuchen, sich direkt miteinander zu verbinden. Dies ist jedoch nicht immer möglich. Befinden Sie sich beispielsweise hinter einem CGNAT, können Sie keine Verbindung zu Ihren Geräten herstellen. In diesem Fall können Sie einen „Lighthouse“ verwenden. Ein „Lighthouse“ ist ein öffentlich zugängliches Gerät, das die Anfrage für Sie weiterleitet. Man kann es sich als eine Art „Wegweiser“ für Ihre Anfragen vorstellen.

Standardmäßig läuft der Datenverkehr nicht über den „Lighthouse“, aber wenn die direkte Verbindung fehlschlägt, leitet er den Datenverkehr weiter, vorausgesetzt, Sie haben die Relay-Option aktiviert.

CGNAT und Multi-Server-Setup

Die Stärke dieser Technologie liegt in ihren Mesh-VPN-Fähigkeiten. Selbst wenn sich Ihr Hauptserver zu Hause hinter einem CGNAT befindet, können Sie von überall auf der Welt eine Verbindung zu ihm herstellen. Sie können außerdem mehrere Server miteinander verbinden, sodass diese untereinander kommunizieren können. Sie können beispielsweise einen Server zu Hause und einen Server in der Cloud betreiben, die dann über einen sicheren, verschlüsselten Tunnel miteinander kommunizieren können.

Um dies zu erreichen:

  • Erstellen Sie ein Constellation-Netzwerk auf Ihrem Hauptserver.
  • Erstellen Sie ein Gerät vom Typ „Lighthouse“.
  • Laden Sie die Konfigurationsdatei herunter und laden Sie sie auf Ihren sekundären Server hoch.
  • Fügen Sie Geräte auf Ihrem Hauptserver hinzu, um eine Verbindung herzustellen.

Ein einfaches DigitalOcean-Droplet für 5 $ kann als „Lighthouse“ verwendet werden, und Sie können sich von überall sicher mit Ihrem Heimserver verbinden. Es wird außerdem empfohlen, die „Lighthouses“ zu erstellen, bevor Sie die Clients verbinden.

Verwende keine Firewall, um den privaten Server vollständig zu isolieren, da diese sonst auch den Datenverkehr blockiert, der auf ausgehenden Datenverkehr „antwortet“. Verwende die Firewall stattdessen, um eingehenden Datenverkehr auf deiner öffentlichen IP-Adresse für alle Ports außer 4242 zu blockieren.

Gateway-Proxies

Ihr öffentlicher Server dient nicht nur als Leuchtturm, sondern kann auch als Gateway zu Ihren privaten Ressourcen genutzt werden. Dabei kann es sich entweder um ein gesichertes Gateway (innerhalb von Constellation) oder um ein Gateway handeln, das Verbindungen von außen akzeptiert. Weitere Informationen hierzu finden Sie im Abschnitt „URLs“ unter dem Punkt „Proxys verketten“.

Absichern Ihrer Container

Ein Vorteil von Constellation ist die Integration in den Reverse-Proxy und die Möglichkeit, Ihre URLs zu sichern.

Dies ist äußerst einfach. In Ihrem URL-Verwaltungsbildschirm steht eine Option namens „Auf das Constellation-Netzwerk beschränken“ zur Verfügung. Wenn Sie diese aktivieren, können nur Geräte, die mit Ihrem Netzwerk verbunden sind, auf diese URL zugreifen. Dies ist nützlich, um private URLs in Ihrem Netzwerk zugänglich zu machen.

P2P und Meshing

Da Constellation ein P2P-Meshing-VPN ist, bedeutet dies auch, dass sich Ihre Geräte direkt miteinander verbinden können. Dies ist nützlich, wenn Sie beispielsweise Samba-Freigaben zwischen Ihren Geräten teilen oder sogar LAN-Spiele spielen möchten. Denken Sie dabei immer daran, die Constellation-IP-Adresse Ihrer Geräte zu verwenden, damit die Verbindung funktioniert.

DNS und Constellation

Constellation verfügt über einen eigenen internen DNS-Server. Das bedeutet, dass Sie Constellation als Alternative zu PiHole und Adguard nutzen können. Sie können Werbeblocker-Listen hinzufügen und auch eigene DNS-Einträge vornehmen. Dies ist nützlich, um private URLs in Ihrem Netzwerk zugänglich zu machen.

Das private DNS von Constellation ist zudem in Ihren Reverse-Proxy integriert: Immer wenn Sie eine Verbindung zu Ihrem Constellation herstellen, werden alle Ihre URLs so überschrieben, dass anstelle Ihrer öffentlichen IP-Adresse die IP-Adressen Ihres Constellation verwendet werden. Auf diese Weise werden alle Ihre Verbindungen über Ihren VPN-Tunnel gesichert.

Schließlich werden auch Hostnamen für alle Ihre Clients erstellt, damit diese miteinander kommunizieren können.

Sie können Ihre DNS-Einträge auf der Registerkarte „DNS“ der Constellation-Seite einrichten.

Tunneling

Beim Erstellen einer URL haben Sie die Möglichkeit, die Verbindung über Ihr Constellation-Netzwerk zu tunneln. Dies ist nützlich, wenn Sie eine private URL für die Öffentlichkeit zugänglich machen möchten oder wenn Sie Ihren Heimserver für die Öffentlichkeit zugänglich machen möchten, ihn aber dennoch durch starke Verschlüsselung und Gateway-Proxys sichern möchten.

Sobald Sie Ihre beiden Cosmos-Instanzen miteinander verbunden haben, können Sie eine URL auf Ihrem privaten Server erstellen und diese über Ihren öffentlichen Server tunneln.

Konfiguration OHNE CGNAT: Heimserver direkt erreichbar

Dies ist die grundlegendste Konfiguration. Damit wird Ihr Server einfach öffentlich zugänglich gemacht (hinter dem VPN, also weiterhin auf sichere Weise). Das ist ganz einfach:

  • Stellen Sie sicher, dass Port 4242 (UDP !!) auf Ihrem Router offen ist.
  • Richten Sie Constellation mit den Standardwerten ein (Lighthouse im öffentlichen Modus!).
  • Beginnen Sie mit dem Verbinden von Geräten.

Konfiguration MIT CGNAT: Heimserver hinter CGNAT mit Lighthouse

Dies ist eine gängige Konfiguration für Nutzer, die von überall auf der Welt hinter CGNAT eine Verbindung zu ihrem Heimserver herstellen möchten. Sie ist auch nützlich, wenn Sie mehrere Server besitzen und diese miteinander verbinden möchten. Schließlich ermöglicht sie es Ihnen auch, auf Ihrem Heimserver gehostete Dienste öffentlich zugänglich zu machen und gleichzeitig die IP-Adresse Ihres Heimservers zu verbergen.

WENN SIE KEIN CGNAT HABEN, KÖNNEN SIE EINFACH DEN PORT 4242 AUF IHREM ROUTER ÖFFNEN UND SICH DIREKT MIT IHREM HEIMSERVER VERBINDEN.

  • Erstellen Sie ein Constellation-Netzwerk auf Ihrem Heimserver

Erstellen Sie ein Constellation-Netzwerk auf Ihrem Heimserver. Hier gibt es nicht viel zu tun, außer sicherzustellen, dass der öffentliche Hostname dem entspricht, mit dem Sie normalerweise in Ihrem lokalen Netzwerk auf Ihren Server zugreifen, und den entsprechenden A-Eintrag zu erstellen, falls Sie eine Domain verwenden.

 

  • Erstellen Sie einen Lighthouse auf einem öffentlichen Server

Angenommen, Sie haben bei Ihrem bevorzugten Anbieter (Digital Ocean eignet sich gut) einen kleinen Server (Sie brauchen wirklich nicht viel) bestellt, erstellen Sie auf Ihrem Heimserver für diesen Lighthouse ein Gerät vom Typ „Cosmos Server (Agent)“. Bearbeite das Feld „Constellation IP“ nicht. Bearbeite jedoch das Feld „public hostname“ so, dass es die IP-Adresse deines öffentlichen Servers enthält. Aktiviere außerdem die Relay-Option. Es wird empfohlen, den Typ auf „Cosmos Server“ festzulegen.

WENN SIE DIGITAL OCEAN MIT EINER RESERVIERTEN IP-ADRESSE VERWENDEN, IST FOLGENDES WICHTIG: https://docs.digitalocean.com/products/networking/reserved-ips/how-to/outbound-traffic/

Viele Anbieter mit schwankenden/reservierten IP-Adressen haben dasselbe Problem. STELLEN SIE SICHER, DASS DIE OUTBOUND-IP-ADRESSE MIT DER ÖFFENTLICHEN NEBULA-IP-ADRESSE ÜBEREINSTIMMT.

  • Laden Sie die Konfigurationsdatei auf Ihren öffentlichen Server hoch

Nachdem Sie eine weitere einfache Cosmos-Instanz auf Ihrem VPS eingerichtet haben, rufen Sie die Constellation-Seite auf und laden Sie die Konfigurationsdatei hoch, die Sie von Ihrem Heimserver heruntergeladen haben (oben auf der Seite sehen Sie eine Schaltfläche zum Hochladen). Dadurch wird Ihr öffentlicher Server mit Ihrem Heimserver verbunden. Vergewissern Sie sich, dass bei beiden Servern „Mit Constellation verbunden“ angezeigt wird. Auf manchen Systemen kann es vorkommen, dass Sie Cosmos nach dem ersten Hochladen der Konfigurationsdatei neu starten müssen. Wenn Sie Oracle oder ein ähnliches System verwenden, müssen Sie möglicherweise den UDP-Port 4242 in der Firewall freigeben.

  • Erstellen Sie ein Gerät auf Ihren Smartphones und Computern

Erstellen Sie Geräte für jedes Ihrer Smartphones und jeden Ihrer Computer, die Sie mit Ihrem Server verbinden möchten. Sie können den QR-Code verwenden, um Ihr Smartphone zu verbinden, und die Datei, um Ihren Computer zu verbinden.

Das war’s schon! Wenn Sie nach draußen gehen und 5G auf Ihrem Smartphone aktivieren, sollten Sie sich mit Ihrem Heimserver verbinden können, auch wenn Sie nicht zu Hause sind. Die Verbindung ist gesichert, und Sie können mit demselben Domainnamen auf alle Ihre Dienste zugreifen, als wären Sie zu Hause.

  • (Optional) Dienste freigeben

Wenn du Dienste auf deinem Heimserver für die Öffentlichkeit freigeben möchtest, kannst du dies tun, indem du URLs erstellst und diese über deinen öffentlichen Server tunnelst. Auf diese Weise kannst du Dienste freigeben, ohne die IP-Adresse deines Heimservers preiszugeben.

Erstellen Sie zunächst eine URL auf Ihrem Heimserver, so als würden Sie diese einfach in Ihrem Netzwerk freigeben. Bearbeiten Sie anschließend die URL, aktivieren Sie die Option „Tunnel durch Constellation“ und wählen Sie Ihren öffentlichen Server als Gateway aus. Geben Sie im Feld „Hostname“ den öffentlichen Hostnamen ein, den Sie verwenden möchten. Dies sollte entweder die IP-Adresse Ihres öffentlichen Servers (mit einem freien Port) oder ein Domainname sein, der auf Ihren öffentlichen Server verweist.

Dann können Sie über diesen Hostnamen von überall auf der Welt auf Ihren Dienst zugreifen, und die Verbindung wird über Ihren VPN-Tunnel gesichert.

Fehlerbehebung

Grundlegende Informationen

Wenn Sie Probleme bei der Verbindung mit Ihrem Netzwerk haben, finden Sie hier einige grundlegende Informationen, die Sie überprüfen sollten:

  • Standardmäßig läuft das VPN im Adressbereich 192.168.201.xxx. Ihr Heimserver sollte die IP-Adresse 192.168.201.1 haben, während andere Geräte eine IP-Adresse besitzen, die auf der Registerkarte „Constellation“ angezeigt wird
  • Das VPN nutzt den Port 4242. Stellen Sie sicher, dass dieser Port auf Ihrem Server offen ist und nicht von Ihrer Firewall blockiert wird, wenn Sie versuchen, eine direkte Verbindung herzustellen.
  • Das VPN und sein DNS verwenden das UDP-Protokoll. Stellen Sie sicher, dass Ihre Firewall den UDP-Datenverkehr nicht blockiert.
  • Auf der Registerkarte „Constellation“ jedes Clients bzw. Servers stehen Ihnen VPN-spezifische Protokolle zur Verfügung. Sollten Sie Probleme bei der Verbindung haben, können Sie die Protokolle überprüfen, um festzustellen, was schiefgelaufen ist. Idealerweise sollte in den Protokollen des VPN der Eintrag „Handshake Received“ erscheinen, was darauf hinweist, dass die Verbindung zu diesem bestimmten Knoten erfolgreich hergestellt wurde.
  • Wenn Sie einen Lighthouse verwenden, beachten Sie bitte, dass es bis zu 2 Minuten dauern kann, bis die Knoten eine Verbindung zum Lighthouse herstellen. Wenn Sie einen Lighthouse verwenden, stellen Sie sicher, dass der Lighthouse mit dem Netzwerk verbunden ist, bevor Sie die Clients verbinden.
  • Manchmal kann es vorkommen, dass Constellation bei der Herstellung einer Verbindung ins Leere blockiert wird, wenn Sie die Netzwerkeinstellungen des Servers verändert haben. Versuchen Sie, Cosmos (über das Menü oben rechts) auf allen Servern Ihrer Constellation neu zu starten, um die Verbindung zwischen ihnen wiederherzustellen.

Ich kann keine Verbindung zu Constellation herstellen

Wenn die App Probleme beim Aufbau einer Verbindung hat:

Wenn Sie noch nie eine Verbindung herstellen konnten, stellen Sie sicher, dass Port 4242 auf Ihrem Server bzw. in Ihrer Firewall offen ist und dass das UDP-Protokoll zugelassen ist. Ist dies der Fall, sollten Sie den VPN-Dienst vollständig zurücksetzen und Ihre Geräte neu synchronisieren

Wenn Sie zuvor eine Verbindung herstellen konnten, dies jetzt aber nicht mehr möglich ist, prüfen Sie, ob sich etwas an Ihrer Konfiguration geändert hat. Ist dies nicht der Fall, sollten Sie den VPN-Dienst sowohl auf Ihren „Lighthouses“ als auch auf Ihrem Heimserver neu starten (dies ist ganz einfach über den Reiter „Constellation“ möglich). Starten Sie außerdem die Client-Apps auf Ihren Geräten neu.

Ich kann eine Verbindung zu Constellation herstellen, habe aber keinen Zugang zum Internet.

Dies bedeutet in der Regel, dass Constellation zwar funktioniert, der DNS jedoch nicht. Dies kann an einer fehlerhaften Konfiguration der DNS-Einstellungen, an Firewalls oder an einem Konflikt mit einem anderen DNS-Server liegen.

  •  Überprüfen Sie die Protokolle des Cosmos-Master-Servers auf Fehler im Zusammenhang mit dem DNS.
  • Überprüfen Sie Ihre Firewall-Einstellungen, um sicherzustellen, dass der DNS-Port (über UDP) offen ist.

Ich kann eine Verbindung zu Constellation herstellen – wie greife ich auf meine Dienste zu?

Constellation verfügt über ein System, das DNS-Einträge automatisch so umleitet, dass sie auf Ihren Server verweisen. Dazu gehören Hostnamen für Gerätenamen, aber auch alle URLs, die Sie auf Ihrem Server erstellt haben.

Wenn Sie home-assistant.example.com aufrufen, wird die Verbindung automatisch auf die Constellation-IP-Adresse Ihres Servers umgeleitet.

Dies ist nützlich, um Ihre Verbindung zu sichern, ohne sich zwei verschiedene URL-Sätze merken zu müssen.Wenn Sie IP-Adressen für die Verbindung zu Ihrem Server verwenden, sollten Sie einen Wechsel zur *.local-Domain (hinzugefügt in Version 0.16.0) in Betracht ziehen – letztendlich können Sie jedoch auch über 192.168.201.1:(Port) auf Ihren Server zugreifen (die Master-IP lautet immer 192.168.201.1).