
Um die Diskussion über ZeroTier fortzusetzen, von der Theorie, die im Artikel „Intelligenter Ethernet-Switch für den Planeten Erde“ beschrieben wurde, gehe ich zur Praxis über, in der:
- Wir erstellen und konfigurieren einen privaten Netzwerk-Controller
- Wir erstellen ein virtuelles Netzwerk
- Wir konfigurieren und verbinden Knoten damit
- Wir überprüfen die Netzwerkverbindung zwischen ihnen
- Wir schließen den Zugang zur GUI des Netzwerk-Controllers von außen
Netzwerk-Controller
Wie bereits erwähnt, benötigt der Benutzer zur Erstellung, Verwaltung und Verbindung von virtuellen Netzwerken einen Netzwerk-Controller, dessen grafische Benutzeroberfläche (GUI) in zwei Varianten existiert:
Optionen für ZeroTier GUI
- Eine davon ist die von den ZeroTier-Entwicklern, die als öffentliche Cloud-Lösung im SaaS-Modell verfügbar ist, mit vier Abonnements, darunter ein kostenloses, aber eingeschränkt in der Anzahl der verwalteten Geräte und des Unterstützungsniveaus.
- Die zweite — von einem unabhängigen Entwickler, etwas einfacher in der Funktionalität, aber als privates Open-Source-Lösung verfügbar, zur Nutzung vor Ort oder in Cloud-Ressourcen.
In meiner Praxis habe ich beide Methoden verwendet und mich schließlich für die zweite entschieden. Der Grund dafür waren die Warnungen des Entwicklers.
„Netzwerkcontroller fungieren als Zertifizierungszentren für virtuelle ZeroTier-Netzwerke. Die Dateien, die geheime Schlüssel des Controllers enthalten, müssen sorgfältig geschützt und zuverlässig archiviert werden. Ihre Kompromittierung ermöglicht es unautorisierten Angreifern, betrügerische Netzwerkkonfigurationen zu erstellen, während ein Verlust dazu führt, dass die Kontrolle und Verwaltung des Netzwerks verloren geht, was es im Wesentlichen unbenutzbar macht.“
Und auch Anzeichen meiner eigenen Cybersecurity-Paranoia 🙂
- Selbst wenn CheburNet kommt, sollte ich Zugang zu meinem Netzwerkcontroller behalten;
- Der Netzwerkcontroller sollte nur von mir verwendet werden. Bei Bedarf kann ich vertrauenswürdigen Personen Zugang gewähren;
- Es sollte die Möglichkeit geben, den Zugriff auf den Netzwerkcontroller von außen einzuschränken.
Es macht wenig Sinn, im Detail darauf einzugehen, wie man einen Netzwerkcontroller und das zugehörige GUI auf lokalen physischen oder virtuellen Ressourcen bereitstellt. Dafür gibt es drei Gründe:
- Die Anzahl der Seiten wird größer sein als geplant.
- Darüber wurde bereits berichtet. Auf GitHub des GUI-Entwicklers
- geht es in diesem Artikel um etwas anderes.
Daher wähle ich den einfacheren Weg und verwende in diesem Bericht einen Netzwerkcontroller mit GUI, der basiert auf VDS, erstellt aus einer Vorlage, die freundlicherweise von meinen Kollegen bei ProHoster entwickelt wurde.
Erstkonfiguration
Nach der Erstellung Server aus der angegebenen Vorlage erhält der Benutzer über den Browser Zugriff auf das Web-GUI des Controllers, indem er die Adresse httрs://:3443 aufruft.

Standardmäßig der Server Es kommt bereits mit einem vorinstallierten selbstsignierten TLS/SSL-Zertifikat. Das reicht mir aus, da ich den Zugriff von außen sperre. Für diejenigen, die andere Zertifikatstypen verwenden möchten, gibt es eine Installationsanleitung auf GitHub des GUI-Entwicklers.
Beim ersten Login des Benutzers Anmelden mit dem standardmäßig festgelegten Benutzernamen und Passwort – admin und password:

wird angeboten, das Standardpasswort in ein individuelles zu ändern.

Ich gehe etwas anders vor – ich ändere das Passwort des bestehenden Benutzers nicht, sondern erstelle einen neuen Benutzer – Benutzer erstellen.
Ich gebe den Namen des neuen Benutzers an – Benutzername:
Ich lege ein neues Passwort fest – Neues Passwort eingeben:
Ich bestätige das neue Passwort – Passwort erneut eingeben:
Die eingegebenen Zeichen sind case-sensitive – seien Sie vorsichtig!
Bestätigungs-Checkbox für Passwortänderung beim nächsten Login – Passwort beim nächsten Login ändern: nicht markieren.
Um die eingegebenen Daten zu bestätigen, klicke ich auf Passwort festlegen:

Dann: ich logge mich wieder ein – Ausloggen / Anmelden, bereits mit den Anmeldedaten des neuen Benutzers:

Dann wechsle ich zum Tab Benutzer – Benutzer und lösche den Benutzer admin, indem ich auf das Mülleimer-Icon klicke, das sich links neben seinem Namen befindet.

Das Passwort des Benutzers kann später geändert werden, indem entweder auf seinen Namen oder auf Passwort festlegen geklickt wird.
Virtuelles Netzwerk erstellen
Um ein virtuelles Netzwerk zu erstellen, muss der Benutzer zum Tab Netzwerk hinzufügen. Dies kann unter Benutzer über die Seite Startseite – die Hauptseite des Web-GUI, auf der die ZeroTier-Adresse dieses Netzwerkcontrollers angezeigt wird und ein Link zur Seite mit der Liste der über ihn erstellten Netzwerke vorhanden ist.

Auf der Seite Netzwerk hinzufügen gibt der Benutzer den Namen des neu zu erstellenden Netzwerks an.

Bei Verwendung der eingegebenen Daten — Netzwerk erstellen gelangt der Benutzer zu einer Seite mit der Liste der Netzwerke, auf der Folgendes angegeben ist:
Netzwerkname — der Name des Netzwerks als Link, über den er geändert werden kann
Netzwerk-ID — der Identifikator des Netzwerks
Detail — Link zur Seite mit detaillierten Netzwerkanforderungen
einfache Einrichtung — Link zur Seite für die einfache Konfiguration
Mitglieder — Link zur Seite zur Verwaltung der Knoten

Für weitere Einstellungen gehen Sie über den Link einfache Einrichtung. Auf der geöffneten Seite gibt der Benutzer den Bereich der IPv4-Adressen für das zu erstellende Netzwerk an. Dies kann automatisiert erfolgen, indem die Schaltfläche Netzwerkadresse generieren oder manuell durch Eingabe der Netzwerkmaske in das entsprechende Feld CIDR.

bestätigt werden. Bei erfolgreicher Dateneingabe muss man über die Schaltfläche Zurück zur Seite mit der Liste der Netzwerke zurückkehren. Damit kann die Hauptkonfiguration des Netzwerks als abgeschlossen angesehen werden.
Verbindung von Knoten zum Netzwerk
- Zunächst muss auf dem Knoten, den der Benutzer mit dem Netzwerk verbinden möchte, der Dienst ZeroTier One installiert werden.Was ist ZeroTier One?ZeroTier One — ein Dienst, der auf Laptops, Desktop-Computern, Servern, virtuellen Maschinen und Containern läuft und Verbindungen zu virtuellen Netzwerken über einen virtuellen Netzwerkport bereitstellt, ähnlich einem VPN-Client. Nach der Installation und dem Start des Dienstes können Sie sich mit den 16-stelligen Adressen der virtuellen Netzwerke verbinden. Jedes Netzwerk erscheint im System als virtueller Netzwerkport, der sich wie ein normaler Ethernet-Port verhält.
Links zu den Distributionen sowie die Installationsbefehle finden Sie auf der Herstellerseite. Den installierten Dienst können Sie über das Terminal, die Eingabeaufforderung (CLI) mit Admin-/Root-Rechten verwalten. Unter Windows/MacOS außerdem über die grafische Benutzeroberfläche. Unter Android/iOS nur mit GUI. - Überprüfung des Erfolgs der Installation des Dienstes:CLI:
zerotier-cli statusDas Ergebnis:
200 info ebf416fac1 1.4.6 ONLINE
GUI:Die Tatsache, dass die Anwendung läuft, und das Vorhandensein eines Eintrags mit der Node-ID der Knotenadresse.
- Verbindung eines Knotens zum Netzwerk:CLI:
zerotier-cli joinDas Ergebnis:
200 join OKGUI:
Windows: Rechtsklick auf das Symbol ZeroTier One im Systemtray und Auswahl des Punktes — Join Network.

MacOS: Die Anwendung im Menüleiste starten, falls noch nicht gestartet. Klicken Sie auf das Symbol ⏁ und wählen Sie ZeroTier One Android/iOS: + (Plus-Zeichen) im App Join Network.Android/iOS: + (Bild eines Pluszeichens) in der App

Geben Sie im angezeigten Feld die im GUI des Netzwerkkontrollers angegebene Adresse ein Netzwerk-ID, und klicken Sie auf Netzwerk beitreten / hinzufügen. - IP-Adresse dem Knoten zuweisen
Jetzt kehren wir zum Netzwerkkontroller zurück und navigieren auf der Seite mit der Netzwerkliste zu dem Link Mitglieder. Wenn Sie auf dem Bildschirm ein ähnliches Bild sehen, bedeutet dies, dass Ihr Netzwerkkontroller eine Bestätigungsanfrage zur Netzwerkverbindung vom verbundenen Knoten erhalten hat.
Auf dieser Seite lassen wir vorerst alles so wie es ist und klicken auf den Link IP-Zuweisung um zur Seite für die Zuweisung der IP-Adresse zu gelangen:
Nach der Zuweisung der Adresse klicken wir auf die Schaltfläche Zurück und kehren zur Seite der Liste der verbundenen Knoten zurück, wo wir den Namen festlegen — Mitgliedsname und aktivieren das Kontrollkästchen zur Autorisierung des Knotens im Netzwerk — Autorisierte. Übrigens ist dieses Kontrollkästchen eine sehr praktische Möglichkeit, um einen Knoten später vom Netzwerk zu trennen oder wieder zu verbinden.
Änderungen speichern mit der Schaltfläche Aktualisieren. - Überprüfung des Verbindungsstatus des Knotens im Netzwerk:
Um den Verbindungsstatus am Knoten zu überprüfen, führen wir aus:
CLI:zerotier-cli listnetworksDas Ergebnis:
200 listnetworks
200 listnetworks 2da06088d9f863be Mein_1stes_VLAN be:88:0c:cf:72:a1 OK PRIVAT ethernet_32774 10.10.10.2/24
GUI:Der Status des Netzwerks sollte OK sein
Wiederholen Sie die Schritte 1-5 für die Verbindung der verbleibenden Knoten.
Überprüfung der Netzwerkverbindung der Knoten
Ich mache dies, indem ich den Befehl ausführe ping auf dem Netzwerkgerät, das ich gerade verwalte.

Auf dem Screenshot der Web-GUI des Controllers sind drei verbundene Nodes zu sehen:
- ZTNCUI — 10.10.10.1 — mein Netzwerkcontroller mit GUI — VDS in einem der Rechenzentren von ProHoster. Für den normalen Betrieb ist es nicht notwendig, ihn ins Netzwerk einzufügen, aber ich habe das getan, da ich den Zugang zur Web-Oberfläche von außen einschränken möchte. Mehr dazu später.
- MyComp — 10.10.10.2 — mein Arbeitscomputer — ein physischer PC
- Backup — 10.10.10.3 — VDS in einem anderen Rechenzentrum.
Deshalb prüfe ich von meinem Arbeitscomputer aus die Verfügbarkeit anderer Nodes mit den Befehlen:
ping 10.10.10.1Pinge 10.10.10.1 mit 32 Bytes Daten:
Antwort von 10.10.10.1: Bytes=32 Zeit=14ms TTL=64
Antwort von 10.10.10.1: Bytes=32 Zeit=4ms TTL=64
Antwort von 10.10.10.1: Bytes=32 Zeit=7ms TTL=64
Antwort von 10.10.10.1: Bytes=32 Zeit=2ms TTL=64
Ping-Statistiken für 10.10.10.1:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ungefährer Hin- und Rückreisezeiten in Millisekunden:
Minimale = 2ms, Maximale = 14ms, Durchschnitt = 6ms
ping 10.10.10.3Pingen von 10.10.10.3 mit 32 Bytes Daten:
Antwort von 10.10.10.3: Bytes=32 Zeit=15ms TTL=64
Antwort von 10.10.10.3: Bytes=32 Zeit=4ms TTL=64
Antwort von 10.10.10.3: Bytes=32 Zeit=8ms TTL=64
Antwort von 10.10.10.3: Bytes=32 Zeit=4ms TTL=64
Ping-Statistiken für 10.10.10.3:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ungefährer Hin- und Rückreisezeiten in Millisekunden:
Minimale = 4ms, Maximale = 15ms, Durchschnitt = 7ms
Der Benutzer hat das Recht, andere Tools zur Überprüfung der Verfügbarkeit von Netzwerknodes zu verwenden, sowohl solche, die in das Betriebssystem integriert sind, als auch externe wie NMAP, Advanced IP Scanner usw.
Den Zugang zur GUI des Netzwerkcontrollers von außen verbergen.
Um die Wahrscheinlichkeit eines unbefugten Zugriffs auf den VDS, auf dem mein Netzwerkcontroller läuft, zu verringern, kann ich die Firewall im ProHoster-Kundenbereich nutzen. Dieses Thema ist eher für einen separaten Artikel geeignet. Daher zeige ich hier, wie man den Zugang zur GUI des Controllers nur aus dem Netzwerk ermöglicht, das ich in diesem Artikel erstellt habe.
Dazu muss ich mich per SSH mit dem VDS verbinden, auf dem der Controller läuft, und die Konfigurationsdatei mit folgendem Befehl öffnen:
nano /opt/key-networks/ztncui/.envIn der geöffneten Datei, nach der Zeile „HTTPS_PORT=3443“, die die Adresse des Ports enthält, über den die GUI geöffnet wird, muss ich eine zusätzliche Zeile mit der Adresse hinzufügen, über die die GUI zugänglich ist – in meinem Fall ist das HTTPS_HOST=10.10.10.1.
Dann speichere ich die Datei
Strg+C
Y
Enter
und führe den Befehl aus:
systemctl restart ztncuiJetzt ist die GUI meines Netzwerkcontrollers nur für die Knoten des Netzwerks 10.10.10.0/24 zugänglich.
Abschließend
Damit möchte ich den ersten Teil des praktischen Leitfadens zur Erstellung virtueller Netzwerke basierend auf ZeroTier abschließen. Ich freue mich auf eure Kommentare.
In der Zwischenzeit, um die Zeit bis zur Veröffentlichung des nächsten Teils zu überbrücken, in dem ich erklären werde, wie man ein virtuelles Netzwerk mit einem physischen kombiniert, wie man den „Road Warrior“-Modus einrichtet und noch einiges mehr, lade ich Sie ein, Ihr eigenes virtuelles Netzwerk mithilfe eines privaten Netzwerkcontrollers mit GUI auf einem VDS aus dem Marktplatz von Webseite ProHoster zu erstellen. Zumal für alle neuen Kunden aktuell eine kostenlose Testphase von 3 Tagen gilt!
P.S. Ja! Ich hätte es fast vergessen! Um einen Knoten aus dem Netzwerk zu entfernen, kann der Befehl in der CLI dieses Knotens verwendet werden.
zerotier-cli leave200 leave OK
oder über den Befehl „Delete“ im GUI-Client auf dem Knoten.
-> Einführung. Theoretischer Teil. Intelligenter Ethernet-Switch für den Planeten Erde
-> Praktisches Handbuch zum Aufbau virtueller Netzwerke. Teil 1
-> Praktisches Handbuch zum Aufbau virtueller Netzwerke. Teil 2
Quelle: habr.com





