
Continuând povestea despre ZeroTier, de la teoria expusă în articolul „Comutator Ethernet inteligent pentru planeta Pământ”, trec la practică, în care:
- Vom crea și configura un controler de rețea privat
- Vom crea o rețea virtuală
- Vom configura și vom conecta nodurile
- Vom verifica conectivitatea rețelei între ele
- Vom închide accesul la GUI-ul controlerului de rețea din exterior
Controler de rețea
Așa cum s-a menționat anterior, pentru a crea rețele virtuale, a le gestiona și a conecta noduri, utilizatorului îi este necesar un controler de rețea, interfața grafică (GUI) pentru acesta existând în două variante:
Opțiuni ZeroTier GUI
- Una de la dezvoltatorul ZeroTier, disponibilă ca o soluție cloud publică, oferită în model SaaS, cu patru planuri de abonament, inclusiv unul gratuit, dar limitat în numărul de dispozitive gestionate și nivelul de suport
- A doua — de la un dezvoltator independent, ceva simplificată în funcționalitate, dar disponibilă ca o soluție open source privată, pentru utilizare on-premise sau pe resurse cloud.
În practica mea, am folosit ambele și, în cele din urmă, m-am oprit pe a doua. Cauza fiind avertizările dezvoltatorului.
„Controlerele de rețea servesc ca centre de certificare pentru rețelele virtuale ZeroTier. Fișierele care conțin cheile secrete ale controlerului trebuie păstrate cu strictețe și arhivate în siguranță. Compromiterea lor permite atacatorilor neautorizați să creeze configurații frauduloase ale rețelelor, iar pierderea — conduce la pierderea capacității de a controla și gestiona rețeaua, făcând-o practic inutilizabilă.”
Și, de asemenea, semnele propriei paranoiși legate de securitate 🙂
- Chiar dacă vine CheburNet — trebuie să am acces la controlerul meu de rețea;
- Controlerul de rețea trebuie să fie folosit doar de mine. Dacă este necesar, oferind acces persoanelor în care am încredere;
- Trebuie să existe posibilitatea de a restricționa accesul la controlerul de rețea din exterior.
Nu văd sens în a mă opri separat asupra modului de desfășurare a controlerului de rețea și a GUI-ului acestuia pe resurse fizice sau virtuale on-premise în acest articol. Și pentru asta sunt 3 motive:
- apare mai mult text decât planificam
- despre asta deja s-a vorbit pe GitHub-ul dezvoltatorului GUI
- articolul are ca temă altceva
Așadar, alegând calea cu cea mai mică rezistență, voi folosi în această narațiune un controler de rețea cu GUI bazat pe VDS, creat dintr-un șablon, generos dezvoltat de colegii mei de la ProHoster.
Configurare inițială
După crearea server din șablonul specificat, utilizatorul poate accesa Web-GUI-ul controlerului prin browser, accesând adresa httрs://:3443

Implicit serverul deja conține un certificat TLS/SSL autofirmat pre-creat. Pentru mine, acest lucru este suficient, deoarece restricționez accesul la el din exterior. Pentru cei care doresc să folosească alte tipuri de certificate, există instrucțiuni de instalare pe GitHub-ul dezvoltatorului GUI.
La prima autentificare a utilizatorului în sistem Autentificare cu numele de utilizator și parola implicite — admin și parola:

Acesta propune să schimbe parola implicită cu una personalizată

Fac puțin altfel — nu schimb parola utilizatorului existent, ci creez unul nou — Creare utilizator.
Stabilesc numele noului utilizator — Nume utilizator:
Stabilesc parola nouă — Introduceți parola nouă:
Confirm parola nouă — Reintroduceți parola:
Caracterele introduse sunt sensibile la majuscule — aveți grijă!
Culoarea de confirmare a schimbării parolei la următoarea autentificare — Schimbă parola la următoarea autentificare: nu o bifez.
Pentru a confirma datele introduse, apas pe Setează parola:

Apoi: mă deconectez — Deconectare / Autentificare, deja cu datele de autentificare ale noului utilizator:

Apoi, trec la tab-ul utilizatori — Utilizatori și șterg utilizatorul admin, făcând clic pe pictograma coșului de gunoi aflată la stânga numelui său.

Ulterior, pentru a schimba parola utilizatorului, se poate face clic fie pe numele său, fie pe setare parolă.
Crearea unei rețele virtuale
Pentru a crea o rețea virtuală, utilizatorul trebuie să acceseze tab-ul Adaugă rețea. Din punctul Utilizator acest lucru se poate face prin pagina Acasă — pagina principală a Web-GUI, pe care este afișată adresa ZeroTier a acestui controler de rețea și există un link către pagina cu lista rețelelor create prin acesta.

Pe pagina Adaugă rețea utilizatorul alocă un nume rețelei pe care o creează.

Atunci când datele introduse sunt aplicate — Creează rețea utilizatorul ajunge pe pagina cu lista rețelelor, unde sunt indicate:
Numele rețelei — numele rețelei sub formă de link, la care se poate accesa pentru a-l schimba
ID rețea — identificatorul rețelei
detaliu — link către pagina cu detaliile rețelei
configurare ușoară — link to the page for easy configuration
members — link to the node management page

For further configuration, go to the link configurare ușoară. On the opened page, the user sets 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, you need to return to the network list page using the Back button. The main network configuration can be considered complete at this point.
Connecting network nodes
- First, the user needs to install the ZeroTier One service on the node they want to connect to the network.What is ZeroTier One?ZeroTier One — a service running on laptops, desktop computers, servers, virtual machines, and containers that ensures connections to a virtual network through a virtual network port, similar to a VPN client. After installation and launching the service, you can connect to virtual networks using their 16-character addresses. Each network appears as a virtual network port in the system, behaving like a regular Ethernet port.
Links to the distributions and installation commands can be found on the manufacturer's page. You can manage the installed service via the command line (CLI) with admin/root rights. In Windows/MacOS also through a graphical interface. In Android/iOS only via GUI. - Checking the success of the service installation:CLI:
zerotier-cli statusRezultatul:
200 info ebf416fac1 1.4.6 ONLINE
GUI:The mere fact of the application's operation and the presence of a line with Node ID with the address of the node.
- Connecting the node to the network:CLI:
zerotier-cli joinRezultatul:
200 join OKGUI:
Windows: by right-clicking the icon ZeroTier One in the system tray and selecting the — Join Network.

MacOS: Launch the application ZeroTier One in the bar menu, if 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 provided in the GUI of the network controller ID rețea, and click Join / Add Network. - Assigning an IP address to the node
Now we return to the network controller and on the network list page, go to the link members. If you see an image similar to this on the screen — it means your network controller has received a request to confirm connection to the network from the connecting node.
On this page, let's leave everything as it is for now and follow the link IP assignment mergem pe pagina destinată adresei IP:
După atribuirea adresei, apăsăm pe butonul Spate ne întoarcem la pagina listei de noduri conectate și setăm numele — Numele membrului și bifăm căsuța pentru autorizarea nodului în rețea — Authorized. Apropo, această căsuță este foarte convenabilă pentru deconectarea/conectarea nodului de la rețea ulterior.
Salvăm modificările cu ajutorul butonului Reîmprospătare. - Verificarea statusului conexiunii nodului la rețea:
Pentru a verifica statusul conexiunii pe nodul în sine, executăm:
CLI:zerotier-cli listnetworksRezultatul:
200 listnetworks
200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24
GUI:Statusul rețelei trebuie să fie OK
Pentru a conecta restul nodurilor, repetăm operațiile 1-5 pentru fiecare dintre ele.
Verificarea conectivității nodurilor
Fac aceasta prin executarea comenzii ping pe dispozitivul conectat la rețea, pe care momentan îl administrez.

În captura de ecran a interfeței Web-GUI a controlerului, se pot vedea trei noduri conectate la rețea:
- ZTNCUI — 10.10.10.1 — controlerul meu de rețea cu GUI — VDS într-unul dintre DC-urile ProHoster. Pentru funcționarea normală, nu este necesar să-l adaug la rețea, dar am făcut-o, deoarece doresc să restricționez accesul la interfața web din exterior. Am să explic mai târziu.
- MyComp — 10.10.10.2 — computerul meu de lucru — PC fizic
- Backup — 10.10.10.3 — VDS în alt DC.
De aceea, de pe computerul meu de lucru, verific accesibilitatea celorlalte noduri cu comenzile:
ping 10.10.10.1Pingând 10.10.10.1 cu 32 de octeți de date:
Răspuns de la 10.10.10.1: octeți=32 timp=14ms TTL=64
Răspuns de la 10.10.10.1: octeți=32 timp=4ms TTL=64
Răspuns de la 10.10.10.1: octeți=32 timp=7ms TTL=64
Răspuns de la 10.10.10.1: octeți=32 timp=2ms TTL=64
Statistici ping pentru 10.10.10.1:
Pachete: Trimise = 4, Primite = 4, Pierdute = 0 (0% pierdere),
Timpuri aproximative de întoarcere în milisecunde:
Minim = 2ms, Maxim = 14ms, Medie = 6ms
ping 10.10.10.3Ping 10.10.10.3 cu 32 de biți de date:
Răspuns de la 10.10.10.3: bytes=32 time=15ms TTL=64
Răspuns de la 10.10.10.3: bytes=32 time=4ms TTL=64
Răspuns de la 10.10.10.3: bytes=32 time=8ms TTL=64
Răspuns de la 10.10.10.3: bytes=32 time=4ms TTL=64
Statistici ping pentru 10.10.10.3:
Pachete: Trimise = 4, Primite = 4, Pierdute = 0 (0% pierdere),
Timpuri aproximative de întoarcere în milisecunde:
Minim = 4ms, Maxim = 15ms, Medie = 7ms
Utilizatorul are dreptul să utilizeze alte instrumente de verificare a accesibilității nodurilor în rețea, atât cele încorporate în OS, cât și instrumente precum NMAP, Advanced IP Scanner etc.
Restricționăm accesul la GUI-ul controlerului de rețea din exterior.
De fapt, pentru a reduce probabilitatea accesului neautorizat la VDS, pe care se află controlerul meu de rețea, pot folosi un firewall în cabinetul personal ProHoster. Această temă ar merita o articol separat. De aceea, aici voi arăta cum să asigur accesul la GUI-ul controlerului doar din rețeaua pe care am creat-o în acest articol.
Pentru aceasta, trebuie să mă conectez prin SSH la VDS pe care se află controlerul, să deschid fișierul de configurare cu comanda:
nano /opt/key-networks/ztncui/.envÎn fișierul deschis, după linia „HTTPS_PORT=3443”, care conține adresa portului pe care se deschide GUI, trebuie adăugată o linie suplimentară cu adresa pe care va fi deschis GUI – în cazul meu, aceasta este HTTPS_HOST=10.10.10.1.
Apoi, voi salva fișierul
Ctrl+C
Y
Enter
și voi execuța comanda:
systemctl restart ztncuiȘi asta e tot, acum GUI-ul controlerului meu de rețea este accesibil numai pentru nodurile rețelei 10.10.10.0/24.
În concluzie
Aici vreau să închei prima parte a ghidului practic pentru crearea de rețele virtuale bazate pe ZeroTier. Aștept comentariile voastre.
Între timp, pentru a economisi timpul până la publicarea următoarei părți, în care voi explica cum să combinăm rețeaua virtuală cu cea fizică, cum să organizăm modul „road warrior” și câteva alte lucruri, vă propun să încercați să vă organizați propria rețea virtuală folosind un controler de rețea privat cu GUI pe baza VDS din marketplace-ul de la site ProHoster. Mai ales că toți clienții noi beneficiază de o perioadă de testare gratuită – 3 zile!
P.S. Da! Aproape uitasem! Pentru a șterge un nod din rețea, se poate folosi comanda din CLI a acestui nod.
zerotier-cli leave200 leave OK
sau comanda Delete din GUI-ul clientului pe nod.
-> Introducere. Partea teoretică. Switch Ethernet inteligent pentru planeta Pământ
-> Ghid practic pentru construirea rețelelor virtuale. Partea 1
-> Ghid practic pentru construirea rețelelor virtuale. Partea 2
Sursa: habr.com





