For et par dage siden talte vi her på bloggen om Firezone, som er et fremragende værktøj til at oprette WireGuard-baserede VPN-servere.
Og nu vil vi ved denne lejlighed tale om et meget lignende værktøj kaldet "Headscale", som er et projekt udviklet som en open source-implementering af Tailscale VPN- serverkomponenten , der giver dig mulighed for at oprette Tailscale-lignende VPN'er på dine egne lokaler uden at være bundet til tredjepartstjenester.
Tailscale tillader at kombinere et vilkårligt antal geografisk spredte værter i et netværk , bygget i stil med et mesh-netværk, hvor hver node kommunikerer direkte med andre noder (P2P) eller gennem tilstødende noder uden at sende trafik gennem centraliserede eksterne servere hos VPN-udbyderen.
Udover at understøtte ACL-baseret rute- og adgangskontrol og muliggøre etablering af kommunikationskanaler under brugsbetingelser for Network Address Translation (NAT), understøtter systemet STUN-, ICE- og DERP-mekanismer (analogt med TURN, men baseret på HTTPS). Hvis kommunikationskanalen mellem bestemte noder er blokeret, kan netværket omdirigere trafik gennem andre noder.
Tailscale adskiller sig fra Nebula-projektet , som også er designet til at oprette distribuerede VPN-netværk med mesh-routing ved hjælp af Wireguard-protokollen til at organisere dataoverførsel mellem noder, mens Nebula bruger udviklinger fra Tinc-projektet, som bruger AES-256-algoritmen til at kryptere GSM-pakker (Wireguard bruger ChaCha20-krypteringen, som i test viser højere ydeevne og responsivitet).
Et andet lignende projekt, Innernet, udvikles separat, hvor Wireguard-protokollen også bruges til at udveksle data mellem noder. I modsætning til Tailscale og Nebula bruger Innernet et andet adgangsseparationssystem baseret på ACL'er; labels er ikke knyttet til individuelle noder og undernet for at adskille og isolere forskellige IP-adresseområder, som i konventionelle internetnetværk.
Innernet bruger også Rust i stedet for Go, og det er værd at nævne, at Innernet 1.5 med forbedret NAT -traversal support blev frigivet for et par dage siden. Der er også et Netmaker -projekt, som giver dig mulighed for at forbinde netværk med forskellige topologier ved hjælp af Wireguard, men koden leveres under SSPL (Server Side Public License), som ikke er åben på grund af tilstedeværelsen af ​​diskriminerende krav.
Tailscale distribueres ved hjælp af en freemium-model, der tilbyder gratis adgang for enkeltpersoner og betalt adgang for virksomheder og teams. Tailscale-klientkomponenter, med undtagelse af de grafiske applikationer til Windows og macOS, er udviklet som open source-projekter under BSD-licensen.
Tailscales outsourcede serversoftware, som autentificerer nye klienter , koordinerer nøglehåndtering og organiserer kommunikationen mellem noder, er proprietær. Headscale-projektet adresserer dette problem og tilbyder en open source-implementering uafhængig af Tailscale-serverkomponenterne.
Headscale overtager funktionerne med udveksling af offentlige nøgler mellem noder og udfører også operationerne med tildeling af IP-adresser og distribution af routingtabeller mellem noder.
I sin nuværende form implementerer Headscale alle kernefunktionerne i en administrationsserver, med undtagelse af understøttelse af MagicDNS og Smart DNS. Specifikt understøtter den registrering af noder (herunder via internettet), tilpasning af netværket for at tilføje eller fjerne noder, subnetting ved hjælp af navnerum (hvilket muliggør oprettelse af en VPN for flere brugere), organisering af delt nodeadgang til undernet i forskellige navnerum, routingkontrol (herunder tildeling af udgående noder for at få adgang til omverdenen), delt adgang via ACL'er og DNS-udførelse.
Headscale -koden er skrevet i Go og distribueres under BSD -licensen. Projektet udvikles af Juan Font fra European Space Agency.
Endelig, hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.