ID.nl logo
Kinderen leren programmeren - Carrière én toffe levensles
© Reshift Digital
Zekerheid & gemak

Kinderen leren programmeren - Carrière én toffe levensles

Kinderen zijn heel handig met nieuwe technologie. Ze leren snel nieuwe apparaten te gebruiken. Betekent dat ook dat kinderen weten hoe die technologie werkt? Is het nodig om ze vroeg te leren programmeren? Leren programmeren kan een leuke levensles zijn en niet per se een toekomstige carrièrekeuze.

In de jaren '80 betekende het bezit van een computer meestal dat je een hobbyist was. Dat je bereid was om niet alleen andermans software te gebruiken, maar ook om zelf te experimenteren met programmeren. Wie in dat tijdperk opgroeide en bijvoorbeeld met BASIC of PASCAL leerde werken, leerde tegelijk een aantal waardevolle lessen. Lessen die een kind van nu niet meer automatisch meekrijgt door met een iPad te spelen.

Volgens mediacoach Gemma Steeman is het nog steeds zo dat kinderen veel sneller leren omgaan met computers dan volwassenen. "Ze leren door te experimenteren. Ze zijn niet bang om iets fout te doen en ontdekken daardoor heel snel de mogelijkheden die ze graag gebruiken."

Dat betekent in de praktijk dat ze sneller dan hun ouders weten hoe ze apps moeten downloaden en opstarten. En natuurlijk vooral hoe ze al die spellen kunnen spelen. Toch is dit natuurlijk wat anders dan 'weten hoe een computer werkt'.

©PXimport

Leren programmeren is een belangrijk onderdeel van 'mediawijsheid': de verzameling vaardigheden voor kinderen en volwassenen die helpen om media te gebruiken en te duiden.

Consequenties

Steeman: "Kinderen weten ook niet hoe ze computers slim in kunnen zetten, bijvoorbeeld om taken beter of efficiënter uit te voeren. Ook weten ze niet wat de consequenties zijn van hun gedrag online. Dat komt ook door de ontwikkeling van de hersenen: ze zijn gewoon niet in staat om dat allemaal te overzien." Want voor een kind is het gewoon niet te bevatten dat wat je op internet zet, er ook nooit meer van af kan. En vooral dat anderen (vreemden) het kunnen zien. Voor een kind is het begrip data volkomen abstract. Om nog maar te zwijgen van 'big data' en wat bedrijven allemaal kunnen door gegevens te verzamelen en te analyseren.

©PXimport

Gemma Steeman is mediacoach bij

Belangrijk

Volgens Steeman is het leren programmeren geen manier om kinderen op weg te helpen in een carrière als programmeur. "Het schrijven van programma's is iets wat steeds meer in lagelonenlanden gedaan wordt. Wie later een baan krijgt in de IT, wordt hoogstwaarschijnlijk geen programmeur." Maar we leven in een wereld die volledig doordrongen is door digitale media. Je moet mee kunnen komen en hoe meer je begrijpt van de processen die al die media mogelijk maken, hoe beter.

Ook zijn er heel wat (toekomstige) banen waarbij kennis van programmeren nuttig is, zonder dat je daarvoor programmeur hoeft te zijn. Want hoewel het daadwerkelijke programmeerwerk van grote programma's en games vaak wordt uitbesteed, gebeurt het plannen en het denkwerk van de ontwikkeling wel degelijk ook in ons land. Wie ergens werkt waar computerprogramma's gebruikt of gemaakt worden, heeft dus erg veel aan kennis over de werking van die programma's. Steeman zelf geeft aan dat ze erg veel heeft aan die kennis bij haar werk voor de website MediaWijsheid.nl. "Ik kan niet programmeren, maar wel computercode lezen en dat is bij het werken aan websites een groot voordeel."

©PXimport

Het kunnen lezen van computercode helpt zeker als je websites ontwerpt of bijhoudt.

Het is gewoon leuk!

Veel tv-series en films leren ons dat programmeren betekent: schermen vol onbegrijpelijke wiskundig ogende formules. Maar dat is een vooroordeel. Programmeren is het oplossen van een puzzel. En dankzij allerlei leuke, grafische lesmethoden, is het voor kinderen net zo goed een spel als een les.

Hour of Code bijvoorbeeld is een wereldwijde introductie voor kinderen om te leren programmeren met 'Hopscotch'. In een uur spelen leren ze hoe ze niet alleen computers kunnen gebruiken, maar vooral hoe ze deze naar hun hand kunnen zetten. Door bouwsteentjes te verslepen, laten ze bekende figuren zoals Anna en Elsa uit 'Frozen' of de bekende Angry Birds bewegen. Hopscotch is dé taal voor kinderen op dit moment, die juist door zijn directe grafische feedback meteen laat zien wat een commando of functie doet.

Voor de kinderen die hier echt lol in hebben, zijn er allerlei vervolgprojecten. Het hoeft niet op te houden bij één uur.

©PXimport

Grote studio's zoals Disney lenen bekende figuren aan deze educatieve site.

Levensles

Maar de belangrijkste reden om kinderen (eenvoudige) programma's te laten maken, is dat het een manier van denken aanleert die ze de rest van hun leven kunnen gebruiken. Programmeren is namelijk vooral een levensles: om een computerprogramma te maken, leer je om een probleem op een gestructureerde manier op te lossen. Je begint met een formuleren van het probleem en om dat probleem op te lossen, moet je het in stukjes ophakken. Als je 'probleem' bijvoorbeeld is: een eenvoudig huisje tekenen op het scherm, dan kun je dit opdelen in delen: hoe teken je een vierkant? Een rechthoek? Een driehoek? Hoe zorg ik ervoor dat de driehoek op het vierkant staat en dat de rechthoek op de plaats komt waar de deur moet zijn?

Deze manier van problemen oplossen overstijgt het schrijven van computerprogramma's. Wie een feest organiseert en een groep moet aansturen, moet ook leren om het geheel te overzien en dat in subtaken te verdelen. En het is juist deze manier van analytisch denken die kinderen op een speelse en natuurlijke manier kunnen leren door de computer naar hun hand te zetten.

©PXimport

Met eenvoudige puzzels leert het kind in de app Daisy the Dinosaur spelenderwijs programmeren op de iPad.

Wanneer

Volgens Steeman kunnen kinderen vanaf een jaar of zes al heel wat leren, dankzij speciale programma's. Deze zijn er op gericht om kinderen op een visuele en aantrekkelijke manier te leren om eenvoudige programma's te maken. De kinderen zullen dit niet als 'programmeren' ervaren, maar als een spel waarbij ze de computer opdrachten geven die direct resultaat op het scherm toveren. Veel van dit soort programma's hebben een duidelijke relatie met de wat oudere programmeertaal LOGO (zie kader). Voor de iPad is er bijvoorbeeld de app Daisy the Dinosaur. Met deze app leren kinderen kleine programma's schrijven die het figuurtje Daisy over het scherm laten bewegen. Helaas is de Daisy-app wel Engelstalig.

Op de website van Kennisnet.nl vinden we Ko de Kraker. Net als bij Daisy geeft het kind opdrachten aan het vogeltje Ko, die dankzij correcte programma's zijn geliefde nootjes kan eten.

©PXimport

Ko de Kraker is een vogeltje dat nootjes wil eten. Kinderen schrijven programma's om hem te helpen.

LOGO

Een aantal computerveteranen zal vast even opveren bij het lezen van die naam. LOGO, ontwikkeld in de jaren zestig door Seymour Papert. LOGO werd speciaal voor kinderen bedacht. Het belangrijkste kenmerk is de schildpad-cursor die met eenvoudige commando's is aan te sturen. Commando's geven direct resultaat. 'FORWARD 100' zorgt bijvoorbeeld voor een lijn van 100 pixels in de kijkrichting van de schildpad.

Daarnaast is het een krachtige taal waarbij de programmeur feitelijk zijn eigen commando's maakt die steeds complexere taken uitvoeren.

Het volgende simpele programma laat de schildpad een cirkel tekenen:

TO CIRCLE

REPEAT 360 [FORWARD 1 RIGHT 1]

END

Vanaf dat moment 'kent' de computer het nieuwe commando 'circle' dat ook weer in een nieuw programma te gebruiken is. Heel krachtig en heel overzichtelijk.

©PXimport

Met MSWLogo (gratis) kun je al snel mooie 'turtle graphics' maken.

Simpel

Daarnaast is op dit moment Scratch heel populair: op de site kunnen kinderen programmeren met bouwsteentjes die ze in een venster slepen. Ook hier gaat het om grafische feedback: animaties en simpele spellen.

Toch is het een misverstand om te denken dat kinderen (zeker als ze een jaar of 10, 11 zijn) heel simpele talen moeten leren. Kijk maar eens wat kinderen inmiddels allemaal aan complexe dingen kunnen bouwen in het spel Minecraft. Ze zijn zeker in staat om complexere talen onder de knie te krijgen. We noemden LOGO al. Ook Microsofts Small Basic richt zich volledig op kinderen. Maar ook een 'volwassen' taal is een leuke uitdaging.

©PXimport

Small Basic is een versimpelde, gratis versie van BASIC, speciaal voor kinderen.

Python

Op deze site staat een compleet lesprogramma voor de basisschool, waarin kinderen de taal Python leren. Deze scripttaal (ontwikkeld door Nederlander Guido van Rossum), is eenvoudig te leren en wordt ook in het echt gebruikt. Een perfecte brug dus tussen het klaslokaal en digitale wereld, maar uiteraard niet geschikt voor de allerjongsten.

Dit soort lespakketten zijn minder geschikt voor thuis. Maar volgens Steeman is het een goed idee als ouders samen met school en buitenschoolse opvang in gesprek gaan over programmeren. "Ik ben er niet voor om het verplicht in lesprogramma's op te nemen. Het is echter wel belangrijk dat elk kind er even mee in aanraking komt en als hij of zij dat wil er ook meer mee kan doen. Ouders en scholen kunnen elkaar daar denk ik goed in ondersteunen."

Direct effect

Hoewel Python niet meteen allerlei grafisch vuurwerk produceert, heeft het als groot voordeel dat het een geïnterpreteerde taal is. Dat wil zeggen dat je het resultaat meteen kan zien.

print("Hallo wereld")

>> Hallo wereld

print(3*2)

>> 6

print("3*2")

>> 3*2

Dit is natuurlijk in een leeromgeving heel belangrijk omdat de leerling meteen het resultaat van zijn instructies ziet. Dat is ook de reden dat talen als C++ niet kindvriendelijk zijn. Afgezien van de complexiteit is het ook lastig om programma's steeds te moeten compileren voor je kan zien wat ze doen.

Amsterdam investeert in jonge programmeurs

Als onderdeel van een plan van de gemeente Amsterdam om in de toekomst te behoren tot de top 3 van Europese steden met startups, wil de gemeente investeren in het opleiden van jongeren in deze sector. Daartoe zouden er 'coding academies' moeten worden opgericht waar jongeren en zzp-ers leren coderen en programmeren. Verder zou de gemeente wel op zoek zijn om initiatieven te ondersteunen die erop gericht zijn dat coderen op basisscholen, middelbare scholen en universiteiten even standaard worden als rekenen en taal.

Verder lezen?

Daisy the Dinosaur (iOS)

Ko de Kraker

Microsoft Small Basic

Hour of Code

Microsoft Windows Logo (gratis Windows-versie van LOGO)

ACSLogo (gratis OS X-versie van LOGO)

Hopscotch (iOS)

Kodable (iOS)

Robomind

▼ 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.