Huis Automatisering

Enkele Instellingen


Het werkt nu. Maar je kunt nog een aantal dingen aanpassen naar jouw wensen. Je kunt van alles instellen, en ongetwijfeld komen er in de toekomst nog meer instellingen bij. Dit verhaal zal heel lang worden als ik helemaal compleet zou willen zijn. Ik zal me daarom beperken tot de instellingen die ik normaal gesproken zelf meestal gebruik.


Dashboard


Alle instellingen worden gewijzigd in het machines dashboard als je ingelogd bent op de Tailscale website.

Computernaam wijzigen


Deze kennen we al, maar dit keer met wat plaatjes om het te verduidelijken. Je kunt de computernaam gemakkelijk aanpassen. De computernaam is handig, want dan hoef je zijn IP adres niet te onthouden.


Computernaam wijzigen
Klik op de drie puntjes om het menu open te klappen en klik dan op Edit machine name


Nieuwe naam
Schakel de Auto-generate from OS hostname uit, waarna je de computernaam aan kunt passen

Key levensduur


Iedere computer die je op het Tailscale netwerk aansluit, genereert een key pair voor de encryptie. Standaard staat Tailscale zo ingesteld dat die key pair elke 180 dagen vernieuwd moet worden.
Zolang computers regelmatig aan staan is dat geen probleem, omdat vernieuwing volledig automatisch gebeurt. Maar theoretisch kan het zijn dat een computer, die zelden aan staat, met verouderde keys werkt en daardoor niet meer uit zichzelf mee gaat doen in het netwerk. En je zult zien dat dat gebeurt met een computer waar je niet op een andere manier bij kunt komen.

De reden waarom de keys na 180 vernieuwd worden is om er voor te zorgen dat een uitgelekte private key daarna waardeloos wordt. Het is dus een veiligheidsmaatregel. Daar is wat voor te zeggen natuurlijk. Maar persoonlijk ben ik niet zo bang voor het uitlekken van mijn keys. Dat kan alleen als iemand heeft ingebroken op mijn computer, en dan zijn er belangrijkere maatregelen te nemen om dat te stoppen. En dan kun je de keys ook handmatig verversen. Dat kan overigens ook wanneer ze automatisch na 180 dagen ververst worden.

Daarom kies ik ervoor om de verloopdatum van de keys helemaal uit te schakelen, van al mijn computers. Dit doe je in je Tailscale dashboard bij de computer instellingen door de Key Expirey optie uit te schakelen.


Key levensduur
Klik op de drie puntjes om het menu open te klappen en klik dan op Disable key expiry om het verlopen van de key te stoppen


Key levensduur uitgeschakeld
In het machine overzicht zie je nu dat de key is uitgeschakeld


Je kunt overigens in de globale instellingen de 180 dagen levensduur ook nog aanpassen.

Subnet routing


Nu wordt het helemaal leuk. Alles werkt inmiddels. Maar we hebben nog niet alle uitdagingen opgelost. Hoe kan ik met mijn telefoon een verbinding maken naar mijn webcam als ik niet thuis ben bijvoorbeeld? Je kunt immers geen Tailscale op je camera installeren. En wellicht heb je wel meerdere apparaten waar je geen Tailscale op kunt installeren. Bijvoorbeeld je router, of bij een computer waar je geen rechten hebt om programma’s te installeren.

Hier komt subnet routing je te hulp. Het komt erop neer dat je via het Tailscale netwerk een route creëert naar je thuisnetwerk. Het enige wat je daarvoor nodig hebt is een computer in je thuisnetwerk, die altijd aan staat. Deze computer geef je dan de functie van subnet router. Bij voorkeur is dat een Linux computer, bijvoorbeeld een Raspberry Pi. Het kan ook een Windows computer zijn, of zelfs een tablet of Telefoon. Maar die staan meestal niet 24/7 aan. Ik leg hier alleen maar uit hoe het op een Linux computer moet worden ingesteld. Dat zijn waarschijnlijk 99.5% van de use cases.

Stel voor dat we takkie, onze Linux server gaan bombarderen tot subnet router. Dan moeten we de volgende stappen uitvoeren.

Voer de volgende drie regels met toverspreuken uit in de terminal van takkie.

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

De eerste twee regels maken een bestand aan met routering instructies voor je server. De derde regel geeft je server de opdracht om die nieuwe instellingen ook daadwerkelijk te gaan gebruiken.

Daarna voer je het volgende commando uit in de terminal op je Linux server:

sudo tailscale set --advertise-routes 192.168.1.0/24

Hiermee wordt de subnet route ingesteld. Het IP adres moet natuurlijk worden aangepast aan jouw eigen netwerk. Meestal is dat een /24 netwerk (hetzelfde als bij een subnet mask van 255.255.255.0). In dat geval moet het laatste getal van je netwerk altijd een 0 zijn.
Heb je geen /24 netwerk dan hoop ik dat je zelf slim genoeg bent om je netwerk adres goed op te kunnen geven.

We zijn er bijna. In de eerste stap hebben we het technisch mogelijk gemaakt om een subnet route te gebruiken. In de tweede stap hebben we Tailscale de opdracht gegeven om die route ook daadwerkelijk aan te maken. Het enige wat we nu nog moeten doen is de subnet routing toe te staan in het Tailscale dashboard.

Ga in het Tailscale dashboard naar de computer die de subnet router wordt (takkie in ons geval). Klik op de 3 puntjes en zet de routing aan.


Subnet route
Onder de computernaam kun je al zien dat takkie zijn subnet route wil delen


Subnet route
Zet een vinkje bij het subnet wat je wilt activeren (je hebt er maar een, dus de keuze is eenvoudig)


Als het goed is moet het nu werken. Maar we zijn er nog niet helemaal. We moeten nu bij de mobiele apparaten (laptop, telefoon, tablet), nog even aangeven dat we gebruik willen maken van die subnet route. Computers die altijd in je eigen subnet verblijven hebben die route niet nodig.

Op je telefoon open je de Tailscale app. Let op het schuifje links bovenaan moet natuurlijk wel op Active staan, anders werkt Tailscale helemaal niet. Klik dan op de drie puntjes rechts bovenaan en kies Use exit node… Zet nu een vinkje bij Allow LAN access.


Activeer LAN toegang


Op een Linux computer moet je even naar de terminal gaan en daar de volgende toverspreuk uitvoeren:

sudo tailscale set --use-subnet

Zo schakel je hem dus in. Uitschakelen doe je met de volgende toverspreuk:

sudo tailscale set --use-subnet false

Op andere computers kun je deze instelling in de menu’s terugvinden.

Nu gaan we controleren of het werkt. Dit doen we bijvoorbeeld met je telefoon, zonder Wifi verbinding. We gaan een verbinding maken met je modem/router. Zorg om te beginnen dat je subnet routing aan hebt staan op je telefoon. Open de webbrowser op je telefoon en ga naar 192.168.1.1, tenminste als dat het adres van je modem/router is. Als het goed is wordt de inlogpagina van je modem/router dan zichtbaar.

Zie je wat hier gebeurt? Je telefoon heeft geen rechtstreekse verbinding naar je interne netwerk. Je modem/router is dus eigenlijk niet bereikbaar. Maar via Tailscale en de subnet router takkie kun je toch een verbinding maken met elke willekeurige computer in je thuisnetwerk, dus ook je modem/router. Zelfs als die computer geen Tailscale geïnstalleerd heeft. Voorwaarde is wel dat je takkie dus aan laat staan. Maar dat was je toch al van plan omdat takkie je hele huis bestuurt.

PS: Technisch gezien kun je meerdere subnet routes maken. In het begin mocht dat niet echt, maar het werd wel getolereerd. Nu mag het zelfs legaal.
Maar let we op! Stel voor dat je thuis het subnet 192.168.1.0/24 gebruikt en je wilt een ander netwerk opnemen in je subnet routes. Dan mag dat andere subnet niet ook 192.168.1.0/24 zijn. Je netwerk raakt in de war als er meerdere netwerken zijn met dezelfde subnet adressen. Dit kan zo maar gebeuren als je je subnet standaard zo laat zoals je router het voorstelt. De kans is dan groot, als de overkant dat ook niet veranderd heeft, dat je aan beide kanten hetzelfde subnet hebt.
Mijn oplossing voor dit probleem is dat ik bijvoorbeeld het huisnummer in mijn eigen subnet gebruik en ik gebruik het minder gebruikelijke subnet wat met 10 begint. Stel voor, je woont op nummer 123, dan kun je 10.123.1.0/24 gebruiken. De kans is dan een stuk kleiner dat je met subnet conflicten te maken gaat krijgen.

Meer informatie is terug te vinden op de Docs pagina van Tailscale

Exit node


Je moet toegeven, subnet routing was leuk, toch? Maar we gaan nu nog een stapje verder. Ook nu weer gaan we routeren. Dat betekent dat we de eerste stappen, die we bij subnet routing nodig hadden, gaan hergebruiken.

Dus als we takkie reeds als subnet router hebben ingesteld, dan hoeven we daar niet nog een keer de eerste stap te nemen, je weet wel, die drie regels die een bestand aanmaken en dat daarna activeren. Die stap slaan we nu over. Als je een andere Linux server als exit node wilt gebruiken dan moet je die eerste drie regels wel een keer uitvoeren op die computer.
Dat is bijvoorbeeld nodig als je een VPS ergens in de cloud hebt, die je als exit nodig wenst te gebruiken. Subnet routing heeft op zo’n VPS geen zin, want die computer zit niet in ons thuisnetwerk.
In tegenstelling tot subnets, kun je met een gratis account zo veel computers als exit node aanwijzen als je wilt. Je kunt er per apparaat toch maar een tegelijk van gebruiken.

De tweede stap lijkt op de tweede stap van subnet routing, maar is een klein beetje anders.

Voer in de terminal de volgende toverspreuk uit:

sudo tailscale set --advertise-exit-node

En weer hebben 2 van de drie stappen al klaar. In de eerste stap (die we de vorige keer al hebben gedaan) hebben we het routeren technisch mogelijk gemaakt en in de tweede stap hebben we aan ons Tailscale netwerk kenbaar gemaakt dat takkie graag een exit node wil zijn.

Rest ons alleen nog maar om op het Tailscale dashboard aan te geven dat de betreffende machine ook werkelijk exit node mag zijn. En dan werkt het alweer.


Activeer exit node


Maar wat kun je er nu mee? Stel voor je bent weer een hamburger aan het eten en je maakt daar weer gebruik van hun Wifi aansluiting. Als we Tailscale aan hebben staan dan gaat al het verkeer tussen onze telefoon, tablet of computer al encrypted naar ons eigen netwerk. Maar als we op internet iets opzoeken dan gaat dat nog steeds via het onveilige Wifi netwerk van de hamburgergigant. Dat is niet zo heel veilig dus.

Tik op je telefoon in de Tailscale app nu op de drie puntjes rechtsbovenaan en selecteer Use exit node … Kies dan de exit node die wilt gebruiken. Als je er maar één hebt is die keuze niet moeilijk. Vanaf nu kun je ook encrypted naar het hele internet gaan op dit publieke Wifi netwerk. Niemand kan meeluisteren.
Je kunt de exit node ook aan laten staan. Zo heb je een "always on" VPN. Dus waar je ook bent, voor het internet is het net alsof je thuis bent.

Leuke tips: Als je een VPS (een Virtual Private Server) in de cloud hebt kun je die ook als exit node gebruiken. Op die manier kun je weer gebruikmaken van de piratenbaai, iets wat doorgaans geblokkeerd is op je thuisnetwerk. Of als je een VPS in Amerika hebt, dan kun je die als exit node gebruiken om Amerikaanse Netflix series te kijken.

Bij een Linux laptop moet je via de terminal de exit node aan en uit zetten. Bij alle andere OSsen kan dan via het menu.

Exit node aanzetten doe je zo:

sudo tailscale set -use-exit-node takkie

Exit node uitzetten doe je zo:

sudo tailscale set -use-exit-node “”

Meer informatie is terug te vinden op de Docs pagina van Tailscale

DNS


Thuis maak ik al jaren gebruik van Pi-Hole. Pi-Hole is een DNS server. En de taak van een DNS server is om domeinnamen te vertalen naar IP adressen. Dat doet Pi-Hole ook, maar dan alleen als de domeinnaam niet te boek staat als een gevaarlijk bestemming of een advertentie bron. Daarmee kun je dus advertenties en gevaarlijke phishing sites blokkeren.
De naam Pi-Hole suggereert dat het op een Raspberry Pi draait. Dat klopt, het kan op een Raspberry Pi draaien. Maar het kan ook op een willekeurige andere Linux machine draaien.
Een alternatief voor Pi-Hole is Adguard. Dat werkt ongeveer hetzelfde, maar is van een andere maker.

Het leuke van een Pi-hole is dat advertenties geblokkeerd worden, ongeacht welke browser je gebruikt. Sterker nog, al die "leuke" gratis spelletjes op je telefoon vertonen plotseling ook geen advertenties meer. Is dat niet fijn. Leuk dat dat thuis zo mooi werkt, maar hoe doen we dat onderweg? Simpel, door de DNS door Tailscale te laten uitvoeren. Stel de standaard DNS van je mobiele apparaat in op het Tailscale adres van je Pi-Hole machine. En vertel Tailscale ook even welk adres dat is in het Tailscale Dashboard.


DNS instellingen
In dit voorbeeld draait pi-hole op takkie. Vandaar IP adres 100.120.117.33.


Vanaf dat moment gaan alle DNS aanvragen via je Pi-Hole (of Adguard) en heb je geen advertenties meer, ook niet als je onderweg bent.

PS: Het is raadzaam om twee pi-hole servers in je netwerk te draaien als dat mogelijk is. Geef dan in bovenstaande stap beide adressen op. Op die manier kan er eentje even een rustpauze nemen, bijvoorbeeld als een nieuwe versie geïnstalleerd wordt, zonder dat je hele netwerk zonder DNS komt te zitten. Want als de DNS server niet werkt, kun niemand in je netwerk meer internetten.

Samenvatting


We zijn er bijna doorheen. Tailscale kan nog veel meer. Maar ook ik maak geen gebruik van alle mogelijkheden. Ik vind het zo al heel erg leuk.

Op de volgende pagina wil ik alleen nog een paar tips met je delen. Dan hou ik ermee op.