
Når jeg fortsætter historien om ZeroTier, fra teorien præsenteret i artiklen “Intelligent Ethernet-switch til planeten Jorden”, går jeg videre til praksis, hvor:
- Vi opretter og konfigurerer en privat netværkscontroller
- Vi opretter et virtuelt netværk
- Vi konfigurerer og forbinder noder til det
- Vi tester netværksforbindelsen imellem dem
- Vi lukker adgangen til GUI'en for netværkscontrolleren udefra
Netværkscontroller
Som allerede nævnt tidligere, for at oprette virtuelle netværk, administrere dem samt forbinde noder, har brugeren brug for en netværkscontroller, hvis grafiske grænseflade (GUI) findes i to former:
Muligheder for ZeroTier GUI
- Den første fra ZeroTier-udvikleren, tilgængelig som en offentlig cloud-løsning, der tilbydes i en SaaS-model med fire abonnementsplaner, herunder en gratis, men begrænset i antallet af styrede enheder og supportniveauer
- Den anden - fra en uafhængig udvikler, lidt forenklet i funktionalitet, men tilgængelig som en privat open source-løsning til brug on-premise eller på cloud-ressourcer.
I min praksis har jeg brugt begge og endte alligevel med at vælge den anden. Årsagen hertil var udviklerens advarsler.
“Netværkscontrollerne fungerer som certifikationscentre for ZeroTier virtuelle netværk. Filer, der indeholder controllerens hemmelige nøgler, skal opbevares omhyggeligt og sikres pålideligt. Kompromittering af dem giver uautoriserede angribere mulighed for at oprette bedrageriske netværkskonfigurationer, mens tabet af dem fører til tab af evnen til at kontrollere og administrere netværket, hvilket i praksis gør det ubrugeligt.”
Og også, tegn på egen IKT-paranoia 🙂
- Selv hvis CheburNet kommer — jeg skal have adgang til min netværkscontroller;
- Netværkscontrolleren bør kun bruges af mig. Hvis nødvendigt, giver jeg adgang til mine betroede personer;
- Der skal være mulighed for at begrænse adgangen til netværkscontrolleren udefra.
At stoppe ved, hvordan man implementerer netværkscontrolleren og GUI'en for den på on-premise fysiske eller virtuelle ressourcer, ser jeg ikke som meningsfuldt i denne artikel. Der er tre grunde til det:
- der vil blive flere ord end planlagt
- det er allerede beskrevet er der blevet forklaret på GitHub af GUI-udvikleren
- artiklens emne handler om noget andet
Derfor, ved at vælge den nemmeste vej, vil jeg i denne fortælling bruge en netværk controller med GUI baseret på VDS, oprettet fra skabelonen, venligt udviklet af mine kolleger fra ProHoster.
Første opsætning
Efter oprettelsen server fra den angivne skabelon får brugeren adgang til Web-GUI-kontrolleren via browseren ved at henvende sig til adressen httрs://:3443

By default server indeholder allerede et forudoprettet selvsigneret TLS/SSL-certifikat. For mig er det nok, da jeg lukker adgangen til den udefra. For dem, der ønsker at bruge andre typer certifikater, er der installationsvejledning er tilgængelig på GitHub af GUI-udvikleren.
Ved første login til systemet Log ind med standard login og adgangskode — admin og adgangskode:

Tilbyder det at ændre standardadgangskoden til en brugerdefineret

Jeg gør det lidt anderledes — jeg ændrer ikke adgangskoden for den eksisterende bruger, men opretter en ny — Opret bruger.
Sætter navnet på den nye bruger — Brugernavn:
Sætter ny adgangskode — Indtast ny adgangskode:
Bekræft ny adgangskode — Indtast adgangskode igen:
Indtastede tegn er følsomme over for store og små bogstaver — vær forsigtig!
Afkrydsningsfeltet for at bekræfte ændringen af adgangskoden ved næste login — Ændre adgangskode ved næste login: markerer jeg ikke.
For at bekræfte de indtastede data trykker jeg på Indstil adgangskode:

Derefter: logger jeg ind igen — Log ud / Log ind, allerede med den nye brugers loginoplysninger:

Derefter går jeg til fanen brugere — Users og sletter brugeren admin, ved at klikke på papirkurvsikonet, som ligger til venstre for hans navn.

Fremover kan adgangskoden for brugeren ændres ved at klikke enten på hans navn eller på indstil adgangskode.
Oprettelse af virtuel netværk
For at oprette et virtuelt netværk skal brugeren gå til fanen Tilføj netværk. For punkt Bruger kan dette gøres via siden Home — hovedsiden for Web-GUI, hvor ZeroTier-adressen til denne netværkskontroller vises, og der er et link til siden med listen over netværk, der er oprettet via den.

På siden Tilføj netværk brugeren tildeler navnet til det netværk, der oprettes.

Ved at anvende de indtastede data — Opret netværk bliver brugeren sendt til en side med listen over netværk, hvor følgende er angivet:
Netværksnavn — netværksnavnet som et link, der kan ændres ved at klikke på det
Netværks-ID — netværksidentifikatoren
detalje — linket til siden med netværkets detaljerede parametre
nem opsætning — link to the page for easy setup
medlemmer — link to the node management page

For further setup, go to the link nem opsætning. On the opened page, the user specifies the range of IPv4 addresses for the created network. This can be done automatically by clicking the button Generate network address or manually by entering the network mask in the corresponding field CIDR.

Upon confirming successful data entry, return to the page with the list of networks using the Back button. The main network setup can be considered complete.
Connecting network nodes
- First, on the node that the user wants to connect to the network, it is necessary to install the ZeroTier One service.What is ZeroTier One?ZeroTier One — a service running on laptops, desktops, servers, virtual machines, and containers that provides connections to a virtual network through a virtual network port, similar to a VPN client. After installation and starting the service, you can connect to virtual networks using their 16-digit addresses. Each network appears as a virtual network port in the system that behaves like a regular Ethernet port.
Links to distributions and installation commands can be found on the manufacturer's page. The installed service can be managed through the command line interface (CLI) with admin/root rights. In Windows/MacOS, additionally via the graphical interface. In Android/iOS only via GUI. - Checking the success of the service installation:CLI:
zerotier-cli statusResultat:
200 info ebf416fac1 1.4.6 ONLINE
GUI:The very fact of its application running and the presence of a line with Node ID with the node's address.
- Connecting the node to the network:CLI:
zerotier-cli joinResultat:
200 join OKGUI:
Windows: by right-clicking on the icon ZeroTier One in the system tray and selecting the option — Join Network.

MacOS: Launch the application ZeroTier One in the bar menu, if it is not already running. Click on the icon ⏁ and select Join Network.Android/iOS: + (plus image) in the app

In the field that appears, enter the one specified in the GUI network controller Netværks-ID, and click Join / Add Network. - Assigning an IP address to the node
Now we return to the network controller and on the page with the network list, go to the link medlemmer. If you see an image similar to this on the screen — it means your network controller has received a request to confirm the connection to the network from the connecting node.
On this page, we will leave everything as it is for now and follow the link IP-tildele vi går til destinationssiden for IP-adresseknuden:
Efter tildeling af adressen, klik på knappen Tilbage vi vender tilbage til siden med listen over tilsluttede knuder og angiver navnet — Medlemsnavn og markerer afkrydsningsfeltet for at autorisere knuden i netværket — Autoriseret. For øvrigt er dette afkrydsningsfelt meget praktisk til at frakoble/tilkoble knuden til netværket senere.
Vi gemmer ændringerne ved at bruge knappen Opdater. - Kontrol af knudens tilslutningsstatus til netværket:
For at tjekke tilslutningsstatus på selve knuden udfører vi:
CLI:zerotier-cli listnetworksResultat:
200 liste netværk
200 liste netværk 2da06088d9f863be Mit_1. VLAN be:88:0c:cf:72:a1 OK PRIVAT ethernet_32774 10.10.10.2/24
GUI:Netværkets status skal være OK
For at forbinde de øvrige knuder gentager vi operationer 1-5 for hver af dem.
Kontrol af netværksforbindelse mellem knuder
Jeg gør dette ved at udføre kommandoen ping på den enhed, der i øjeblikket er tilsluttet netværket og som jeg styrer.

På screenshotet af Web-GUI'en til controlleren kan du se tre tilsluttede knuder:
- ZTNCUI — 10.10.10.1 — min netværkscontroller med GUI — VDS i et af ProHosters datacentre. For almindelig drift er der ikke behov for at tilføje den til netværket, men jeg har gjort det, da jeg ønsker at begrænse adgangen til webgrænsefladen udefra. Mere om dette senere.
- MyComp — 10.10.10.2 — min arbejdscomputer — en fysisk PC
- Backup — 10.10.10.3 — en VDS i et andet datacenter.
Derfor kontrollerer jeg tilgængeligheden af de andre knuder fra min arbejdscomputer med kommandoerne:
ping 10.10.10.1Pinger 10.10.10.1 med 32 bytes data:
Svar fra 10.10.10.1: bytes=32 tid=14ms TTL=64
Svar fra 10.10.10.1: bytes=32 tid=4ms TTL=64
Svar fra 10.10.10.1: bytes=32 tid=7ms TTL=64
Svar fra 10.10.10.1: bytes=32 tid=2ms TTL=64
Ping-statistik for 10.10.10.1:
Pakker: Sendt = 4, Modtaget = 4, Tabt = 0 (0% tab),
Cirka rundturstider i millisekunder:
Minimum = 2ms, Maksimum = 14ms, Gennemsnit = 6ms
ping 10.10.10.3Pinger 10.10.10.3 med 32 byte data:
Svar fra 10.10.10.3: bytes=32 tid=15ms TTL=64
Svar fra 10.10.10.3: bytes=32 tid=4ms TTL=64
Svar fra 10.10.10.3: bytes=32 tid=8ms TTL=64
Svar fra 10.10.10.3: bytes=32 tid=4ms TTL=64
Ping-statistik for 10.10.10.3:
Pakker: Sendt = 4, Modtaget = 4, Tabt = 0 (0% tab),
Cirka rundturstider i millisekunder:
Minimum = 4ms, Maksimum = 15ms, Gennemsnit = 7ms
Brugeren har ret til at bruge andre værktøjer til at tjekke tilgængelighed af knuder i netværket, både indbyggede i OS samt værktøjer som NMAP, Advanced IP Scanner osv.
Vi skjuler adgangen til GUI'en for netværkscontrolleren udefra.
Generelt kan jeg mindske risikoen for uautoriseret adgang til den VDS, hvor min netværkscontroller befinder sig, ved hjælp af firewall i ProHosters kontrolpanel. Dette emne er mere til en separat artikel. Derfor, her viser jeg hvordan man sikrer adgang til controllerens GUI kun fra det netværk, som jeg har oprettet i denne artikel.
For dette formål er det nødvendigt, efter at have tilsluttet via SSH til den VDS, hvor controlleren er placeret, at åbne konfigurationsfilen ved at bruge kommandoen:
nano /opt/key-networks/ztncui/.envI den åbne fil, efter linjen «HTTPS_PORT=3443», som indeholder adressen til den port, hvor GUI åbnes, skal der tilføjes en ekstra linje med adressen, hvor GUI vil åbne — i mit tilfælde er det HTTPS_HOST=10.10.10.1.
Derefter gemmer jeg filen
Ctrl+C
Y
Enter
og udfører kommandoen:
systemctl restart ztncuiOg det er det, nu er GUI'en for min netværkscontroller kun tilgængelig for noder i netværket 10.10.10.0/24.
Afslutning
Hermed vil jeg afslutte den første del af den praktiske guide til oprettelse af virtuelle netværk baseret på ZeroTier. Jeg ser frem til jeres kommentarer.
Indtil videre, for at forkorte tiden indtil offentliggørelsen af den næste del, hvor jeg vil vise, hvordan man forbinder det virtuelle netværk med det fysiske, hvordan man organiserer 'road warrior'-tilstand og noget mere, foreslår jeg, at I prøver at organisere jeres eget virtuelle netværk ved hjælp af en privat netværkscontroller med GUI baseret på VDS fra markedspladsen ved websitet ProHoster. Desuden gælder der en gratis prøveperiode på 3 dage for alle nye kunder!
P.S. Ja! Jeg ville næsten glemme det! Du kan fjerne en node fra netværket med kommandoen i CLI for denne node.
zerotier-cli leave200 leave OK
eller med kommandoen Delete i GUI-klienten på noden.
-> Introduktion. Teoretisk del. Intelligent Ethernet-switch til planeten Jorden
-> Praktisk guide til opbygning af virtuelle netværk. Del 1
-> Praktisk guide til opbygning af virtuelle netværk. Del 2
Kilde: habr.com





