{"id":3242,"date":"2020-11-27T10:39:37","date_gmt":"2020-11-27T10:39:37","guid":{"rendered":"https:\/\/cloudsurfers.it\/?p=3242"},"modified":"2021-10-12T15:45:25","modified_gmt":"2021-10-12T15:45:25","slug":"zerotier-one-configurare-un-controller-self-hosted-per-creare-la-propria-rete-virtuale","status":"publish","type":"post","link":"https:\/\/cloudsurfers.it\/index.php\/zerotier-one-configurare-un-controller-self-hosted-per-creare-la-propria-rete-virtuale\/","title":{"rendered":"ZeroTier One: configurare un controller self-hosted per creare la propria rete virtuale."},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Al giorno d&#8217;oggi \u00e8 utile poter riunire tutti i dispositivi che si possiedono sotto un&#8217; unica rete virtuale, in modo da potervi accedere pi\u00f9 facilmente e poterli controllare anche a distanza, senza esporli necessariamente al resto del mondo. Esistono vari metodi per crearsi una VPN (Virtual Private Network) e, in linea di massima non sono proprio alla portata di tutti. Qualche giorno fa ci siamo per\u00f2 imbattuti in&nbsp;<strong>ZeroTier<\/strong>, una soluzione open-source che permette a chiunque di creare la propria rete virtuale senza avere nessuna competenza specifica, grazie ad una semplicissima procedura guidata e una applicazione che garantisce una connessione totalmente cifrata e autenticata attraverso algoritmi come 256-bit&nbsp;<a href=\"https:\/\/ianix.com\/pub\/salsa20-deployment.html\">Salsa20<\/a>&nbsp;e <a href=\"https:\/\/en.wikipedia.org\/wiki\/Poly1305\">Poly1305<\/a>.<\/p>\n\n\n\n<p>Il punto di partenza consiste appunto nel creare la rete virtuale che consentir\u00e0 ai nostri dispositivi di connettersi tra loro come se fossero connessi alla stessa rete locale (LAN). Per fare questo \u00e8 possibile utilizzare il controller Central ospitato da ZeroTier sul sito <a rel=\"noreferrer noopener\" href=\"https:\/\/my.zerotier.com\/\" target=\"_blank\">my.zerotier.com<\/a>, un portale UI basato sul web per la gestione delle reti virtuali. Per registrarsi sar\u00e0 sufficiente fornire la propria mail e una password e, una volta loggati sar\u00e0 possibile creare la propria rete virtuale, identificata da un ID univoco a 16 cifre. <\/p>\n\n\n\n<p>L&#8217;ultimo passo consiste nell&#8217;installare il <a href=\"http:\/\/zerotier.com\/download.shtml\" data-type=\"URL\" data-id=\"zerotier.com\/download.shtml\" target=\"_blank\" rel=\"noreferrer noopener\">client di ZeroTier<\/a> su ogni dispositivo che si desidera collegare alla rete, con l&#8217;iscrizione gratuita per utilizzo non commerciale, si possono collegare fino a 100 dispositivi al controller di rete ZeroTier Central. Sono supportati praticamente tutti i sistemi pi\u00f9 diffusi, inclusi dispositivi mobili Android e iOs e i firmware di vari NAS come Sinology. Installata l&#8217;applicazione, ogni dispositivo sar\u00e0 a sua volta identificato da un ID di 10 cifre: baster\u00e0 semplicemente indicare le 16 cifre identificative della propria rete per avviare la configurazione automatica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Configurare un controller di rete autonomo<\/strong><\/h3>\n\n\n\n<p>Noi l&#8217;abbiamo provato e abbiamo voluto spingerci oltre cercando di compiere un primo passo verso una soluzione self-hosted, configurando un nostro controller non esposto pubblicamente. In questo articolo vedremo infatti come configurare il proprio&nbsp;<strong>controller di rete autonomo<\/strong>&nbsp;senza dover necessariamente passare dalla registrazione a my.zerotier.com.&nbsp;<\/p>\n\n\n\n<p>Configurare un&nbsp;controller autonomo&nbsp;\u00e8 abbastanza semplice: basta installare il&nbsp;software&nbsp;<strong>ZeroTier One<\/strong>&nbsp;e&nbsp;seguire le istruzioni di installazione seguenti&nbsp;per installare&nbsp;<strong>ztncui<\/strong>&nbsp;su una macchina Linux.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Prerequisiti<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>macchina ubuntu con 1Gb di RAM<\/li><li>aprire la porta 9993 se un nodo di destinazione \u00e8 dietro firewall (non obbligatorio ma diminuisce la latenza)<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Installazione<\/h4>\n\n\n\n<p>Colleghiamoci alla nostra macchina Linux ed iniziamo l&#8217;installazione del client. Le distribuzioni basate su Debian e RPM incluse Debian, Ubuntu, CentOS, RHEL, Fedora e altre sono supportate tramite uno script che aggiunge il repository giusto e installa il pacchetto. Il seguente comando \u00e8 mostrato anche nella pagina di download di ZeroTier <a rel=\"noreferrer noopener\" href=\"https:\/\/www.zerotier.com\/download.shtml\" target=\"_blank\">zerotier.com\/download.shtml<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -s https:\/\/install.zerotier.com | sudo bash<\/code><\/pre>\n\n\n\n<p>A questo punto il client di Zerotier risulter\u00e0 installato nella nostra macchina, ora aggiungiamo il repository per scaricare Ztncui, ossia quello che sar\u00e0 il nostro controller.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -O https:\/\/s3-us-west-1.amazonaws.com\/key-networks\/deb\/ztncui\/1\/x86_64\/ztncui_0.5.8_amd64.deb<\/code><\/pre>\n\n\n\n<p>Installiamolo con il seguente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get install .\/ztncui_0.5.8_amd64.deb<\/code><\/pre>\n\n\n\n<p>Opzionale: una volta installato ztncui possiamo installare i certificati SSL, di default verranno utilizzati dei certificati self-signed generati automaticamente, ma puoi generare i tuoi compilandoli con le tue informazioni personali utilizzando i seguenti comandi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo -i<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/opt\/key-networks\/ztncui\/etc\/tls<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>rm -f privkey.pem fullchain.pem<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privkey.pem -out fullchain.pem<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>chown ztncui.ztncui *.pem<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 600 privkey.pem<\/code><\/pre>\n\n\n\n<p>Limitiamo l&#8217;accesso alla porta 3443 sull&#8217;interfaccia di rete pubblica al nostro indirizzo IP (almeno fino a quando non viene impostata la password dell&#8217;amministratore).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sh -c \"echo 'HTTPS_PORT = 3443'&gt; \/opt\/key-networks\/ztncui\/.env\"<\/code><\/pre>\n\n\n\n<p>Avendo gi\u00e0 un certificato e una chiave privata, dovresti essere in grado di accedere a ztncui su HTTPS sulla porta specificata da HTTPS_PORT.<\/p>\n\n\n\n<p>A questo punto possiamo utilizzare il nostro controller, connettiamoci tramite HTTPS sulla porta 3443 tramite web browser, <strong>https: \/\/&lt;indirizzoIPmacchina&gt;: 3443<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"299\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-1024x299.png\" alt=\"\" class=\"wp-image-3295\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-1024x299.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-300x88.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-768x225.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-1536x449.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1-600x175.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-21-1.png 1902w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Accedi come utente&nbsp;<strong>admin<\/strong>&nbsp;con password&nbsp;<strong>password<\/strong>&nbsp;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"265\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-1024x265.png\" alt=\"\" class=\"wp-image-3296\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-1024x265.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-300x78.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-768x199.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-1536x398.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1-600x155.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-22-1.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Successivamente \u00e8 possibile creare ulteriori utenti tramite il menu <strong>User&gt;Create User<\/strong> inserendo username, password e specificando se la password sar\u00e0 da modificare al primo login. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"272\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-1024x272.png\" alt=\"\" class=\"wp-image-3297\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-1024x272.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-300x80.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-768x204.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-1536x409.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1-600x160.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-24-1.png 1891w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Una volta fatto ci\u00f2, i nuovi utenti appariranno nell&#8217;elenco (\u00e8 consigliato eliminare l&#8217;account admin creato di default tramite l&#8217;apposita icona).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"262\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-1024x262.png\" alt=\"\" class=\"wp-image-3298\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-1024x262.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-300x77.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-768x196.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-1536x393.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1-600x153.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-25-1.png 1897w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dal menu <strong>Network <\/strong>\u00e8 possibile creare la rete che ci permetter\u00e0 di collegare tutti i device remoti. Clicchiamo su <strong>Add Network<\/strong> e scegliamo un nome per la nostra rete.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"263\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-1024x263.png\" alt=\"\" class=\"wp-image-3299\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-1024x263.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-300x77.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-768x197.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-1536x394.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1-600x154.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-26-1.png 1899w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Torniamo nella Home dove \u00e8 possibile individuare l&#8217;ID a 16 cifre della rete virtuale appena creata. Cliccando su <strong>List all networks on this controller<\/strong> sar\u00e0 possibile configurare la nostra rete.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"261\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-1024x261.png\" alt=\"\" class=\"wp-image-3300\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-1024x261.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-300x77.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-768x196.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-1536x392.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1-600x153.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-23a-1.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Clicchiamo su <strong>easy setup<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"259\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-1024x259.png\" alt=\"\" class=\"wp-image-3301\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-1024x259.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-300x76.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-768x194.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-1536x388.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2-600x152.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-27-2.png 1896w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Abbiamo la possibilit\u00e0 di assegnare o generare automaticamente una classe di IP per la rete virtuale e impostare l&#8217;intervallo degli indirizzi che verranno usati dai dispositivi che aggiungeremo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-1024x385.png\" alt=\"\" class=\"wp-image-3302\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-1024x385.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-300x113.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-768x288.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-1536x577.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2-600x225.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-28-2.png 1888w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Una volta confermato torniamo alla pagina precedente; cliccando su <strong>details <\/strong>potremo avere maggiori informazioni sulla rete appena creata.<\/p>\n\n\n\n<p>Cliccando invece su <strong>members <\/strong>potremo consultare la lista dei dispositivi aggiunti. Ovviamente la lista risulter\u00e0 vuota. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"301\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-1024x301.png\" alt=\"\" class=\"wp-image-3303\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-1024x301.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-300x88.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-768x226.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-1536x452.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2-600x177.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-31-2.png 1906w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Possiamo per\u00f2 aggiungere il nostro stesso controller digitando sul nostro terminale il comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo zerotier-cli join &#91;networkID]<\/code><\/pre>\n\n\n\n<p>Dove [networkID] \u00e8 il codice da 16 cifre che identifica la nostra rete. Potrai verificare lo stato della connessione con il comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo zerotier-cli status<\/code><\/pre>\n\n\n\n<p>In questa fase un errore tipo \u201cACCESS_DENIED\u201d \u00e8 normale, poich\u00e9 il&nbsp;<em>client<\/em>&nbsp;deve essere abilitato. Rechiamoci dunque nella sezione <strong>Network&gt;Members<\/strong> del nostro controller, verr\u00e0 mostrato l&#8217;ID del dispositivo appena aggiunto al quale possiamo assegnare un nome in modo da riconoscerlo pi\u00f9 facilmente. Abilitando il flag autorizzeremo il dispositivo ad entrare a far parte della nostra rete, possiamo infatti notare che gli \u00e8 stato assegnato automaticamente un IP appartenente al pool impostato in precedenza (volendo \u00e8 possibile modificarlo).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"298\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-1024x298.png\" alt=\"\" class=\"wp-image-3304\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-1024x298.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-300x87.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-768x224.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-1536x448.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2-600x175.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-34-2.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Per aggiungere invece gli altri dispositivi possiamo scaricare il client sempre dalla pagina di <a rel=\"noreferrer noopener\" href=\"https:\/\/www.zerotier.com\/download\/\" data-type=\"URL\" data-id=\"https:\/\/www.zerotier.com\/download\/\" target=\"_blank\">Download<\/a> di ZeroTier. Sar\u00e0 possibile selezionare l&#8217;icona corrispondente al sistema operativo del dispositivo che desideriamo aggiungere alla rete.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"293\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-1024x293.png\" alt=\"\" class=\"wp-image-3270\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-1024x293.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-300x86.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-768x220.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-1536x440.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33-600x172.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-33.png 1901w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se ad esempio selezioniamo Windows scaricheremo il pacchetto .msi da installare direttamente sulla macchina. Possiamo collegare anche dispositivi mobili attraverso l&#8217;app Zerotier One disponibile sia sul Play Store che sull&#8217;Apple Store. Il procedimento sar\u00e0 analogo a quello spiegato in precedenza: installare il client, fare il join alla rete identificata dalle 16 cifre e abilitare dalla dashboard del nostro controller i dispositivi aggiunti. Nell&#8217;immagine successiva verranno mostrati i diversi client che noi abbiamo aggiunto durante la nostra prova.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"463\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-1024x463.png\" alt=\"\" class=\"wp-image-3305\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-1024x463.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-300x136.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-768x347.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-1536x695.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3-600x271.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-36-3.png 1902w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Da questo momento in poi i nostri dispositivi saranno raggiungibili anche a distanza, da qualsiasi destinazione utilizzando gli IP assegnati.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Instradamento tra ZeroTier e reti fisiche<\/h4>\n\n\n\n<p>Il fatto di dover utilizzare degli indirizzi ip diversi da quelli della LAN dell&#8217;uffico per identificare i nostri dispositivi aziendali non ci entusiasmava, sarebbe stato pi\u00f9 comodo collegarsi alle macchine senza dover ricordare tutti gli ip virtuali assegnati dalla rete ZeroTier. Cos\u00ec, guardando tra la documentazione abbiamo trovato un modo per farlo.<\/p>\n\n\n\n<p>I passaggi da eseguire sono i seguenti:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong style=\"font-size: 0.875rem;\">Installare ZeroTier su una macchina Linux <\/strong><span style=\"font-size: 0.875rem;\"><strong>che funger\u00e0 da gateway<\/strong><\/span><\/li><li><strong>Aggiungere un nuovo route sul nostro controller ZeroTier<\/strong><\/li><li><strong>Abilitare IP forwarding<\/strong><\/li><li><strong>Configurare iptables<\/strong><\/li><\/ol>\n\n\n\n<p>Questa \u00e8 una tabella riassuntiva contenente i parametri di esempio che ci serviranno per la configurazione, da sostituire con la vostra configurazione.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Info<\/th><th>ESEMPIO<\/th><th>Variabile<\/th><\/tr><tr><td>Network ID ZeroTier<\/td><td>865e7201263ef8e07<\/td><td>$NETWORK_ID<\/td><\/tr><tr><td>Nome interfaccia ZeroTier<\/td><td>zt7nnig26<\/td><td>$ZT_IFACE<\/td><\/tr><tr><td>Physical Interface Name<\/td><td>eth0<\/td><td>$PHY_IFACE<\/td><\/tr><tr><td>Subnet di ZeroTier<\/td><td>10.100.10.0\/24<\/td><td>&nbsp;<\/td><\/tr><tr><td>Subnet Fisica Ufficio (Target)<\/td><td>192.168.1.0\/24<\/td><td>$PHY_SUB<\/td><\/tr><tr><td>ZeroTier Indirizzo IP del Gateway<\/td><td>84.100.10.100<\/td><td>$ZT_ADDR<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">1.<strong>Installare ZeroTier su una macchina Linux<\/strong> <strong>che funger\u00e0 da gateway<\/strong><\/h6>\n\n\n\n<p>All&#8217;interno della rete LAN sar\u00e0 necessario configurare un macchina Ubuntu, installare il client di ZeroTier e aggiungere la macchina alla rete virtuale abilitandola in modo che ottenga un IP, come mostrato in precedenza.<br>Nel nostro caso il controller stesso \u00e8 parte della rete fisica quindi utilizzeremo quella stessa macchina come &#8220;router&#8221;.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">2.Aggiungere un percorso gestito alla rete ZeroTier sul nostro controller<\/h6>\n\n\n\n<p>In questo passaggio aggiungeremo un&#8217;altra route per qualsiasi device connesso all rete di ZeroTier. Rechiamoci in <strong>Network&gt;details<\/strong> come mostrato in precedenza e in seguito clicchiamo su <strong>routes<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"476\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-1024x476.png\" alt=\"\" class=\"wp-image-3306\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-1024x476.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-300x139.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-768x357.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-1536x714.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1-600x279.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-42-1.png 1904w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nella pagina verr\u00e0 mostrato l&#8217;attuale route esistente, creato di default in fase di creazione rete virtuale. Ne aggiungeremo uno nuovo impostando come <strong>target <\/strong>la classe di IP che identifica la nostra rete fisica aziendale e come <strong>gateway <\/strong>l&#8217;indirizzo IP virtuale della macchina linux.  E&#8217; consigliato configurare la classe del target con una subnet leggermente pi\u00f9 grande della subnet fisica effettiva, in modo che i dispositivi che si trovano sia sulla rete fisica che su quella virtuale di ZeroTier preferiscano comunque la connessione fisica. Nel nostro esempio la nostra lan interna \u00e8 192.168.1.0\/24 quindi imposteremo 192.168.1.0\/23 invece di \/24 (un numero pi\u00f9 piccolo \u00e8 una sottorete pi\u00f9 grande in questa notazione) mentre l&#8217;IP virtuale del gateway, nonch\u00e9 del nostro controller, \u00e8 84.100.10.100. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"406\" src=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-1024x406.png\" alt=\"\" class=\"wp-image-3307\" srcset=\"https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-1024x406.png 1024w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-300x119.png 300w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-768x305.png 768w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-1536x610.png 1536w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1-600x238.png 600w, https:\/\/cloudsurfers.it\/wp-content\/uploads\/2020\/11\/Screenshot-43-1.png 1900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Clicchiamo su <strong>submit <\/strong>e la nuova route verr\u00e0 aggiunta all&#8217;elenco.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">3.<strong>Abilitare IP forwarding<\/strong><\/h6>\n\n\n\n<p>A questo punto colleghiamoci al terminale Linux e modifichiamo il file <strong>\/etc\/sysctl.conf<\/strong> utilizzando il comando<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo vi \/etc\/sysctl.conf<\/code><\/pre>\n\n\n\n<p>e scommentiamo la riga relativa a <strong>net.ipv4.ip_forward<\/strong> cancellando <strong>#<\/strong>. Salviamo e chiudiamo il file premendo <strong>Esc <\/strong>e digitando <strong>:wq!<\/strong> seguiti dal tasto invio di conferma.<\/p>\n\n\n\n<p>Il forwarding verr\u00e0 abilitato al successivo riavvio della macchina, per abilitarlo subito digitare il comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sysctl -w net.ipv4.ip_forward=1<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">4.Configurare iptables<\/h6>\n\n\n\n<p>Sempre dalla shell di Ubuntu assegnamo due variabili che ci renderanno pi\u00f9 facili i successivi comandi. I valori assegnati corrispondono alle 2 interfacce di rete della macchina, per visualizzarle digitare <strong>ifconfig <\/strong>tramite shell; otterrete qualcosa di simile a eth0 e ztnnig26. Impostiamo le variabili con il seguente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PHY_IFACE=eth0; ZT_IFACE=zt7nnig26<\/code><\/pre>\n\n\n\n<p>Aggiungiamo le regole a ip tables:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT<\/code><\/pre>\n\n\n\n<p>Salviamo le regole anche per il prossimo avvio<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install iptables-persistent\nsudo bash -c iptables-save &gt; \/etc\/iptables\/rules.v4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"Test!\">Test!<\/h3>\n\n\n\n<p>Ora non resta che testare la configurazione;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Collega il pc ad un&#8217;altra rete (diversa dalla LAN appena aggiunta)<\/li><li>Aggiungilo alla rete di zerotier e abilita l&#8217;autorizzazione<\/li><li>Prova ad accedere a qualche macchina della rete LAN che hai aggiunto in precedenza utilizzando l&#8217;IP della rete fisica<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusioni<\/h3>\n\n\n\n<p>Ovviamente&nbsp;<em>ZeroTier<\/em>&nbsp;offre molto di pi\u00f9 di quanto descritto in questo articolo, basta consultare il manuale per rendersi conto delle sue potenzialit\u00e0. Diciamo che, dopo aver letto il manuale, abbiamo deciso di provare a ottenere una soluzione self-hosted decidendo di presentare questo interessante prodotto attraverso una veloce guida.  Abbiamo avuto ottime impressioni anche relative alla velocit\u00e0 di connessione, paragonabile a quella della nostra VPN point to site che utilizziamo abitualmente. <br>Ovviamente quanto mostrato in questo articolo \u00e8 solo un primo passo per avere un&#8217;infrastruttura del tutto indipendente. Al momento per stabilire le connessioni tra i diversi peer vengono comunque utilizzati i 4 root server di zerotier dislocati in diverse aree geografiche. La versione attuale di zerotier permetterebbe la creazione dei propri root server ma questa funzionalit\u00e0 \u00e8 ancora considerata in qualche modo sperimentale, quindi abbiamo deciso di fermarci qui per il momento visto l&#8217;imminente arrivo della versione 2.0. Dunque non ci resta che attendere l&#8217;arrivo della nuova versione per scoprire se ci saranno interessanti novit\u00e0.<br><\/p>\n\n\n\n<p>N.B. Per situazioni pi\u00f9&nbsp;<em>critical<\/em>, dove ad esempio sono in gioco dati riservati o apparecchiature particolari conviene puntare su soluzioni VPN gestite interamente&nbsp;<em>in-house<\/em> piuttosto che software di terze parti, se hai bisogno di conoscere la soluzione migliore per te contattaci pure!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Link utili<\/h6>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.zerotier.com\/manual\/\" target=\"_blank\">https:\/\/www.zerotier.com\/manual\/<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/zerotier.atlassian.net\/wiki\/spaces\/SD\/overview\" target=\"_blank\">https:\/\/zerotier.atlassian.net\/wiki\/spaces\/SD\/overview<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.zerotier.com\/2019\/09\/24\/zerotier-2-0-status\/\" target=\"_blank\">https:\/\/www.zerotier.com\/2019\/09\/24\/zerotier-2-0-status\/<\/a><\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/key-networks.com\/ztncui\/\" target=\"_blank\">https:\/\/key-networks.com\/ztncui\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Al giorno d&#8217;oggi \u00e8 utile poter riunire tutti i dispositivi che si possiedono sotto un&#8217; unica rete virtuale, in modo da potervi accedere pi\u00f9 facilmente e poterli controllare anche a &#8230;<\/p>\n","protected":false},"author":6,"featured_media":4395,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wds_primary_category":0,"footnotes":""},"categories":[130,36,131],"tags":[110,133,132],"class_list":["post-3242","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-insights","category-guide","category-handson","tag-tutorial","tag-vpn","tag-zerotier"],"_links":{"self":[{"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/posts\/3242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/comments?post=3242"}],"version-history":[{"count":0,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/posts\/3242\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/media\/4395"}],"wp:attachment":[{"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/media?parent=3242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/categories?post=3242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudsurfers.it\/index.php\/wp-json\/wp\/v2\/tags?post=3242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}