Unterstützt von ZeroTier. Ein praktischer Leitfaden zum Aufbau virtueller Netzwerke. Teil 1


Wenn ich die Geschichte über ZeroTier fortsetze, gehe ich von der Theorie im Artikel „ Intelligenter Ethernet-Switch für den Planeten Erde “ auf die Praxis über, in der:

  • Erstellen und konfigurieren Sie einen privaten Netzwerkcontroller
  • Erstellen Sie ein virtuelles Netzwerk
  • Konfigurieren und verbinden Sie Knoten damit
  • Überprüfen Sie die Netzwerkverbindung zwischen ihnen.
  • Schließen Sie den Zugriff auf die GUI des Netzwerkcontrollers von außen

Netzwerkcontroller


Wie bereits erwähnt, benötigt der Benutzer zum Erstellen, Verwalten und Verbinden von Knoten einen Netzwerkcontroller, eine grafische Benutzeroberfläche, für die es zwei Möglichkeiten gibt:

ZeroTier-GUI-Optionen
  • Einer vom Entwickler ZeroTier, der als vom SaaS-Modell bereitgestellte Public Cloud-Lösung mit vier Abonnementplänen erhältlich ist, einschließlich kostenlos, jedoch in Bezug auf die Anzahl der verwalteten Geräte und den Grad des Supports begrenzt
  • Der zweite stammt von einem unabhängigen Entwickler, der in seiner Funktionalität etwas vereinfacht ist, aber als private Open Source-Lösung für die Verwendung vor Ort oder auf Cloud-Ressourcen verfügbar ist.

In meiner Praxis habe ich beides benutzt und mich letztendlich für das zweite entschieden. Der Grund dafür waren die Warnungen des Entwicklers.

„Netzwerkcontroller dienen als Zertifizierungsstellen für virtuelle ZeroTier-Netzwerke. Dateien, die die geheimen Schlüssel des Controllers enthalten, müssen sorgfältig geschützt und sicher archiviert werden. Wenn sie kompromittiert werden, können unbefugte Angreifer betrügerische Netzwerkkonfigurationen erstellen, und der Verlust führt dazu, dass das Netzwerk nicht mehr kontrolliert und verwaltet werden kann, wodurch es effektiv unbrauchbar wird. “

Link zur Dokumentation

Und auch Anzeichen einer eigenen IB paranoid :)

  • Selbst wenn Cheburnet kommt, sollte ich trotzdem Zugriff auf meinen Netzwerkcontroller haben.
  • Nur ich sollte den Netzwerk-Controller verwenden. Falls erforderlich, Bereitstellung des Zugangs zu ihren Bevollmächtigten;
  • Es sollte möglich sein, den Zugriff auf den Netzwerkcontroller von außen einzuschränken.

In diesem Artikel wird nicht viel darauf hingewiesen, wie ein Netzwerkcontroller und eine grafische Benutzeroberfläche für lokale physische oder virtuelle Ressourcen bereitgestellt werden. Und dafür gibt es auch 3 Gründe:

  • mehr Briefe als geplant
  • Dies ist bereits in GitHab GUI Developer beschrieben
  • Thema über einen anderen

Aus diesem Grund werde ich in dieser Darstellung einen Netzwerkcontroller mit einer VDS-basierten Benutzeroberfläche verwenden, die auf einer Vorlage basiert, die freundlicherweise von meinen Kollegen von RuVDS entwickelt wurde.

Ersteinrichtung


Nachdem der Server anhand der angegebenen Vorlage erstellt wurde, kann der Benutzer über den Browser auf die Web-GUI des Controllers zugreifen, indem er sich unter https: // <Server-IP>: 3443 anmeldet


Standardmäßig enthält der Server bereits ein selbstsigniertes TLS / SSL-Zertifikat. Das reicht mir, da ich den Zugang von außen blockiere. Für diejenigen, die andere Arten von Zertifikaten verwenden möchten, gibt es eine Anleitung zum Installieren eines GUI-Entwicklers auf GitHab.

Wenn sich ein Benutzer zum ersten Mal mit dem Standardbenutzernamen und -kennwort beim Anmeldesystem anmeldet - admin und password :


Sie schlägt vor, das Standardkennwort für den Benutzer zu ändern


Ich verhalte mich etwas anders - ich ändere nicht das Passwort für einen vorhandenen Benutzer, sondern erstelle einen neuen - Benutzer erstellen .

Ich habe den Namen des neuen Benutzers festgelegt - Benutzername :
Ich habe ein neues Passwort festgelegt - Geben Sie ein neues Passwort ein :
Ich bestätige das neue Passwort - Passwort erneut eingeben :

Bei der Eingabe der Zeichen muss die Groß- und Kleinschreibung beachtet werden - seien Sie vorsichtig!

Kontrollkästchen zur Bestätigung der Kennwortänderung beim nächsten Anmelden - Kennwort bei der nächsten Anmeldung ändern: Ich markiere es nicht.

Um die eingegebenen Daten zu bestätigen, drücken Sie Set password :


Dann: angemeldet - Abmelden / Anmelden , bereits unter den Zugangsdaten des neuen Benutzers:


Als nächstes gehe ich zur Registerkarte Benutzer - Benutzer und lösche den Administrator- Benutzer, indem ich auf das Papierkorbsymbol links neben seinem Namen klicke.


In Zukunft können Sie das Benutzerpasswort ändern, indem Sie entweder auf seinen Namen klicken oder das Passwort festlegen.

Ein virtuelles Netzwerk erstellen


Um ein virtuelles Netzwerk zu erstellen, muss der Benutzer zur Registerkarte Netzwerk hinzufügen gehen. Vom Benutzerelement aus können Sie dies über die Startseite tun - die Haupt-Web-GUI-Seite, auf der die ZeroTier-Adresse dieses Netzwerkcontrollers angezeigt wird und ein Link zu der Liste der über ihn erstellten Netzwerke vorhanden ist.


Auf der Seite Netzwerk hinzufügen weist der Benutzer den Namen des Netzwerks zu, das er erneut erstellt.


Beim Anwenden der Eingabedaten - Netzwerk erstellen gelangt der Benutzer auf eine Seite mit einer Liste von Netzwerken, in denen Folgendes angegeben ist:

Netzwerkname - Netzwerkname in Form eines Links, auf den Sie klicken, um ihn zu ändern
Netzwerk ID - Netzwerk ID
detail - Link zu einer Seite mit detaillierten Netzwerkparametern
Einfache Einrichtung - Link zu einer Seite zur einfachen Einrichtung
Mitglieder - Link zur Site-Management-Seite


Klicken Sie zur weiteren Konfiguration auf den Link für die einfache Einrichtung . Auf der sich öffnenden Seite legt der Benutzer den IPv4-Adressbereich für das zu erstellende Netzwerk fest. Dies kann automatisch durch Drücken der Schaltfläche Netzwerkadresse generieren oder manuell durch Eingabe der Netzwerkmaske des CIDR- Netzwerks in das entsprechende Feld erfolgen.


Nach Bestätigung der erfolgreichen Dateneingabe müssen Sie mit der Schaltfläche Zurück zur Seite mit der Liste der Netzwerke zurückkehren. In diesem Fall kann die grundlegende Netzwerkkonfiguration als vollständig betrachtet werden.

Hosts verbinden


  1. Zuerst müssen Sie den ZeroTier One-Dienst auf dem Knoten installieren, den der Benutzer mit dem Netzwerk verbinden möchte.

    Was ist ZeroTier One?
    ZeroTier One ist ein Dienst, der auf Laptops, Desktops, Servern, virtuellen Maschinen und Containern ausgeführt wird und über einen virtuellen Netzwerkport wie einen VPN-Client Verbindungen zu einem virtuellen Netzwerk herstellt.

    Nach der Installation und dem Starten des Dienstes können Sie mit den 16-stelligen Adressen eine Verbindung zu virtuellen Netzwerken herstellen. Jedes Netzwerk sieht aus wie ein virtueller Netzwerkanschluss im System, der sich wie ein normaler Ethernet-Anschluss verhält.

    Links zu Distributionen sowie Installationsbefehle finden Sie auf der Herstellerseite .

    Sie können den installierten Dienst über das Befehlszeilenterminal (CLI) mit Administrator- / Root-Rechten verwalten. Unter Windows / MacOS auch über die grafische Oberfläche. Unter Android / iOS nur über die GUI.
  2. Überprüfen Sie den Erfolg der Installation des Dienstes:

    CLI:

    zerotier-cli status 

    Ergebnis:

    200 info ebf416fac1 1.4.6 ONLINE
    GUI:

    Die Tatsache seiner Anwendungsoperation und das Vorhandensein einer Zeile mit der Knoten-ID mit der Knotenadresse.
  3. Knoten mit dem Netzwerk verbinden:

    CLI:

     zerotier-cli join <Network ID> 

    Ergebnis:

    200 join OK

    GUI:

    Windows: Klicken Sie mit der rechten Maustaste auf das ZeroTier One- Symbol in der Taskleiste und wählen Sie - Netzwerk beitreten .


    MacOS: Starten Sie die ZeroTier One- App im Leistenmenü , sofern sie nicht bereits ausgeführt wird. Klicken Sie auf das Symbol ⏁ und wählen Sie Netzwerk beitreten .

    Android / iOS: + (plus Bild) in der Anwendung


    Geben Sie in das angezeigte Feld die in der Benutzeroberfläche des Netzwerkcontrollers angegebene Netzwerk-ID ein und klicken Sie auf Netzwerk beitreten / hinzufügen .
  4. Zuweisen einer IP-Adresse zu einem Host
    Nun kehren wir zum Netzwerk-Controller zurück und gehen auf der Seite mit der Liste der Netzwerke zum Mitglieder- Link. Wenn Sie auf dem Bildschirm ein ähnliches Bild wie dieses sehen, bedeutet dies, dass Ihr Netzwerkcontroller eine Anforderung zur Bestätigung der Netzwerkverbindung vom verbundenen Knoten erhalten hat.


    Auf dieser Seite belassen wir alles so wie es ist und gehen über den IP-Zuweisungslink zur Zielseite des IP-Adressknotens:


    Nachdem Sie die Adresse zugewiesen haben, kehren Sie mit der Schaltfläche Zurück zur Seite der Liste der verbundenen Knoten zurück, setzen den Namen - Mitgliedsname und aktivieren das Kontrollkästchen für die Autorisierung des Knotens im Netzwerk - Autorisiert . Übrigens ist dieses Kontrollkästchen sehr praktisch, um in Zukunft die Verbindung zum Host-Netzwerk zu trennen / herzustellen.


    Speichern Sie die Änderungen mit der Schaltfläche Aktualisieren .
  5. Überprüfen des Verbindungsstatus des Knotens zum Netzwerk:
    Um den Verbindungsstatus auf dem Knoten selbst zu überprüfen, führen wir Folgendes aus:
    CLI:

     zerotier-cli listnetworks 

    Ergebnis:

    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24

    GUI:

    Netzwerkstatus Muss in Ordnung sein

    Wiederholen Sie die Schritte 1 bis 5 für jeden Knoten, um die verbleibenden Knoten zu verbinden.

Überprüfen Sie die Netzwerkverbindung der Knoten


Dazu führe ich den Befehl ping <IP-Adresse eines anderen Netzwerkknotens> auf dem mit dem Netzwerk verbundenen Gerät aus, das ich derzeit steuere.


Auf dem Screenshot des Web-GUI-Controllers sehen Sie drei mit dem Netzwerk verbundene Knoten:

  1. ZTNCUI - 10.10.10.1 - Mein Netzwerkcontroller mit GUI-VDS in einem der RuVDS-DCs. Für die normale Arbeit muss es nicht zum Netzwerk hinzugefügt werden, aber ich habe es getan, weil ich den Zugriff auf das Webinterface von außen blockieren möchte. Dazu später mehr.
  2. MyComp - 10.10.10.2 - Mein Arbeitscomputer ist ein physischer PC
  3. Backup - 10.10.10.3 - VDS in einem anderen DC.

Daher überprüfe ich von meinem Arbeitscomputer aus die Verfügbarkeit anderer Knoten mit den Befehlen:

 ping 10.10.10.1 

Pinging 10.10.10.1 with 32 bytes of data:
Reply from 10.10.10.1: bytes=32 time=14ms TTL=64
Reply from 10.10.10.1: bytes=32 time=4ms TTL=64
Reply from 10.10.10.1: bytes=32 time=7ms TTL=64
Reply from 10.10.10.1: bytes=32 time=2ms TTL=64

Ping statistics for 10.10.10.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 14ms, Average = 6ms


 ping 10.10.10.3 

Pinging 10.10.10.3 with 32 bytes of data:
Reply from 10.10.10.3: bytes=32 time=15ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Reply from 10.10.10.3: bytes=32 time=8ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64

Ping statistics for 10.10.10.3:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 15ms, Average = 7ms


Der Benutzer hat das Recht, andere Tools zum Überprüfen der Verfügbarkeit von Knoten im Netzwerk zu verwenden, die beide in das Betriebssystem integriert sind, wie z. B. NMAP, Advanced IP Scanner usw.

Verstecken Sie den Zugriff auf die GUI des Netzwerkcontrollers von außen.


Im Allgemeinen kann ich die Wahrscheinlichkeit eines nicht autorisierten Zugriffs auf den VDS, auf dem sich mein Netzwerkcontroller befindet, mithilfe der Firewall im persönlichen Konto von RuVDS verringern. Bei diesem Thema handelt es sich eher um einen separaten Artikel. Daher werde ich hier zeigen, wie der Zugriff auf die Controller-GUI nur über das in diesem Artikel erstellte Netzwerk möglich ist.

Stellen Sie dazu über SSH eine Verbindung zu dem VDS her, auf dem sich die Steuerung befindet. Öffnen Sie die Konfigurationsdatei mit dem Befehl:

 nano /opt/key-networks/ztncui/.env 

In der sich öffnenden Datei müssen Sie nach der Zeile „HTTPS_PORT = 3443“, die die Adresse des Ports enthält, an dem die GUI geöffnet wird, eine zusätzliche Zeile mit der Adresse hinzufügen, an der die GUI geöffnet wird. In meinem Fall ist dies HTTPS_HOST = 10.10.10.1.

Speichern Sie anschließend die Datei

trl+C
Y
Enter


und führen Sie den Befehl aus:

 systemctl restart ztncui 

Und das war's, jetzt ist die GUI meines Netzwerkcontrollers nur für Netzwerkknoten 10.10.10.0.24 verfügbar.

Anstelle einer Schlussfolgerung


Damit möchte ich den ersten Teil des praktischen Leitfadens zum Erstellen virtueller Netzwerke auf der Basis von ZeroTier beenden. Warten auf Ihre Kommentare.

In der Zwischenzeit, um die Zeit bis zur Veröffentlichung des nächsten Teils zu vertreiben, in dem ich Ihnen erklären werde, wie Sie ein virtuelles Netzwerk mit einem physischen kombinieren, wie Sie einen "Road Warrior" -Modus organisieren und etwas anderes, empfehle ich Ihnen, Ihr eigenes virtuelles Netzwerk mithilfe eines privaten Netzwerkcontrollers mit zu organisieren VDS-basierte GUI vom Marktplatz auf der RUVDS- Website . Außerdem gibt es für alle Neukunden eine kostenlose Probezeit von 3 Tagen!

PS Ja! Ich hätte es fast vergessen! Sie können einen Knoten mit dem Befehl in der CLI dieses Knotens aus dem Netzwerk entfernen.

 zerotier-cli leave <Network ID> 

200 leave OK

oder den Befehl Löschen in der Client-GUI auf dem Knoten.

Source: https://habr.com/ru/post/de485914/


All Articles