Mijn ervaring met het vervangen van traditionele dynamische DNS door Tailscale Funnels

Omdat ik mijn zelfgehoste werkstations en experimentnodes heb verbonden met mijn thuisnetwerk, kan ik inloggen wanneer ik maar wil om aan een doe-het-zelfproject te werken. Toegang tot mijn thuislab-opstelling wordt echter extreem lastig wanneer ik voor langere tijd op reis moet. Hoewel Tailscale technisch gezien niet zelfgehost is, is het mijn favoriete tool om aan mijn servers te sleutelen wanneer ik niet thuis ben.

Raspberry Pi met Tailscale op pc

Er is echter een klein probleem met deze configuratie: hoewel ik via Tailscale toegang heb tot mijn werkstations, kan ik mijn vrienden en familie niet toegang geven tot mijn thuisnetwerk zonder mijn accountgegevens te onthullen – iets wat ik absoluut weiger. Gelukkig biedt Tailscale's Funnels-functie een eenvoudige manier om dit probleem op te lossen – en dat allemaal zonder dat ik er ook maar een cent voor hoef te betalen! Tailscale Funnels zijn een uitstekende oplossing om specifieke services van je privénetwerk (aangedreven door Tailscale) op een veilige en gecontroleerde manier te 'publiceren' naar het openbare internet. Zo kun je webapplicaties of kleine servers met anderen delen zonder je hele netwerk in gevaar te brengen of complexe configuraties te vereisen.

Wat zijn Tailscale Funnels?

Tailscale Funnels zijn een innovatief mechanisme binnen uw Tailscale-netwerk waarmee u veilig en eenvoudig diensten en applicaties kunt delen met de buitenwereld, die achter een firewall of binnen uw eigen privénetwerk worden gehost. Simpel gezegd: het is een manier om uw diensten op het internet te implementeren zonder de complexiteit van traditionele poortdoorschakeling of reverse proxyservers.

Stel je voor dat je een fantastische webapplicatie hebt ontwikkeld en deze wilt presenteren aan collega's of klanten, of misschien heb je een mediaserver die je overal vandaan wilt benaderen. Met Tailscale Channels kun je dit eenvoudig en veilig realiseren.

Hoe werken Tailscale-kanalen?

Tailscale-kanalen zijn afhankelijk van het creëren van een uniek eindpunt dat toegankelijk is via internet. Wanneer iemand toegang krijgt tot dit eindpunt, routeert Tailscale het verkeer veilig via uw privénetwerk naar de opgegeven service of applicatie.

Voordelen van het gebruik van Tailscale-kanalen:

  1. Veiligheid: Tailscale biedt end-to-end-encryptie van uw verkeer, waardoor uw gegevens beschermd zijn tegen spionage of onderschepping.
  2. Eenvoud: Er is geen ingewikkelde installatie of geavanceerde technische expertise vereist. U kunt een Tailscale-kanaal met slechts een paar klikken opzetten.
  3. Flexibiliteit: Tailscale-kanalen ondersteunen een breed scala aan services en toepassingen, waaronder webtoepassingen, mediaservers, databases en meer.
  4. : U bepaalt wie toegang heeft tot uw kanalen, zodat alleen geautoriseerde personen uw diensten kunnen gebruiken.
    Gemakkelijk delenU kunt uw kanaalkoppelingen eenvoudig delen met anderen, zodat zij eenvoudig toegang krijgen tot uw diensten.

Gebruiksscenario's voor Tailscale-kanalen:

  • Webapplicaties bekijken: Deel demo-webapplicaties of prototypes met klanten of collega's.
  • Toegang tot mediaservers: Overal ter wereld toegang tot uw mediabibliotheek.
  • API-testen: Test uw API's vanuit verschillende omgevingen.
  • Samenwerking op afstand: Deel hulpmiddelen en bronnen met uw externe team.
  • Statische websitehosting: Host statische websites eenvoudig en veilig.

Kortom, Tailscale Channels is een krachtige en flexibele tool waarmee u op een veilige en gestroomlijnde manier eenvoudig services en applicaties met de buitenwereld kunt delen. Hierdoor is Tailscale Channels een ideale keuze voor ontwikkelaars, externe teams en iedereen die overal toegang tot zijn services moet hebben.

Wat is het verschil tussen deze en dynamische DNS?

Een schermafbeelding van de Tailscale-startpagina met een TrueNAS Scale-instantie als exit-node.

VPN's (zowel zelfgehoste als niet-zelfgehoste) zijn de meest gebruikte tools om lokale services beschikbaar te maken voor externe netwerken. Tailscale Connect werkt op een vergelijkbare manier. In wezen verbindt het je apparaten in een mesh P2P-netwerk met behulp van Tailscale-servers, waardoor elk apparaat dat aan je account is gekoppeld toegang heeft tot de apparatuur in je thuislab. Tailscale Funnels daarentegen geeft je zelfgehoste cluster een URL en geeft elk apparaat op internet toegang tot je installatie – niet alleen systemen die geregistreerd zijn op je Tailscale-netwerk.

Dan is er nog dynamische DNS, die een statische domeinnaam toewijst aan het IP-adres van je thuislabopstelling. Het is ook verantwoordelijk voor het bijwerken van de openbare IP-adressen van je services, die regelmatig kunnen veranderen. Dit maakt het een handige tool voor mensen die hun zelfgehoste applicaties beschikbaar willen maken voor meerdere gebruikers op externe netwerken. Persoonlijk geef ik altijd de voorkeur aan Tailscale Funnels.

Wat is het voordeel van Tailscale Funnels?

Met Tailscale Funnels kunt u services die op uw Tailscale-netwerk draaien delen met iedereen op internet, zelfs als ze Tailscale niet hebben geïnstalleerd. Zie het als een veilige en eenvoudige manier om webapplicaties te implementeren, demo's te tonen of zelfs tijdelijk API's te hosten zonder dat u zich zorgen hoeft te maken over de complexiteit van traditionele netwerkconfiguratie of de bijbehorende beveiligingsrisico's.

Met andere woorden, Tailscale Funnels vereenvoudigt het implementatieproces van services en maakt deze toegankelijk voor een breder publiek, met behoud van een hoog niveau van beveiliging en controle. U kunt uw applicaties en services nu met slechts een paar klikken delen met potentiële klanten, collega's of zelfs vrienden, zonder dat er complexe installatie of SSL-certificaten nodig zijn. Dit vermindert de tijd en moeite die nodig is voor de implementatie van services aanzienlijk, waardoor u zich kunt concentreren op de ontwikkeling van uw applicaties in plaats van op het beheer van uw infrastructuur.

Bovendien bieden Tailscale Funnels een extra beveiligingslaag, omdat alle communicatie versleuteld is en via het beveiligde netwerk van Tailscale wordt gerouteerd. Dit zorgt ervoor dat uw gegevens beschermd zijn tegen ongeautoriseerde toegang, zelfs wanneer u uw diensten deelt met mensen buiten uw privénetwerk. Deze functie is vooral belangrijk voor bedrijven die gevoelige gegevens verwerken of moeten voldoen aan strenge beveiligingsvoorschriften.

Dus of u nu een ontwikkelaar bent die op zoek is naar een eenvoudige manier om uw apps te publiceren, een bedrijf dat zijn diensten met klanten moet delen, of gewoon iemand die iets interessants met vrienden wil delen: Tailscale Funnels biedt een eenvoudige, veilige en effectieve oplossing.

Gemakkelijk te installeren op CGNAT-netwerken

Tailscale web-UI

Een van mijn grootste nadelen aan mijn huidige internetprovider is dat deze mijn netwerk achter een CGNAT vergrendelt. Voor degenen die het niet weten: CGNAT (Carrier-Grade Network Address Translation) is een "facilitatie" die hetzelfde IPv4-adres toekent aan meerdere gebruikers, in plaats van elke klant een eigen IP-adres toe te wijzen. Helaas maakt dit het moeilijker om mijn diensten via een zelfgehoste VPN bloot te stellen aan externe netwerken, omdat ik geen uniek IP-adres heb om verkeer van en naar mijn thuislab te routeren.

Tailscale Funnels gebruikt ondertussen de eigen relayservers van het bedrijf als tussenpersoon. Zodra een gebruiker probeert toegang te krijgen tot de URL die aan mijn lokale werkstations is gekoppeld, wordt het verkeer via de relayservers van Tailscale geleid, die de pakketten vervolgens doorsturen naar mijn nodes. Dit maakt het eenvoudig om CGNAT-beperkingen te omzeilen, waardoor de toegang tot zelfgehoste services soepeler en betrouwbaarder verloopt, zelfs in omgevingen met beperkingen voor openbare IP-adressen.

Er zijn geen ingewikkelde poortdoorsturingen of omgekeerde proxyservers nodig.

Dynamische DNS daarentegen vereist het openen van specifieke poorten op je router, en aangezien mijn thuisnetwerk last heeft van CGNAT (Customer-Generated Network Address Translation), is dat vrijwel onmogelijk. Zelfs als ik poortdoorschakeling zou kunnen inschakelen, zou ik dat waarschijnlijk niet doen, omdat ik dan veel moeite zou moeten steken in het instellen van zelfondertekende certificaten en het beveiligen van een reverse proxy-service. Bovendien zou ik dan ook nog eens te maken krijgen met de hoofdpijn van het omgaan met een domeinregistrar – wat allemaal ongelooflijk omslachtig lijkt als ik mijn Nextcloud-bestanden gewoon met een collega-programmeur wil delen.

Begrijp me niet verkeerd: Tailscale Funnels hebben hun eigen beveiligingskwetsbaarheden, hoewel ze veel veiliger zijn dan een door een beginner gemaakte poortdoorschakeling. Het verkeer tussen het apparaat dat toegang heeft tot de openbare URL en mijn lokale services wordt echter versleuteld met een TCP-proxy. Bovendien verbergt de TCP-proxy het IP-adres van mijn zelfgehoste app, en ik kan de beveiliging van de "blootgestelde" app verder verbeteren door privileged users aan te maken met strikte ACL's (toegangscontrolelijsten). Dit biedt een extra beschermingslaag en vermindert het risico op hacking of ongeautoriseerde toegang tot mijn gevoelige gegevens. Bovendien kan Tailscale eenvoudig worden geïntegreerd met systemen voor tweefactorauthenticatie (2FA) om de beveiliging verder te verbeteren.

Publiceer een Tailscale Funnel

Met de Tailscale Funnel-service kunt u webapplicaties en andere services implementeren die op uw lokale computer of privénetwerk draaien, en deze op een veilige en eenvoudige manier via internet beschikbaar maken. Deze functie is met name handig voor ontwikkelaars die hun applicaties willen testen of aan klanten willen presenteren zonder complexe infrastructuurconfiguraties of zich zorgen te hoeven maken over beveiligingsrisico's.

Een Tailscale-kanaal creëert een veilig en betrouwbaar eindpunt dat toegankelijk is via internet. In plaats van uw server of applicatie rechtstreeks bloot te stellen aan het internet, fungeert een Tailscale-kanaal als tussenpersoon en routeert versleuteld verkeer via uw eigen Tailscale-netwerk. Dit zorgt ervoor dat de toegang tot uw applicatie wordt beschermd door de sterke encryptie van Tailscale, waardoor het risico op cyberaanvallen aanzienlijk wordt verminderd.

Stappen voor het publiceren van Tailscale-kanalen:

1. Tailscale installeren: Zorg ervoor dat Tailscale is geïnstalleerd en geconfigureerd op het apparaat waarop de app of service die u wilt implementeren, wordt gehost. Het apparaat moet verbonden zijn met uw Tailscale-netwerk.

2. Funnel inschakelen: Schakel de Funnel-functie in op de machine waarop de applicatie wordt gehost. Dit kunt u doorgaans doen via de opdrachtregelinterface (CLI) van Tailscale. U kunt bijvoorbeeld de opdracht `tailscale funnel on 80` gebruiken om een ​​webapplicatie te implementeren die op poort 80 draait.

3. DNS-configuratie (optioneel): U kunt een DNS-record configureren dat verwijst naar het adres van uw funnel voor eenvoudige toegang. Hierdoor kunnen gebruikers toegang krijgen tot uw app met een herkenbare domeinnaam in plaats van een IP-adres.

4. Testen en verifiëren: Nadat u uw Funnel hebt ingesteld, controleert u of deze goed werkt door uw app te openen vanaf een ander apparaat dat is verbonden met het Tailscale-netwerk of via internet (als uw Funnel-instellingen dit toestaan).

Met Tailscale Funnel kunt u uw applicaties en services eenvoudig en veilig op internet implementeren, zonder dat u daarvoor gespecialiseerde technische expertise of grote investeringen in infrastructuur nodig hebt.

Heel gemakkelijk

Maak een Tailscale-pad

In tegenstelling tot de meeste complexe netwerktoepassingen is Tailscale extreem eenvoudig te installeren, en dat geldt ook voor de Funnels-functie. Zodra Tailscale draait op de virtuele machines, kan ik eenvoudig de opdracht `tailscale funnel` uitvoeren, gevolgd door het poortnummer dat ik beschikbaar wil maken.

Tailscale toont vervolgens een webinterface om de route in te schakelen, en dat is het dan ook wel. Tailscale verwerkt de rest van het proces automatisch, van het genereren van HTTPS-certificaten en het verbinden met relays tot het configureren van DNS-records. Dit gemak maakt Tailscale een aantrekkelijke optie voor ontwikkelaars en IT-professionals die op zoek zijn naar veilige en efficiënte netwerkoplossingen zonder al te veel administratieve complexiteit.

Er bestaan ​​nog steeds beperkingen in Tailscale Funnels

Ondanks de vele voordelen die Tailscale Funnels biedt, zijn er nog steeds enkele beperkingen waarmee rekening moet worden gehouden bij het gebruik van deze functie. Gebruikers moeten deze beperkingen begrijpen om optimaal gebruik te garanderen en potentiële problemen te voorkomen. Deze beperkingen omvatten:

  • Vertrouwen op Tailscale-connectiviteit: De functionaliteit van Funnels is volledig afhankelijk van een actieve Tailscale-verbinding. Als er een Tailscale-verbindingsfout optreedt, is toegang tot de via Funnels beschikbare services niet beschikbaar.
  • Bandbreedtebeperkingen: Er kunnen beperkingen zijn aan de beschikbare bandbreedte via funnels, vooral als er een groot aantal gebruikers is of als services een hoge bandbreedte vereisen. Het bandbreedtegebruik moet worden bewaakt om optimale prestaties te garanderen.
  • Mogelijke complexiteit in de opstelling: Hoewel Tailscale zo is ontworpen dat het eenvoudig in gebruik is, kan het instellen van Funnels toch enige technische kennis vereisen, vooral bij complexe netwerkconfiguraties.
    Mogelijke beveiligingsproblemen: Hoewel Tailscale een sterke beveiligingslaag biedt, moeten de nodige veiligheidsmaatregelen worden genomen bij het blootstellen van diensten aan het internet via funnels. Zorg ervoor dat diensten adequaat worden beschermd en dat er mechanismen voor monitoring en dreigingsdetectie zijn.
  • Mogelijke geografische beperkingen: Er kunnen geografische beperkingen gelden die worden opgelegd door bepaalde services of door lokale wetten, waardoor de toegang tot de Services via Funnels vanuit bepaalde regio's kan worden beïnvloed.

Gebruikers moeten deze beperkingen zorgvuldig evalueren voordat ze Tailscale Funnels als primaire oplossing voor externe toegang kiezen. Met de juiste planning en kennis van de beperkingen kunnen Funnels effectief en veilig worden gebruikt.

Maar ter verdediging van Tailscale: Funnels bevindt zich nog in de bètafase.

Sommige opslageenheden zijn aangesloten op een 10GbE-adapter

Helaas is Tailscale Funnels niet de ideale oplossing voor het demonstreren van zelfgehoste applicaties, omdat het een aantal vervelende beperkingen met zich meebrengt. Zo kan Tailscale Funnels bijvoorbeeld alleen pakketten beluisteren op een beperkt aantal netwerkpoorten: 443, 8443 en 10000. Ook kan het alleen DNS-namen gebruiken op mijn eigen tailnet, dus ik kan geen vreemde URL gebruiken om mijn thuislab in te richten.

Gezien het feit dat deze dienst zich nog in de bètafase bevindt, is Tailscale Funnels verrassend krachtig. Sterker nog, het is mijn favoriete manier om mijn zelfgehoste app-suite te delen met vrienden en familie. De eenvoudige installatie en betrouwbare prestaties maken het een waardevolle tool, ondanks de huidige beperkingen, vooral in vergelijking met complexere alternatieven. Naarmate Tailscale Funnels verder ontwikkelt, kunnen we in de toekomst nog meer flexibiliteit en functionaliteit verwachten.

Reacties zijn gesloten.