
Continuando il racconto su ZeroTier, dalla teoria esposta nell'articolo «Switch Ethernet intelligente per il pianeta Terra», passo alla pratica, dove:
- Creeremo e configureremo un controller di rete privato
- Creeremo una rete virtuale
- Configureremo e collegheremo i nodi ad essa
- Verificheremo la connettività di rete tra di loro
- Chiuderemo l'accesso all'interfaccia GUI del controller di rete dall'esterno
Controller di rete
Come già detto in precedenza, per creare reti virtuali, gestirle e collegare i nodi, è necessario un controller di rete, la cui interfaccia grafica (GUI) esiste in due forme:
Opzioni ZeroTier GUI
- Una fornita dallo sviluppatore di ZeroTier, disponibile come soluzione cloud pubblica, offerta con il modello SaaS, con quattro piani di abbonamento, incluso uno gratuito ma limitato nel numero di dispositivi gestiti e nel livello di supporto
- La seconda — fornita da un sviluppatore indipendente, un po' semplificata nelle funzionalità, ma disponibile come soluzione open source privata, per utilizzo on-premise o su risorse cloud.
Nella mia esperienza ho utilizzato entrambi e alla fine ho optato per il secondo. Il motivo è stata la raccomandazione dello sviluppatore.
«I controller di rete fungono da centri di certificazione per le reti virtuali ZeroTier. I file contenenti le chiavi segrete del controller devono essere custoditi con cura e archiviati in modo sicuro. La loro compromissione consente a malintenzionati non autorizzati di creare configurazioni di rete fraudolente, mentre la loro perdita comporta la perdita della capacità di controllare e gestire la rete, rendendola di fatto inutilizzabile»
E anche, segni di una mia paranoia sulla sicurezza informatica 🙂
- Anche se arriva il CheburNet, devo mantenere l'accesso al mio controller di rete;
- Il controller di rete deve essere utilizzato solo da me. Se necessario, concedendo accesso alle persone di fiducia;
- Deve esserci la possibilità di limitare l'accesso al controller di rete dall'esterno.
Non ha molto senso soffermarsi su come implementare un controllore di rete e il suo GUI su risorse fisiche o virtuali on-premises, ci sono tre motivi per questo:
- il numero di parole risulterà maggiore del previsto
- di questo ne abbiamo già parlato sul GitHub del sviluppatore del GUI l'argomento dell'articolo è diverso
- il tema dell'articolo riguarda un altro argomento
Quindi, scegliendo la via del minor sforzo, utilizzerò in questa narrazione un controllore di rete con GUI basato su VDS, creato da un modello, gentilmente sviluppato dai miei colleghi di ProHoster.
Impostazione iniziale
Dopo aver creato server dal modello specificato, l'accesso al Web-GUI del controllore è disponibile attraverso il browser, visitando l'indirizzo https://:3443

Di default un server include già un certificato TLS/SSL autofirmato preconfigurato. Questo è sufficiente per me poiché limito l'accesso dall'esterno. Per coloro che desiderano utilizzare altri tipi di certificati, ci sono istruzioni per l'installazione sul GitHub dello sviluppatore del GUI.
Al primo accesso dell'utente nel sistema Accesso con le credenziali predefinite di login e password — admin e password:

Propone di cambiare la password predefinita in una personalizzata

Adotto un approccio diverso: non cambio la password dell'utente esistente, ma creo un nuovo utente. Crea utente.
Imposto il nome del nuovo utente: Nome utente:
Imposto la nuova password: Inserisci nuova password:
Confermo la nuova password: Reinserisci password:
I caratteri inseriti sono case-sensitive: presta attenzione!
Checkbox per confermare il cambio password al prossimo accesso: Cambia password al prossimo accesso: non seleziono.
Per confermare i dati inseriti, clicco su Imposta password:

Poi: eseguo il logout: Logout / Accesso, già con le credenziali del nuovo utente:

Successivamente vanno in scheda utenti: Utenti e cancellano l'utente admin, cliccando sull'icona del cestino a sinistra del suo nome.

In seguito, è possibile cambiare la password dell'utente cliccando sul suo nome oppure su imposta password.
Creazione di una rete virtuale
Per creare una rete virtuale, l'utente deve andare nella scheda Aggiungi rete. Questo può essere fatto dalla pagina Utente nella pagina Home — la pagina principale del Web-GUI, che mostra l'indirizzo ZeroTier di questo controller di rete e contiene un link alla pagina dell'elenco delle reti create attraverso di esso.

Nella pagina Aggiungi rete l'utente assegna un nome alla rete recentemente creata.

Applicando i dati inseriti — Crea rete l'utente accede a una pagina con l'elenco delle reti, dove sono indicati:
Nome rete — il nome della rete come link, al quale si può accedere per modificarlo
ID Rete — l'identificativo della rete
dettagli — link alla pagina con i parametri dettagliati della rete
installazione facile — link alla pagina per una configurazione semplice
membri — link alla pagina di gestione dei nodi

Per ulteriori configurazioni, cliccare sul link installazione facile. Nella pagina aperta, l'utente può impostare l'intervallo IPv4 — indirizzi per la rete che si sta creando. È possibile farlo automaticamente, premendo il pulsante Genera indirizzo di rete oppure manualmente, inserendo nel campo appropriato la maschera di rete CIDR.

Dopo aver confermato l'avvenuto inserimento dei dati, bisogna tornare alla pagina con l'elenco delle reti tramite il pulsante Indietro. In questo modo, la configurazione principale della rete può considerarsi completata.
Collegamento dei nodi della rete
- Per iniziare, nel nodo che l'utente desidera connettere alla rete, è necessario installare il servizio ZeroTier One.Cos'è ZeroTier One?ZeroTier One — un servizio che funziona su laptop, computer desktop, server, macchine virtuali e contenitori, fornendo connessioni a una rete virtuale attraverso una porta di rete virtuale, simile a un client VPN. Dopo l'installazione e l'avvio del servizio, è possibile connettersi alle reti virtuali utilizzando i loro indirizzi a 16 cifre. Ogni rete appare come una porta di rete virtuale nel sistema, comportandosi come una normale porta Ethernet.
I link per i pacchetti e i comandi di installazione possono essere trovati sulla pagina del produttore. La gestione del servizio installato può avvenire tramite il terminale della riga di comando (CLI) con privilegi di amministratore/root. Su Windows/MacOS anche tramite interfaccia grafica. Su Android/iOS solo tramite GUI. - Verifica del successo dell'installazione del servizio:CLI:
zerotier-cli statusRisultato:
200 info ebf416fac1 1.4.6 ONLINE
GUI:La prova della corretta esecuzione dell'applicazione e la presenza della riga con Node ID contenente l'indirizzo del nodo.
- Collegare il nodo alla rete:CLI:
zerotier-cli joinRisultato:
200 join OKGUI:
Windows: cliccando con il tasto destro sull'icona ZeroTier One nella barra delle applicazioni e selezionando l'opzione — Join Network.

MacOS: Avviare l'applicazione ZeroTier One nel menu bar, se non è già in esecuzione. Cliccare sull'icona ⏁ e selezionare Join Network.Android/iOS: + (immagine del segno più) nell'applicazione

Nel campo che appare, inserisci quanto indicato nell'interfaccia grafica del controller di rete ID Rete, e premi Unisciti / Aggiungi rete. - Assegnazione di un indirizzo IP al nodo
Ora torniamo al controller di rete e sulla pagina dell'elenco delle reti clicchiamo sul link membri. Se sullo schermo appare un'immagine simile a questa, significa che il tuo controller di rete ha ricevuto una richiesta di conferma per la connessione alla rete dal nodo collegato.
Su questa pagina lasciamo tutto così com'è e clicchiamo sul link Assegnazione IP andiamo alla pagina di assegnazione dell'indirizzo IP al nodo:
Dopo aver assegnato l'indirizzo, clicca sul pulsante Indietro torniamo alla pagina dell'elenco dei nodi connessi e diamo un nome — Nome membro e spuntiamo la casella per autorizzare il nodo nella rete — Autorizzato. Tra l'altro, questa casella è molto comoda per disconnettere o connettere il nodo alla rete in futuro.
Salviamo le modifiche usando il pulsante Aggiorna. - Controllo dello stato di connessione del nodo alla rete:
Per verificare lo stato della connessione sul nodo stesso, esegui:
CLI:zerotier-cli listnetworksRisultato:
200 elenca reti <nwid> <name> <mac> <status> <type> <dev> <ZT indirizzi assegnati>
200 elenca reti 2da06088d9f863be Il_mio_primo_VLAN be:88:0c:cf:72:a1 OK PRIVATO ethernet_32774 10.10.10.2/24
GUI:Lo stato della rete dovrebbe essere OK
Per collegare gli altri nodi, ripetiamo le operazioni 1-5 per ciascuno di essi.
Verifica della connettività di rete tra i nodi
Io lo faccio eseguendo il comando ping sul dispositivo connesso alla rete che sto attualmente controllando.

Nello screenshot della Web-GUI del controllore si possono vedere tre nodi connessi alla rete:
- ZTNCUI — 10.10.10.1 — il mio controllore di rete con GUI — VDS in uno dei DC di ProHoster. Non è necessario aggiungerlo alla rete per un funzionamento normale, ma l'ho fatto perché voglio chiudere l'accesso all'interfaccia web dall'esterno. Ne parlerò più avanti.
- MyComp — 10.10.10.2 — il mio computer di lavoro — PC fisico
- Backup — 10.10.10.3 — VDS in un altro DC.
Quindi, dal mio computer di lavoro, controllo la disponibilità degli altri nodi con i comandi:
ping 10.10.10.1Ping di 10.10.10.1 con 32 byte di dati:
Risposta da 10.10.10.1: byte=32 tempo=14ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=4ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=7ms TTL=64
Risposta da 10.10.10.1: byte=32 tempo=2ms TTL=64
Statistiche di ping per 10.10.10.1:
Pacchetti: Inviati = 4, Ricevuti = 4, Persi = 0 (0% di perdita),
Tempi di andata e ritorno approssimativi in millisecondi:
Minimo = 2ms, Massimo = 14ms, Medio = 6ms
ping 10.10.10.3Ping di 10.10.10.3 con 32 byte di dati:
Risposta da 10.10.10.3: byte=32 tempo=15ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=4ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=8ms TTL=64
Risposta da 10.10.10.3: byte=32 tempo=4ms TTL=64
Statistiche di ping per 10.10.10.3:
Pacchetti: Inviati = 4, Ricevuti = 4, Persi = 0 (0% di perdita),
Tempi di andata e ritorno approssimativi in millisecondi:
Minimo = 4ms, Massimo = 15ms, Medio = 7ms
L'utente ha il diritto di utilizzare altri strumenti per verificare la disponibilità dei nodi in rete, sia quelli integrati nel sistema operativo che strumenti come NMAP, Advanced IP Scanner, ecc.
Nascondiamo l'accesso alla GUI del controllore di rete dall'esterno.
In generale, per ridurre la possibilità di accesso non autorizzato al VDS su cui si trova il mio controller di rete, posso utilizzare il firewall nel pannello di gestione di ProHoster. Questo è un argomento che meriterebbe un articolo a parte. Qui mostrerò come garantire l'accesso al GUI del controller solo dalla rete che ho creato in questo articolo.
Per fare ciò, è necessario connettersi via SSH al VDS su cui si trova il controller e aprire il file di configurazione con il comando:
nano /opt/key-networks/ztncui/.envNel file aperto, dopo la riga «HTTPS_PORT=3443», che contiene l'indirizzo della porta su cui è aperto il GUI, bisogna aggiungere una linea aggiuntiva con l'indirizzo da cui sarà accessibile il GUI — nel mio caso, è HTTPS_HOST=10.10.10.1.
Poi salverò il file
Сtrl+C
Y
Enter
e eseguirò il comando:
systemctl restart ztncuiEcco fatto, ora il GUI del mio controller di rete è accessibile solo ai nodi della rete 10.10.10.0/24.
In conclusion
Con questo concludo la prima parte della guida pratica sulla creazione di reti virtuali basate su ZeroTier. Attendo i vostri commenti.
Nel frattempo, per passare il tempo fino al rilascio della prossima parte, in cui parlerò di come collegare una rete virtuale a una fisica, di come organizzare la modalità "road warrior" e altro ancora, vi propongo di provare a organizzare la vostra rete virtuale utilizzando un controller di rete privato con GUI basato su VDS dal marketplace di sito ProHoster. E poiché per tutti i nuovi clienti è previsto un periodo di prova gratuito di 3 giorni!
P.S. Sì! Quasi me ne sono dimenticato! Per rimuovere un nodo dalla rete, è possibile utilizzare il comando nel CLI di quel nodo.
zerotier-cli leave200 leave OK
oppure il comando Delete nella GUI del client sul nodo.
-> Introduzione. Parte teorica. Switch Ethernet intelligente per il pianeta Terra
-> Guida pratica alla costruzione di reti virtuali. Parte 1
-> Guida pratica alla costruzione di reti virtuali. Parte 2
Fonte: habr.com





