Il progetto Headscale sviluppa un server aperto per la rete VPN distribuita di Tailscale

Il progetto Headscale sta sviluppando un'implementazione aperta della componente server della rete VPN Tailscale, che consente di creare reti VPN simili a Tailscale presso le proprie strutture, senza essere vincolati a servizi di terze parti. Il codice di Headscale è scritto in Go ed è concesso in licenza con la licenza BSD. Il progetto è sviluppato da Juan Font dell'Agenzia spaziale europea.

Tailscale consente di combinare un numero arbitrario di host geograficamente dispersi in un'unica rete, costruita come una rete mesh, in cui ogni nodo interagisce con altri nodi direttamente (P2P) o tramite nodi vicini, senza trasmettere traffico attraverso i server esterni centralizzati della VPN fornitore. Sono supportati l'accesso basato su ACL e il controllo del percorso. Per stabilire canali di comunicazione quando si utilizzano traduttori di indirizzi (NAT), viene fornito il supporto per i meccanismi STUN, ICE e DERP (analoghi a TURN, ma basati su HTTPS). Se il canale di comunicazione tra determinati nodi è bloccato, la rete può ricostruire il routing per dirigere il traffico attraverso altri nodi.

Il progetto Headscale sviluppa un server aperto per la rete VPN distribuita di Tailscale

Tailscale si differenzia dal progetto Nebula, anch'esso destinato a creare reti VPN distribuite con routing mesh, utilizzando il protocollo Wireguard per organizzare il trasferimento dei dati tra i nodi, mentre Nebula utilizza gli sviluppi del progetto Tinc, che utilizza l'algoritmo AES-256 per crittografare i pacchetti -GSM (Wireguard utilizza il codice ChaCha20, che nei test dimostra throughput e reattività più elevati).

Un altro progetto simile è in fase di sviluppo separato: Innernet, in cui il protocollo Wireguard viene utilizzato anche per lo scambio di dati tra i nodi. A differenza di Tailscale e Nebula, Innernet utilizza un diverso sistema di separazione degli accessi, basato non su ACL con tag legati ai singoli nodi, ma sulla separazione delle sottoreti e sull'assegnazione di diversi intervalli di indirizzi IP, come nelle normali reti Internet. Inoltre, al posto del linguaggio Go, Innernet utilizza il linguaggio Rust. Tre giorni fa è stato pubblicato l'aggiornamento Innernet 1.5 con un supporto trasversale NAT migliorato. Esiste anche un progetto Netmaker che permette di unire reti con topologie diverse utilizzando Wireguard, ma il suo codice è fornito sotto la SSPL (Server Side Public License), che non è aperta per la presenza di requisiti discriminatori.

Tailscale è distribuito utilizzando un modello freemium, ovvero utilizzo gratuito per singoli individui e accesso a pagamento per aziende e team. I componenti client di Tailscale, ad eccezione delle applicazioni grafiche per Windows e macOS, sono sviluppati come progetti aperti con licenza BSD. Il software server in esecuzione sul lato Tailscale è proprietario e fornisce l'autenticazione durante la connessione di nuovi client, il coordinamento della gestione delle chiavi e l'organizzazione della comunicazione tra i nodi. Il progetto Headscale risolve questa lacuna e offre un'implementazione indipendente e aperta dei componenti backend Tailscale.

Il progetto Headscale sviluppa un server aperto per la rete VPN distribuita di Tailscale

Headscale assume le funzioni di scambio delle chiavi pubbliche dei nodi ed esegue anche le operazioni di assegnazione degli indirizzi IP e distribuzione delle tabelle di routing tra i nodi. Nella sua forma attuale, Headscale implementa tutte le funzionalità di base del server di gestione, ad eccezione del supporto per MagicDNS e Smart DNS. In particolare, le funzioni di registrazione dei nodi (anche via web), adattamento della rete per l'aggiunta o la rimozione di nodi, separazione delle sottoreti tramite namespace (è possibile creare una rete VPN per più utenti), organizzazione dell'accesso condiviso dei nodi alle sottoreti in diversi namespace , controllo del routing (inclusa l'assegnazione di nodi di uscita per accedere al mondo esterno), separazione degli accessi tramite ACL e funzionamento del servizio DNS.

Fonte: opennet.ru

Aggiungi un commento