Headscale, een open source implementatie van Tailscale

Een paar dagen geleden bespraken we hier op de blog Firezone, een uitstekend hulpmiddel voor het opzetten van WireGuard-gebaseerde VPN-servers.

En nu gaan we het hebben over een vergelijkbaar hulpmiddel genaamd "Headscale". Dit is een project dat is ontwikkeld als een open-source implementatie van de Tailscale VPN- servercomponent , waarmee je zelf Tailscale-achtige VPN's kunt opzetten, zonder afhankelijk te zijn van diensten van derden.

Tailscale maakt het mogelijk om een ​​willekeurig aantal geografisch verspreide hosts te combineren tot een netwerk , gebouwd naar het voorbeeld van een mesh-netwerk, waarin elk knooppunt rechtstreeks (P2P) of via naburige knooppunten communiceert met andere knooppunten, zonder dat er verkeer via gecentraliseerde externe servers van de VPN-provider hoeft te lopen.

Naast ondersteuning voor op ACL gebaseerde route- en toegangscontrole en het mogelijk maken van communicatiekanalen onder Network Address Translation (NAT)-gebruiksomstandigheden, ondersteunt het systeem STUN-, ICE- en DERP-mechanismen (vergelijkbaar met TURN, maar gebaseerd op HTTPS). Als het communicatiekanaal tussen bepaalde knooppunten geblokkeerd is, kan het netwerk het verkeer omleiden via andere knooppunten.

Tailscale verschilt van het Nebula-project , dat ook is ontworpen om gedistribueerde VPN-netwerken met mesh-routing te creëren, waarbij het Wireguard-protocol wordt gebruikt om de gegevensoverdracht tussen knooppunten te organiseren. Nebula daarentegen maakt gebruik van ontwikkelingen van het Tinc-project, dat het AES-256-algoritme gebruikt om GSM-pakketten te versleutelen (Wireguard gebruikt de ChaCha20-versleuteling, die in tests betere prestaties en responsiviteit laat zien).

Een ander vergelijkbaar project, Innernet, wordt afzonderlijk ontwikkeld, waarbij ook het Wireguard-protocol wordt gebruikt voor de uitwisseling van gegevens tussen knooppunten. In tegenstelling tot Tailscale en Nebula gebruikt Innernet een ander systeem voor toegangsscheiding op basis van ACL's; labels zijn niet gekoppeld aan individuele knooppunten en subnetten om verschillende IP-adresbereiken te scheiden en te isoleren, zoals in conventionele internetnetwerken.

Ook gebruikt Innernet Rust in plaats van Go en het is vermeldenswaard dat Innernet 1.5 met verbeterde NAT-traversal-ondersteuning een paar dagen geleden is uitgebracht. Er is ook een Netmaker-project, waarmee u netwerken met verschillende topologieën kunt verbinden met behulp van Wireguard, maar de code wordt geleverd onder de SSPL (Server Side Public License), die niet open is vanwege de aanwezigheid van discriminerende vereisten.

Tailscale wordt gedistribueerd volgens een freemium-model, waarbij individuen gratis toegang hebben en bedrijven en teams tegen betaling toegang krijgen. De clientcomponenten van Tailscale, met uitzondering van de grafische applicaties voor Windows en macOS, worden ontwikkeld als open-sourceprojecten onder de BSD-licentie.

De serversoftware van Tailscale, die nieuwe clients authenticeert , sleutelbeheer coördineert en de communicatie tussen knooppunten organiseert, is proprietair. Het Headscale-project pakt dit probleem aan en biedt een open-source implementatie die onafhankelijk is van de servercomponenten van Tailscale.

Headscale neemt de functies van publieke sleuteluitwisseling tussen knooppunten over en voert tevens de bewerkingen uit van IP-adres toewijzing en distributie van routeringstabellen tussen knooppunten.

In zijn huidige vorm implementeert Headscale alle kernfuncties van een beheerserver, met uitzondering van ondersteuning voor MagicDNS en Smart DNS. Concreet ondersteunt het het registreren van knooppunten (ook via het web), het aanpassen van het netwerk om knooppunten toe te voegen of te verwijderen, subnetting met behulp van namespaces (waardoor een VPN voor meerdere gebruikers kan worden opgezet), het organiseren van gedeelde toegang van knooppunten tot subnetten in verschillende namespaces, routingcontrole (inclusief het toewijzen van uitgaande knooppunten voor toegang tot de buitenwereld), gedeelde toegang via ACL's en DNS-uitvoering.

De Headscale-code is geschreven in Go en wordt gedistribueerd onder de BSD-licentie. Het project wordt ontwikkeld door Juan Font van de European Space Agency.

Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.


Voeg dit toe als voorkeursbron in Google.