Headscale, en open source -implementering av Tailscale

För några dagar sedan pratade vi här på bloggen om Firezone, vilket är ett utmärkt verktyg för att skapa WireGuard-baserade VPN-servrar.

Och nu, vid detta tillfälle, ska vi prata om ett mycket liknande verktyg som heter "Headscale", vilket är ett projekt som utvecklats som en öppen källkodsimplementering av Tailscale VPN- serverkomponenten , vilket gör att du kan skapa Tailscale-liknande VPN-nätverk i dina egna lokaler, utan att vara bunden till tredjepartstjänster.

Tailscale möjliggör kombination av ett godtyckligt antal geografiskt spridda värdar till ett nätverk , byggt i bilden av ett mesh-nätverk, där varje nod kommunicerar med andra noder direkt (P2P) eller via angränsande noder, utan att trafik behöver överföras via centraliserade externa servrar hos VPN-leverantören.

Förutom att stödja ACL-baserad rutt- och åtkomstkontroll , och möjliggöra etablering av kommunikationskanaler under användningsförhållanden för Network Address Translation (NAT), stöder systemet STUN-, ICE- och DERP-mekanismer (analogt med TURN, men baserat på HTTPS). Om kommunikationskanalen mellan vissa noder blockeras kan nätverket omdirigera trafik genom andra noder.

Tailscale skiljer sig från Nebula-projektet , som också är utformat för att skapa distribuerade VPN-nätverk med mesh-routing, med hjälp av Wireguard-protokollet för att organisera dataöverföring mellan noder, medan Nebula använder utvecklingar från Tinc-projektet, som använder AES-256-algoritmen för att kryptera GSM-paket (Wireguard använder ChaCha20-krypteringen, som i tester visar högre prestanda och respons).

Ett annat liknande projekt, Innernet, utvecklas separat, där Wireguard-protokollet också används för att utbyta data mellan noder. Till skillnad från Tailscale och Nebula använder Innernet ett annat åtkomstseparationssystem baserat på ACL:er; etiketter är inte kopplade till enskilda noder och subnät för att separera och isolera olika IP-adressintervall, som i konventionella internetnätverk.

Innernet använder också Rust istället för Go och det är värt att nämna att Innernet 1.5 med förbättrat NAT -traversalstöd släpptes för några dagar sedan. Det finns också ett Netmaker -projekt som låter dig ansluta nätverk med olika topologier med Wireguard, men dess kod tillhandahålls under SSPL (Server Side Public License), som inte är öppen på grund av förekomsten av diskriminerande krav.

Tailscale distribueras med en freemium-modell, vilket erbjuder fri åtkomst för individer och betald åtkomst för företag och team. Tailscale-klientkomponenter, med undantag för de grafiska applikationerna för Windows och macOS, utvecklas som öppen källkodsprojekt under BSD-licensen.

Tailscales outsourcade serverprogramvara, som autentiserar nya klienter , koordinerar nyckelhantering och organiserar kommunikationen mellan noder, är proprietär. Headscale-projektet åtgärdar detta problem och tillhandahåller en öppen källkodsimplementering oberoende av Tailscales serverkomponenter.

Headscale övertar funktionerna för utbyte av publika nycklar mellan noder och utför även operationerna för IP-adresstilldelning och distribution av routingtabeller mellan noder.

I sin nuvarande form implementerar Headscale alla kärnfunktioner i en hanteringsserver, med undantag för stöd för MagicDNS och Smart DNS. Mer specifikt stöder den registrering av noder (inklusive via webben), anpassning av nätverket för att lägga till eller ta bort noder, subnätverk med hjälp av namnrymder (vilket möjliggör skapandet av ett VPN för flera användare), organisering av delad nodåtkomst till subnät i olika namnrymder, routingkontroll (inklusive tilldelning av utgående noder för åtkomst till omvärlden), delad åtkomst via ACL:er och DNS-körning.

Headscale -koden är skriven i Go och distribueras under BSD -licensen. Projektet utvecklas av Juan Font från European Space Agency.

Slutligen, om du är intresserad av att lära dig mer, kan du hitta detaljerna på följande länk.


Lägg till som prioriterad källa i Google