ID.nl logo
Zo draai je Android op je Raspberry Pi
© Reshift Digital
Huis

Zo draai je Android op je Raspberry Pi

Op een Raspberry Pi draai je normaal een Linux-distributie, maar ook Android draait erop. Het voordeel is dat je onmiddellijk een besturingssysteem hebt dat is ontworpen voor een aanraakscherm én dat je toegang hebt tot een breed assortiment Android-apps. Sluit gewoon een aanraakscherm op je Raspberry Pi aan, installeer Android en je hebt een infobord, spelletjesmachine en meer.

Stel jezelf eerst de vraag waarom je Android op je Raspberry Pi zou draaien? Raspberry Pi OS (het vroegere Raspbian) is best gebruiksvriendelijk en je hebt toegang tot allerlei opensource-software. Het is ook het officiële besturingssysteem van de Raspberry Pi en daardoor uitstekend ondersteund. Maar de standaard gebruikersinterface is domweg niet ontworpen voor een aanraakscherm.

Voor toepassingen waarbij een aanraakscherm wel handig is, gebruik je het best een besturingssysteem dat daar van meet af aan is voor ontworpen. En zo komen we bij Android uit. Als je een klein aanraakscherm op je Raspberry Pi aansluit, zou een tabletinterface immers ideaal zijn. Bovendien heb je zo ook toegang tot Android-apps, die allemaal ontworpen zijn voor een aanraakinterface. Wij probeerden Android 10 uit op een Raspberry Pi 4B met 8 GB geheugen in combinatie met het officiële 7inch-aanraakscherm voor de Raspberry Pi en een hdmi-aanraakscherm (ook 7 inch) van Adafruit, beide met een resolutie van 800 × 480 pixels. We raden echt de Raspberry Pi 4B aan: op de Raspberry Pi 3B+ bleek Android veel te traag te zijn.

©PXimport

01 Aangepaste LineageOS

Als je Android op je Raspberry Pi wilt draaien, heb je een aangepaste versie van LineageOS nodig, de bekendste custom rom voor Android-telefoons. Je vindt die aangepaste versie op de website van KonstaKANG, een ontwikkelaar die ook actief is op het Android-forum XDA-Developers. Met de hulp van anderen heeft hij LineageOS aangepast zodat die op de Raspberry Pi 3B, 3B+ en 4B (met minstens 2 GB geheugen) draait. Eerdere modellen van de Raspberry Pi worden niet ondersteund.

Heb je een Raspberry Pi 3B of 3B+, download dan de nieuwste LineageOS voor de Pi 3. Heb je een Raspberry Pi 4B, download dan de versie voor de Pi 4. Op het moment van schrijven was dat LineageOS 17.1 (wat overeenkomt met Android 10). Mogelijk is er wanneer je dit leest al een nieuwere versie.

Schrijf vervolgens het gedownloade zip-bestand met een programma zoals balenaEtcher of USBImager naar een micro-sd-kaartje van minstens 8 GB groot. Wanneer dat is voltooid, steek je het micro-sd-kaartje in je Raspberry Pi, sluit je het aanraakscherm, eventueel een ethernetkabel en tot slot de voedingskabel aan. Als alles goed gaat, start je Raspberry Pi nu in Android op.

©PXimport

02 Eerste opstart

Als je scherm zijn ondersteunde resoluties niet meldt via EDID, start LineageOS standaard op in een resolutie van 1280 × 720 pixels (voor de Raspberry Pi 3) of 1920 × 1080 pixels (voor de Raspberry Pi 4). Als je scherm die resolutie niet ondersteunt (zoals bij onze beide schermen het geval is), krijg je maar een deel van het scherm te zien. Om dat op te lossen, steek je de micro-sd-kaart weer in je pc en open je in de bootpartitie die wordt aangekoppeld het bestand resolution.txt. Vul daar de resolutie van je scherm in, zoals 800x480. Sla het bestand op, ontkoppel de micro-sd-kaart en start je Raspberry Pi er weer van op.

Gebruik je het officiële scherm van de Raspberry Pi, dan zul je nog altijd niets zien. Je dient daarvoor namelijk de software-renderer in te schakelen. De eenvoudigste oplossing is om eerst een ander scherm en een muis aan te sluiten, zodat je tenminste iets ziet en daarna de instellingen kunt aanpassen. Op de website van KonstaKANG vind je de instructies.

03 Initiële configuratie

Je ziet na een tijdje het beginscherm van LineageOS. Druk rechtsonder op de knop Next. Heb je een scherm zonder aanraakfunctionaliteit aangesloten (of het Adafruit-scherm waarvan we ontdekken dat de aanraakfunctionaliteit wordt ondersteund), sluit dan een muis aan.

In het volgende scherm druk je op Accept om te bevestigen dat je dit project niet commercieel gebruikt. Daarna kies je je taal (ook Nederlands staat erbij), je tijdzone (Amsterdam) en stel je de huidige datum en tijd in.

Na een druk op Volgende kies je een wifi-netwerk en voer je je wachtwoord in. Na nog een keer Volgende vink je aan of apps toegang tot je locatie mogen krijgen en of je diagnostische gegevens naar de makers van LineageOS wilt sturen om te helpen met de ontwikkeling. Daarna kun je ook een pincode of wachtwoord kiezen, of je slaat die stap over als je dat niet belangrijk vindt. Klik tot slot op Start om Android te gaan gebruiken.

©PXimport

Beperkingen van een Raspberry Pi

Android is uiteraard niet ontwikkeld voor een Raspberry Pi, dus je loopt dan wel tegen wat beperkingen aan. Zo zijn er geen geoptimaliseerde drivers, decoders en encoders voor video, waardoor alles wat traag aanvoelt. En heel wat zaken die bij een smartphone of tablet al ingebouwd zijn, dien je op een Raspberry Pi nog extra aan te sluiten: een audioapparaat, camera, gps, infraroodzender en realtime klok bijvoorbeeld. Deze zijn overigens allemaal ondersteund in LineageOS op de Raspberry Pi, maar je moet ze uiteraard zelf aansluiten. De Raspberry Pi heeft zelfs geen aan-uitknop. Wil je die aansluiten om bijvoorbeeld gemakkelijker te herstarten, sluit dan een knop aan tussen gpio-pin 21 en GND en voer in een terminal deze opdrachten uit om de ondersteuning te installeren: su rpi4-powerbutton.sh

©PXimport

04 Android rooten

De Android-omgeving die je nu te zien krijgt, is vrij kaal. De basis-apps zoals een agenda, browser, contacten, bestandsbeheerder, e-mail, galerij, klok, muziek-app en opname-app zijn van de partij, maar dat is het al bijna. In totaal zijn er vijftien apps geïnstalleerd. Loop zeker ook eens door de instellingen.

Dit systeem is uiteraard te beperkt om mee te werken. Om extra apps te kunnen installeren, moeten we roottoegang inschakelen in Android. Druk daarvoor eerst helemaal onderaan in de instellingen op Over tablet en druk dan zeven keer op Build-nummer om de ontwikkelaarsopties vrij te geven.

Ga daarna in de instellingen naar Systeem / Geavanceerd / Ontwikkelaarsopties en schakel Root access in. Schakel iets daaronder ook Lokale terminal in. Daarna verschijnt de app Terminal bij je apps. Hierin kun je allerlei opdrachten invoeren voor het Android-systeem. Voor sommige opdrachten heb je rootrechten nodig: daarvoor dien je eerst su in te typen, waarna je als root ingelogd bent in de terminal en daarna de opdracht zelf.

©PXimport

05 Open GApps

Waarschijnlijk wil je gewoon de apps van Google draaien op je Raspberry Pi met Android. Dat kan, maar vereist nog wat extra stappen. Bezoek eerst in de browser op Android deze website en selecteer daar als platform ARM, als Android-versie 10.0 en als variant pico. Dit is de minimale variant die je nodig hebt om Google Play te draaien. Download dit pakket dan, het is zo’n 90 MB groot.

Download daarna op je Raspberry Pi ook het zip-bestand lineage-xx.x-rpi-recovery2boot.zipvan KonstaKANG, dat we later nodig hebben om uit de recoverymodus te raken. Om het bestand te kunnen downloaden, schakel je wel eerst in de browser de weergave van de website om naar desktopmodus (via de drie puntjes rechts van de adresbalk).

Zodra je beide zip-bestanden hebt gedownload, open je een terminalvenster en voer je deze commando’s uit:

su

rpi4-recovery.sh

reboot

De eerste opdracht om als rootgebruiker te werken, de tweede om de micro-sd-kaart over te schakelen zodat die niet meer LineageOS opstart, maar de recoveryfirmware TWRP. Met de derde opdracht herstart je de Raspberry Pi.

©PXimport

06 Recoverymodus

Je Raspberry Pi toont nu het opstartscherm van TWRP. Veeg de knop rechts onderaan naar rechts om aanpassingen aan het systeem toe te staan. Kies dan Install, navigeer links naar de map Download en druk op het zip-bestand van Open GApps. Vink Reboot after installation is complete aan en veeg de knop rechts onderaan naar rechts om het bestand te flashen.

Je zult merken dat je na de reboot weer in de recoverymodus komt. Kies in het menu nu eerst Wipe en veeg de knop rechts onderaan naar rechts voor een herstel naar de (in dit geval fictieve) fabrieksinstellingen. Kies Install en selecteer het zip-bestand lineage-xx.x-rpi-recovery2boot.zip en vink Reboot after installation is complete weer aan voordat je het bestand flasht. Na de volgende reboot start LineageOS weer op.

©PXimport

07 Google Play

Omdat je via Open GApps nu Google Play hebt geïnstalleerd en een factory reset hebt uitgevoerd, moet je opnieuw je taal te kiezen en de wifi-toegang configureren. Je krijgt de vraag of je je apps, foto’s, contacten en Google-account wilt overzetten. Daarna log je in met je Gmail-account. Nadat je alle stappen hebt doorlopen om je Android-apparaat gebruiksklaar te maken, druk je weer op Start en zie je weer dezelfde kale Android-omgeving, maar deze keer met een extra app: Google Play.

In Google Play kun je zoals je gewend bent allerlei Android-apps installeren. Overigens zullen niet alle apps even goed werken (zie ook het kader ‘Nog niet helemaal gebruiksklaar’ aan het einde van dit artikel). De meest voorkomende problemen zijn de resolutie en oriëntatie van het scherm: veel apps verwachten echt een smartphonescherm in portretmodus. Sommige apps crashen ook onverwacht en Google Play laat soms het hele besturingssysteem herstarten.

©PXimport

Geen aanraakscherm?

Android is ontworpen voor een aanraakscherm en dat geeft dan ook de optimale gebruikerservaring. Gebruik je geen aanraakscherm met je Raspberry Pi, dan is het wat aanpassen. Je zult dan minstens een muis moeten aansluiten om te kunnen klikken. Via het softkeyboard op het scherm kun je ook letters typen of je sluit een gewoon toetsenbord aan. Het voordeel van een toetsenbord is dat je met diverse toetsen de knoppen van een smartphone kunt simuleren: F1 = Home, F2 = Terug, F3 = Multitasking, F4 = Menu, F5 = Power, F11 = Volume omlaag en F12 = Volume omhoog.

08 Infobord

Als je even met Android op de Raspberry Pi speelt, zul je merken dat dit besturingssysteem het meest tot zijn recht komt als je de Raspberry Pi als een soort interactief infobord gebruikt. Laat er bijvoorbeeld je agenda op weergeven of gebruik de ingebouwde klok-app als timer voor tijdens het koken. Of wat dacht je van de app van NS om de vertrektijden van de treinen te tonen? Of gebruik de browser om bijvoorbeeld via je Raspberry Pi toegang te krijgen tot de webinterface van je domoticasysteem, zoals Home Assistant. Zo maak je heel eenvoudig van je Raspberry Pi een webkiosk, die daarnaast toch ongelooflijk flexibel is omdat je allerlei Android-apps kunt draaien.

©PXimport

09 Portretmodus

Tot nu toe hebben we het scherm altijd in landschapsmodus gebruikt, omdat dat voor een infobord nu eenmaal de handigste oriëntatie is. Maar veel apps zijn ontworpen voor de portretmodus van een smartphone. Wil je toch je scherm in portretmodus instellen, dan dien je weer een configuratiebestand in de bootpartitie aan te passen. Schakel de Raspberry Pi dus uit. Als je geen aan-uitknop hebt en nog altijd rootrechten hebt, kan dat door deze commando’s in de terminal te typen:

su

reboot -p

De -p van ‘power off’.

Steek de micro-sd-kaart dan in je computer en open het bestand config.txt in de bootpartitie. Voeg daar de volgende regel aan toe om het scherm 90 graden te draaien:

display_lcd_rotate=1

En zoek dan naar de volgende regel voor de aanraakfunctionaliteit:

dtoverlay=rpi-ft5406

En vervang die door:

dtoverlay=rpi-ft5406,touchscreen-swapped-x-y=1,touchscreen-inverted-x=1

Sla je wijzigingen op en ontkoppel de micro-sd-kaart. Als je deze weer in je Raspberry Pi steekt en die opstart, toont Android zijn interface in portretmodus. Apps zoals die van de NS zijn nu veel handiger om te gebruiken.

10 Android TV installeren

Voor de Raspberry Pi 4 heeft KonstaKANG ook een image waarmee je van je Raspberry Pi een Android TV-apparaat maakt. Dat is handig als je je Raspberry Pi op een groter scherm wilt aansluiten, zoals het tv-scherm in je woonkamer, maar toch graag de vertrouwde interface van Android wilt.

Download de nieuwste versie van de Android TV-editie van LineageOS voor de Raspberry Pi 4. Op het moment van schrijven was dat LineageOS 17.1 (wat overeenkomt met Android 10). Mogelijk is er wanneer je dit leest al een nieuwere versie. Schrijf deze naar een micro-sd-kaart van minstens 8 GB groot en start daar je Raspberry Pi van op, nadat je die op je scherm hebt aangesloten.

Omdat je tv-scherm hoogstwaarschijnlijk geen aanraakscherm is, heb je uiteraard nog invoerapparatuur nodig. Een draadloos toetsenbord en muis zijn dan handig. Een andere optie is een zogenoemde airmouse: een minitoetsenbord met ingebouwde trackpad om draadloos vanaf de bank je Android-tv aan te sturen.

©PXimport

11 En verder

Voor de rest werkt de Android TV-editie op de Raspberry Pi bijna hetzelfde als de normale Android-editie. Je dient ook hier weer je apparaat te rooten, Open GApps via de recoverymodus te installeren en daarna kun je via de Play Store allerlei apps installeren. De landschapsinterface van Android TV met zijn grote icoontjes komt beter op zijn recht op een grote tv.

Maar ook hier loop je tegen wat beperkingen aan. Omdat de Raspberry Pi niet is gecertificeerd als Android TV-apparaat, is de Chromecast-functionaliteit niet ondersteund. Je kunt dus helaas geen video’s van je smartphone naar je slimme tv casten. Ook de officiële app Android TV Remote Control om je Android-telefoon als afstandsbediening voor je Android TV-apparaat te gebruiken, is niet ondersteund. Maar al met al zijn Android en Android TV op je Raspberry Pi interessante besturingssystemen voor heel wat toepassingen.

©PXimport

Nog niet helemaal gebruiksklaar

Verwacht van Android op je Raspberry Pi niet hetzelfde gebruiksgemak als op je smartphone of tablet. De Raspberry Pi is immers geen kant-en-klaar consumentenapparaat, maar een ontwikkelbordje. De versie van LineageOS die KonstaKANG heeft gemaakt voor de Raspberry Pi, is ook geen officiële LineageOS-versie. Bovendien geeft hij zelf aan dat het experimenteel is en alleen bedoeld voor geavanceerde gebruikers. Verder werken er nog enkele zaken niet, zoals de meegeleverde camera-app (hoewel heel wat andere camera-apps wel werken) en sommige games die vreemde kleuren weergeven. We ontdekten zelf al dat sommige apps zoals TeamViewer Host of alpha vnc lite niet goed werken met de niet-standaardafmetingen van het scherm en de landschapsmodus: ze tonen zich dan alleen op een smalle strook in het midden van het scherm. En de eerste keer dat we een app openen na de installatie, herstart de Raspberry Pi elke keer, merkten we. Kortom, Android op de Raspberry Pi is duidelijk nog werk in uitvoering.

▼ Volgende artikel
AMD hint naar komst van nieuwe Xbox in 2027
© Reshift Digital BV
Huis

AMD hint naar komst van nieuwe Xbox in 2027

AMD lijkt te hinten naar de mogelijkheid dat de volgende generatie Xbox-console in 2027 verschijnt.

Tijdens de bekendmaking van fiscale kwartaalcijfers meldde Lisa Su, de ceo van AMD, het volgende (via PC Mag): "Qua producten loopt Valve op schema om begin dit jaar de op AMD-technologie draaiende Steam Machine uit te brengen, en de ontwikkeling van Microsofts volgende generatie van Xbox met een deels op maat gemaakte SoC boekt progressie om een release in 2027 te ondersteunen."

Met SoC bedoelt Su 'system-on-a-chip', waarbij de meeste componenten die nodig zijn voor een computer of console op een allesomvattend circuit geplaatst worden. Dit is meestal de standaard bij spelcomputers.

2027 of later?

Microsoft kondigde eerder al aan dat het samen met AMD aan een nieuwe console werkt, maar een precieze releasedatum werd toen niet gegeven. Gezien Su's opmerking, lijkt AMD dus te verwachten dat de spelcomputer in 2027 verschijnt.

Dit terwijl de PlayStation 6 - Sony's nieuwe console - volgens geruchten mogelijk intern wordt uitgesteld zodat het pas later dit decennium verschijnt. Dit deels vanwege de stijgende kosten voor RAM in verband met de benodigdheden voor het draaiende houden van AI in combinatie met het huidige economische milieu. Officieel is niet bekend wanneer de PS6 uit moet komen, maar in deze column stelden we onlangs dat het geen slecht idee is om de console pas over een aantal jaar uit te brengen.

Wat weten we over de nieuwe Xbox?

Microsoft bevestigde eerder al dat de volgende Xbox veel eigenschappen zal delen met pc's. Zo zouden er meerdere gamewinkels op beschikbaar komen naast de Xbox Store zelf - net zoals de uitgekomen ROG Xbox Ally dus. Dat zou betekenen dat bijvoorbeeld Steam en Epic Games Store ook op het apparaat te bezoeken zijn, en er via die weg pc-games gekocht kunnen worden.

Begin dit jaar kwamen er ook geruchten naar buiten dat de nieuwe Xbox-interface zou draaien op de Full Screen Experience van de Xbox pc-app, dat onderdeel uitmaakt van Windows. De volgende Xbox zou volgens geruchten draaien op de AMD Magnus APU, die inderdaad CPU en GPU in één chip combineert.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

▼ Volgende artikel
Je NAS veilig bereiken via een VPN-server, Tailscale of Cloudflare-tunnel
© ER | ID.nl
Huis

Je NAS veilig bereiken via een VPN-server, Tailscale of Cloudflare-tunnel

Wil je een NAS op afstand gebruiken, dan doe je dat liefst natuurlijk veilig. Bijvoorbeeld door een VPN-server op te zetten, of een tunnel met extra toegangscontrole. Hiervoor zijn diensten als Tailscale en Cloudflare heel geschikt. In deze masterclass nemen we de beste opties met je door. We leggen uit wat de voor- en nadelen zijn en hoe je ze kunt gebruiken in combinatie met een NAS.

Een NAS is breed inzetbaar en bij veel huishoudens de spil in het netwerk. Je kunt niet alleen je documenten centraal bewaren, maar ook bijvoorbeeld media streamen naar je tv, foto’s bekijken op je tablet en talloze extra toepassingen installeren. Heb je (een deel van) deze toepassingen ook af en toe op afstand nodig? Het openzetten van een poortje in de router of het gebruik van een reverse proxy kan daarvoor een prima optie zijn. Maar publieke toegang is niet altijd nodig. Er zijn betere opties als je vooral voor jezelf goed beveiligde externe toegang tot je NAS nodig hebt. Een eenvoudige optie is een cloudservice van de fabrikant, zoals Synology QuickConnect. Betere en veiligere opties zijn een VPN-server met een protocol als OpenVPN of WireGuard, Tailscale (dat op de achtergrond met WireGuard werkt) of een Cloudflare-tunnel. In deze masterclass leggen we uit hoe je ze gebruikt. Wat je kiest, hangt ook af van je doel. Bij elke optie behandelen we de eventuele beperkingen. Voordat je begint, is het ook verstandig de beveiliging van je NAS nog even door te lichten (zie kader).

Optimale beveiliging voor je NAS

Bij het openstellen van je NAS is een goede beveiliging extra belangrijk. Ongeoorloofde toegang tot je NAS zul je altijd willen voorkomen. Gebruik altijd sterke wachtwoorden voor je gebruikersaccounts. Deactiveer bovendien de algemene accounts zoals admin en guest. Zet tweestapsverificatie aan. Hierbij wordt na het inloggen om een extra toegangscode gevraagd die je kunt genereren met een app op je smartphone. Op vertrouwde apparaten hoef je dat maar één keer te doen. Bij Synology vind je deze opties in je configuratiescherm, onder Beveiliging / Account. Je kunt kiezen voor welke gebruikers dit moet worden ingeschakeld. Bij QNAP ga je hiervoor in je configuratiescherm naar Systeem / Beveiliging. Open dan het tabblad Verificatie in 2 stappen. Maak ook gebruik van de ingebouwde firewall van je NAS, waarin je toegangsregels kunt instellen! In deze masterclass geven we daar tips voor. Zorg ten slotte dat je een goede back-upstrategie hebt voor de bestanden op je NAS.

Het is verstandig om tweestapsverificatie aan te zetten op je NAS.

Wat is een cloudservice?

Via een cloudservice kun je toegang tot een NAS vereenvoudigen door een soort tunnel op te zetten. Bij Synology heet dit QuickConnect, QNAP noemt het myQNAPcloud link. Hierbij wordt vanaf de NAS een uitgaande verbinding opgezet met een server, waardoor het firewalls omzeilt (ook die in je NAS!). De NAS geef je een herkenbare naam, ook wel QuickConnect ID of QNAP ID genoemd, die je ook gebruikt om te verbinden. Hierbij wordt eerst geprobeerd rechtstreeks verbinding te maken, wat ook het meest efficiënt is. Als dat mislukt, wordt de verbinding automatisch omgeleid via een relayserver, die als tussenpersoon het verkeer doorstuurt. De snelheid kan dan minder hoog zijn. We noemen hieronder alleen de dienst van Synology, omdat het een betere bescherming biedt en een betere reputatie heeft dan myQNAPcloud link. Zorg wel altijd zelf voor een goede basisbeveiliging. Overweeg veiligere methoden zoals een VPN of Tailscale. Het is veiliger en je bent niet afhankelijk van andere partijen (zoals een relayserver).

Diensten als myQNAPcloud link creëren een soort tunnel naar je NAS.

Synology QuickConnect

Bij Synology QuickConnect koppel je eerst je NAS aan een Synology-account. Daarna kun je een QuickConnect ID kiezen. Je NAS is daarna bereikbaar vanuit de Synology-apps of een browser via het adres https://quickconnect.to/ met daarachter de QuickConnect ID. Dit werkt ook bij een dynamisch ip-adres, dus je hoeft niet apart een Dynamic DNS-functie (DDNS) te gebruiken. Om QuickConnect te gebruiken open je Configuratiescherm. Ga dan naar Externe toegang. Zet een vinkje bij QuickConnect inschakelen. Hierna moet je je aanmelden met je Synology-account of een nieuw account maken. Vervolgens kies je een QuickConnect ID. Via de instellingen kun je nog kiezen of de relayserver mag worden gebruikt en welke toepassingen via QuickConnect toegankelijk zijn.

Via de instellingen kies je welke toepassingen toegankelijk moeten zijn.

Wat is VPN?

Door een VPN-server te installeren, heb je een ideale voorziening om op afstand je netwerk te bereiken en alle apparaten op dat netwerk, zoals je NAS, netwerkprinters en camera’s. Je installeert de VPN-server op één systeem, zoals een router, server, Raspberry Pi of je NAS. Bij Synology kun je bijvoorbeeld standaard met OpenVPN werken en QNAP ondersteunt het snellere WireGuard. We laten zien hoe je deze opties gebruikt. Na inloggen heb je volledige toegang tot je netwerk en alle toepassingen in het netwerk, alsof je rechtstreeks op het netwerk zit. Voor toegang tot bestanden op je NAS werken daarom alle protocollen als smb, nfs en WebDAV en toepassingen als Synology Drive en QNAP File Station. Je hoeft geen poorten in je router open te zetten, behalve een enkele poort naar de VPN-server.

Bij QNAP kun je standaard werken met WireGuard.

OpenVPN op Synology

Om je Synology-NAS als VPN-server in te zetten, kun je de toepassing VPN Server installeren via Package Center. Gebruik je een firewall, controleer dan of de benodigde poorten toegankelijk zijn. Bij de installatie kun je die aanpassing via een venster direct doorvoeren. Afhankelijk van het protocol moet je ook nog één of meerdere poorten doorsturen van je router naar je NAS. De toepassing ondersteunt PPTP, OpenVPN en L2TP/IPSec. Eigenlijk is vooral OpenVPN interessant. Het is veilig en stabiel, maar niet zo snel als WireGuard. Ook geeft het soms wat uitdagingen bij het opzetten van de verbinding.

Synology ondersteunt meerdere protocollen, waaronder OpenVPN.

Activeren OpenVPN

Om OpenVPN te gebruiken open je VPN Server. Ga dan naar OpenVPN. Zet een vinkje bij OpenVPN-server inschakelen. Bij Dynamisch ip-adres zie je het subnet dat OpenVPN gebruikt. De verbonden clients krijgen een ip-adres in dat bereik. Bij Poort en Protocol zie je dat standaard udp-poort 1194 wordt gebruikt. Die poort moet je doorsturen van je router naar je NAS. Controleer of de poort toegankelijk is in de firewall van je NAS. Voor een goede balans tussen snelheid en veiligheid kun je bij Codering bijvoorbeeld AES-128-CBC kiezen en bij Verificatie de optie SHA256. De optie Compressie op de VPN-koppeling inschakelen mag uit, omdat het weinig snelheidswinst geeft. Zet de optie Clients toegang geven de LAN-server aan, zodat je andere apparaten in je thuisnetwerk kunt bereiken. Zet ook de optie Verifieer TLS auth-sleutel aan. Klik op Toepassen om de instellingen te activeren. Je kunt nu clients gaan configureren.

Bij OpenVPN kun je zelf nog enkele instellingen kiezen.

Profiel voor OpenVPN

Ga naar OpenVPN en kies Configuratie exporteren om het configuratiebestand te exporteren als zip-bestand. Hierin vind je een .ovpn-bestand dat je nodig hebt voor toegang. Je hebt ook een gebruikersaccount nodig bij het inloggen. Onder Rechten kun je aanvinken welke gebruikers toegang hebben en via welke protocollen. Maak eventueel een nieuwe gebruiker voor alleen de VPN-verbinding! Open het bestand VPNConfig.ovpn met een teksteditor. Omdat je de VPN-server extern wilt gebruiken, verander je in onderstaande regel YOUR_SERVER_IP naar je ip-adres van je internetverbinding of de hostnaam als je bijvoorbeeld Dynamic DNS gebruikt. Synology ondersteunt ook Dynamic DNS en geeft bijvoorbeeld een naam.synology.me-adres. Je kunt het activeren in je configuratiescherm onder Externe toegang / DDNS. Het gaat om deze regel:

remote YOUR_SERVER_IP 1194

Je ziet ook de onderstaande optie. Haal hier eventueel het commentaarteken weg als je wilt dat ál het verkeer, dus ook het normale internetverkeer, via de VPN-server gaat. Dat geeft minder goede prestaties, maar is wel veiliger als je bijvoorbeeld een openbare wifi-hotspot gebruikt. Dit is de regel waar je het commentaarteken weg kunt halen:

#redirect-gateway def1

Gebruik dit profiel om verbinding te maken vanaf andere apparaten. Zet hierbij de optie aan dat zonder certificaat verbinding mag worden gemaakt.

WireGuard op QNAP

We zullen laten zien hoe je WireGuard op je QNAP-NAS gebruikt in combinatie met een Windows-client. Voor meer informatie over WireGuard en het opzetten van een aparte VPN-server verwijzen we je naar een eerder artikel dat je kunt lezen via www.kwikr.nl/wgvpn waarin dat uitgebreid aan bod komt. Zorg bij QNAP dat de toepassing QVPN Service is geïnstalleerd via App Center. Open dan de toepassing en ga naar WireGuard. Zet een vinkje bij WireGuard VPN-server inschakelen. Vul een naam in achter Servernaam. Klik achter Persoonlijke sleutel op Codeparen genereren. Noteer de waarde bij Openbare sleutel: die is straks nodig bij de configuratie van clients. Achter Luisterpoort zie je de poort (udp) die je moet doorsturen in de router. Bij DNS Server vul je een openbare DNS-server in (zoals 8.8.8.8) óf een DNS-server in je lokale netwerk. Klik op Toepassen om de instellingen te bewaren. Klik op Peer toevoegen. Hier kun je clients toevoegen (zie volgende stap).

De instellingen voor WireGuard bij een NAS van QNAP.

Client instellen

Elk apparaat dat verbinding met WireGuard maakt, is een zogenoemde peer. Voor het toevoegen van een apparaat kies je bij QNAP de optie Peer toevoegen. Vul een herkenbare naam in. De waarde bij Openbare sleutel komt bij deze ‘peer’ vandaan, die gaan we nu eerst instellen. Installeer en open de Windows-client en kies de optie Add Empty Tunnel. Er worden een privé- en openbare sleutel gegenereerd. Er opent een configuratiebestand met de privésleutel waarin je onder andere deze twee regels ziet:

[Interface]

PrivateKey = +MSQ3D2+M71SotRrWC3hnPyzYSTWNuaxWwc920=

Vul deze configuratie verder aan zoals in het voorbeeld hieronder. Bij Address kies je een vrij ip-adres binnen het VPN-subnet, dat nog niet door een andere peer wordt gebruikt. Je kunt dit voor elke client ophogen, dus 198.18.7.2/32, 198.18.7.3/32, en zo verder. Belangrijk is dat je bij PublicKey de openbare sleutel die QNAP laat zien invult. Bij Endpoint vervang je ipadres door het ip-adres (of de hostnaam) van je internetverbinding thuis. Dit is de configuratie die je moet aanpassen:

[Interface]

PrivateKey = +MSQ3D2+M71SotRrWC3hnPyzYSTWNuaxWwc920=

ListenPort = 51820

Address = 198.18.7.2/32

DNS = 1.1.1.1

[Peer]

PublicKey = KsCc+cRucH4F8T3VdyatvZXjqvunEerBZapulE=

AllowedIPs = 0.0.0.0/0

Endpoint = ipadres:51820

Bewaar de configuratie met Save. Kopieer nu de waarde bij Public key van deze client. Je leest deze af in het hoofdvenster van WireGuard (zorg dat de bewuste tunnel is geselecteerd). Plak deze in QNAP bij Openbare sleutel bij de configuratie van deze peer. Je kunt nu verbinding maken met je Windows-client!

Voltooi de configuratie voor de Windows-client voor WireGuard.

Firewall instellen voor je NAS

Een firewall op je NAS biedt extra bescherming. Bij Synology open je daarvoor Configuratiescherm. Ga dan naar Beveiliging en open het tabblad Firewall. Zet een vinkje bij Firewall inschakelen en kies Toepassen. Bij Firewallprofiel kun je een profiel kiezen of bewerken. Kies Regels bewerken om het huidige profiel aan te passen. Begin met een regel die alle apparaten op het lokale netwerk toestaat. Kies bij die regel bij Poorten de optie Alles. Bij Bron-IP kies je Specifiek ip. Klik daarachter op Selecteren en kies Subnet. Je moet hier het netwerkbereik van je router kennen. In veel gevallen is dat iets als 192.168.1.0 met subnetmasker 255.255.255.0. Dit omvat dan alle adressen van 192.168.1.0 t/m 192.168.1.255. Voeg hierna nog specifieke regels toe voor toepassingen die van buitenaf toegang moeten hebben. In dit voorbeeld staan we bijvoorbeeld SSH toe vanaf een bepaald ip-adres. Heel belangrijk is dat je als laatste een regel toevoegt die alles blokkeert. De regels worden namelijk van boven naar beneden doorlopen en bij de eerste match stopt de verwerking. Het configuratiescherm van QNAP biedt ook een firewall, maar dat is meer een soort toegangsfilter. Voor uitgebreidere opties kun je QuFirewall installeren via App Center.

Het is raadzaam om de firewall op je NAS te gebruiken voor toegangsbeperking.

Wat is Tailscale?

Met Tailscale kun je een virtueel privénetwerk maken tussen al je apparaten. Dit gebeurt op basis van identiteit, met bijvoorbeeld een standaard Google-account voor autorisatie. Je kunt alle toegevoegde apparaten benaderen via een intern ip-adres of de toegekende hostnaam. Tailscale gebruikt dezelfde technologie als WireGuard, wat het snel, veilig en betrouwbaar maakt. Je hebt geen centrale server nodig en hoeft ook geen poorten in je router open te zetten. Wel moet je elk apparaat in principe afzonderlijk aan je privénetwerk toevoegen. Dat is eenvoudig, ook voor een NAS, zoals je hieronder ziet. Als alternatief kun je Tailscale ook op één apparaat in je netwerk installeren en dat apparaat als subnetrouter instellen, zodat je via dat ene systeem toegang hebt tot alle andere apparaten in je netwerk. In dat geval hoef je Tailscale niet op elk afzonderlijk apparaat te installeren. Meer uitleg over Tailscale vind je in dit artikel.

Met Tailscale kun je een privénetwerk voor je apparaten maken.

Eerste stappen

Ga naar https://tailscale.com en kies de optie Get started. Log in met een van de ondersteunde identiteitsproviders, bijvoorbeeld een standaard Google-account of een van de andere opties. Hierna wordt automatisch je Tailscale-netwerk, of kortweg tailnet, gemaakt. Dat is een soort privé-VPN-netwerkje waar jouw apparaten deel van uit gaan maken. Als je op een ander apparaat inlogt met datzelfde account, is het bereikbaar vanuit je andere apparaten in dit tailnet. Een gratis account ondersteunt tot drie gebruikers en honderd apparaten.

Log in bij Tailscale met bijvoorbeeld je Google-account.

Apparaten toevoegen

Het toevoegen van apparaten is eenvoudig. Het volstaat om de software te installeren en in te loggen met dezelfde identiteitsprovider. Om Tailscale bijvoorbeeld op een iPad te gebruiken, installeer je eerst de toepassing via de App Store. Hierbij wordt een VPN-configuratie voor je iPad gemaakt. Daarna log je in en zie je een lijst met apparaten in je privénetwerkje, waarbij je ook de namen af kunt lezen.

Op een iPad maakt Tailscale een VPN-profiel aan.

Tailscale op je NAS

Je kunt Tailscale ook op een NAS installeren. Bij Synology zoek je daarvoor in Package Center naar Tailscale. Bij QNAP kun je in App Center terecht. Installeer en open de toepassing. Er wordt gevraagd om in te loggen, waarbij je weer hetzelfde account als hiervoor gebruikt. Zet daarna de verbinding op via Connect. Als je nog een keer de Tailscale-app opent, kun je details zien over het bewuste apparaat, zoals het ip-adres en de hostnaam die je kunt gebruiken om verbinding te maken.

Tailscale is als pakket beschikbaar voor Synology en QNAP.

Wat is een Cloudflare-tunnel?

Bij een Cloudflare-tunnel installeer je op één systeem in je netwerk (bijvoorbeeld je NAS) een klein programma, dat van binnenuit een versleutelde verbinding opzet naar Cloudflare. Daarna kun je toepassingen individueel toevoegen die deze tunnel mogen gebruiken. Daarbij kun je elke toepassing een eigen subdomein geven, zoals nas.domein.nl voor je NAS. De tunnel laat geen netwerkprotocollen zoals SMB en NFS door en WebDAV is een uitdaging. Het is vooral bedoeld voor webverkeer. Je kunt incidenteel wel bijvoorbeeld DS File gebruiken, voor het browsen door je bestanden en kleine uploads of downloads.

Bij Cloudflare kun je gratis een tunnel opzetten voor toegang op afstand.

Domein registreren

Log in bij Cloudflare met een bestaand account of maak een nieuw gratis account. Registreer een domeinnaam via Add / Register a domain of voeg een bestaand domein toe via Add / Connect a domain. In dat laatste geval moet je de DNS-instellingen bij je huidige provider aanpassen, zodat de nameservers naar die van Cloudflare verwijzen. Afhankelijk van de extensie betaal je bij Cloudflare vanaf zo’n 6 dollar per jaar (circa 6 euro) per domein. Je kunt een domein eventueel direct voor meerdere jaren registreren of voor automatische verlenging kiezen. Betalen kan met creditcard of PayPal. In je dashboard vind je je domein terug onder Domain registration / Manage domains.

Registreer tegen lage kosten een domein bij Cloudflare.

Tunnel voorbereiden

Ga via het menu aan de linkerkant naar Zero Trust. Klik dan op Networks en kies Tunnels. Klik op Create a tunnel. Selecteer de optie Cloudflared. Geef je tunnel een naam. Vervolgens moet je een zogeheten connector installeren op één systeem in je netwerk om een tunnel te maken. Alle toepassingen die je straks via de Cloudflare-tunnel gaat publiceren, moeten bereikbaar zijn vanaf dat systeem. Dat is meestal alleen een probleem bij gescheiden netwerken of strikte firewallregels. Installeer Cloudflared volgens de instructies op een systeem dat altijd aanstaat. Dat kan een server of Raspberry Pi zijn, maar óók je NAS, zoals we hieronder toelichten. Hierna komt de tunnel automatisch online.

Maak een tunnel via de website van Cloudflare.

Tunnel op Synology-NAS

Voor de installatie op een NAS heeft Cloudflare geen instructies, maar de procedure is relatief eenvoudig. Kopieer de opdracht die je ziet bij bijvoorbeeld de Windows-installatie en plak deze in een editor. Je ziet hierin een lange string van 184 tekens die meest begint met eyJh…. Dat is de benodigde token. Om Cloudflared op een Synology-NAS te installeren open je Package Center. Ga naar Gemeenschap en kies Cloudflare Tunnel. Klik op Installeren. Nu wordt om de token gevraagd. Je hoeft geen geavanceerde opties te kiezen. Na het voltooien van de installatie is je tunnel klaar voor gebruik.

Vul de token in bij de installatie van de software op je Synology-NAS.

Tunnel bij QNAP

QNAP biedt geen softwarepakket, maar je kunt Cloudflare wel vrij eenvoudig via Docker configureren en starten. Het is het makkelijkst om met Docker Compose te werken. Installeer indien nodig Container Station en open het programma. Ga dan naar Toepassingen en klik op Maken. Bij Naam van de toepassing vul je een herkenbare naam in, zoals cloudflared. Bij YAML-code vul je de onderstaande code in. Achter TUNNEL_TOKEN vul je uiteraard jouw token in. Klik dan op Maken om de tunnel te maken. Dit is de benodigde code:

version: "3"

services:

  cloudflared:

    image: cloudflare/cloudflared:latest

    container_name: cloudflared

    restart: unless-stopped

    network_mode: "host"

    command: tunnel run

    environment:

      - TUNNEL_TOKEN=eyJh...

Bij QNAP kun je Cloudflared het beste via Docker installeren.

Toepassing toevoegen

Je kunt nu elke toepassing via de tunnel beschikbaar maken met een uniek subdomein. Om zo’n zogeheten route aan te maken, ga je binnen Zero Trust naar Networks / Tunnels. Bij Status geeft het systeem als het goed is aan dat de tunnel gezond is. Open het menu (via de drie puntjes) en kies Configure. Ga dan naar het tabblad Published application routes. We nemen de webinterface van een NAS die lokaal bereikbaar is op https://10.0.10.200:5001. Bij Subdomain vul je bijvoorbeeld nas in. Bij Domain kies je een domein. Bij Type kiezen we HTTPS en bij URL vullen we 10.0.10.200:5001 in. Bij de optie HTTPS moet je oppassen. De NAS heeft in ons geval geen echt certificaat. Daarom is het belangrijk om onder Additional application settings / TLS de optie No TLS Verify aan te vinken. Cloudflare zal dan negeren dat het certificaat niet ondertekend is. Klik op Save. Er zal automatisch een DNS-record worden gemaakt en je kunt vrijwel direct op afstand je NAS benaderen.

We maken een route voor de NAS.

Extra beveiliging bij Cloudflare

Na het openstellen van een toepassing via een subdomein kan in feite iedereen die dat adres kent de toepassing benaderen, zoals de webinterface van je NAS. Of ze ook binnenkomen, hangt af van je beveiliging. Een NAS kun je zelf extra beveiligen, bijvoorbeeld met tweestapsverificatie. Maar je kunt toegang óók beperken via Cloudflare zelf. Je kunt bijvoorbeeld regelen dat alleen jij bij de tunnel mag, via een tijdelijke code die je per e-mail ontvangt, of door te verplichten dat je eerst moet inloggen met een specifiek Google-account.