ID.nl logo
Zekerheid & gemak

Hoe werkt machine learning precies?

Software die uit zichzelf kan leren, daar kijken we niet meer van op. Denk aan spraakherkenning die ons telkens beter begrijpt, of een slimme thermostaat die na een tijdje weet wanneer we dagelijks van ons werk komen en dan de verwarming al op tijd wat hoger zet. Maar hoe werkt machine learning precies?

We spreken van machinelearning als een programma in staat is om zonder menselijke inbreng te leren hoe het een specifieke taak kan uitvoeren en beter wordt in die taak hoe meer ervaring het heeft. Er is dus geen mens die een algoritme programmeert om die taak uit te voeren; de mens programmeert een algoritme dat uit zichzelf leert om de taak uit te voeren.

Hoe programmeer je zo’n algoritme om te leren? Kort door de bocht bestaat dat leren eruit dat het algoritme zoveel mogelijk informatie uit een verzameling gegevens haalt en zo een signaal van ‘ruis’ kan onderscheiden in die gegevens. Zo zijn in spraakherkenningstechnologie de gegevens een geluidsopname, terwijl de informatie de uitgesproken woorden zijn. Al de rest van de geluidsopname is ruis.

In de praktijk trainen we de software op een trainingset, een verzameling gegevens die een goede voorstelling vormen van de gegevens die de software zal tegenkomen. Nadat de software op die manier getraind is, kan ze ook onbekende gegevens aan. Wel moet de taak altijd duidelijk afgelijnd zijn. Software die spraak herkent, kun je niet integraal inzetten om muziek te herkennen en al zeker niet om gezichten te herkennen.

Neuraal netwerk

Neurale netwerken (‘artificial neural networks’) vormen een belangrijke aanpak in machinelearning. Ze bootsen de werking van de hersenen na, die een biologisch neuraal netwerk vormen: een kluwen van ontzettend veel verbindingen tussen neuronen (hersencellen). Een kunstmatig neuraal netwerk bestaat meestal uit meerdere lagen: een invoerlaag van neuronen die de invoer van een probleem voorstellen, een uitvoerlaag van neuronen die de oplossing van het probleem voorstellen, en één of meer tussenliggende lagen die berekeningen uitvoeren.

Bij een fully connected neural network krijgt elk neuron invoer van alle neuronen in de laag ervoor en geeft het zijn uitvoer aan alle neuronen in de laag erna. Bij een convolutioneel neuraal netwerk is een neuron niet afhankelijk van alle neuronen in de vorige laag. Een neuraal netwerk programmeer je niet door expliciet aan te geven hoe het een probleem moet oplossen; je ‘traint’ het door het vele voorbeelden van een probleem te geven, waardoor het uit zichzelf de taak leert.

Deep learning

Vooral deeplearning maakt de laatste jaren furore in de wereld van machinelearning. Bij deeplearning gebruikt het algoritme een groot aantal lagen tussen input en output. De invoerlaag verwerkt de input en stuurt die door naar de volgende laag, die zijn input verwerkt en naar de volgende laag doorstuurt, enzovoort, tot er aan het einde de output uitkomt. Dit grote aantal lagen maakt complexe transformaties mogelijk.

Een prominente gebruiker van deeplearning is Google DeepMind. In 2014 nam Google de start-up DeepMind uit Cambridge over. Begin 2016 kwam het in het nieuws met de overwinning van AlphaGo op de menselijke kampioen in het bordspel go. En het systeem van DeepMind blinkt uit in het spelen van games zoals Space Invaders en Pac Man.

Google DeepMind combineert deeplearning op een convolutioneel neuraal netwerk met het zogenoemde Q-learning om spelletjes te leren spelen zonder dat het hoeft te weten wat de goede zet is: het algoritme krijgt alleen informatie over ‘winst’ of ‘verlies’. Google DeepMind noemt hun techniek deep reinforcement learning.

Google heeft het geld voor de mensen en de computers om op grote schaal machine learning te ontwikkelen

-

Wat heeft Google DeepMind dat anderen niet hebben? “Vooral geld,” zegt Sander Bohte, onderzoeker bij het Amsterdamse CWI (Centrum voor Wiskunde & Informatica). “Wanneer je een industrieel onderzoekslabo hebt waar een paar honderd briljante mensen werken, verkrijg je de resultaten van Google DeepMind. Google heeft het geld om de beste mensen ter wereld aan te nemen en ze hebben geld voor krachtige computerclusters. Zij kunnen dus op een heel andere schaal werken dan universiteiten.”

Facebook, Microsoft, Apple...

Google is niet de enige die geld investeert in machinelearning. Facebook heeft een Applied Machine Learning-team dat spam herkent, foto’s automatisch tagt en nog heel wat andere slimme taken uitvoert op het sociale netwerk.

In 2015 kocht Microsoft het bedrijf Equivio, dat patronen in grote hoeveelheden e-mails en documenten doorspit. En Apple nam in 2016 de vooraanstaande onderzoeker Ruslan Salakhutdinov aan als hoofd van zijn AI Research team. Ook Amazon, Twitter en Baidu zijn bezig met machinelearning. En dan is er nog IBM, dat met zijn supercomputer Watson belangrijke toepassingen ontwikkelt.

De kunstmatige neurale netwerken die een belangrijke rol spelen in machinelearning zijn losjes geïnspireerd op de neuronen in onze hersenen. Maar ze werken helemaal niet zo efficiënt, zegt Sander Bohte: “Onze hersenen verbruiken zo’n 25 W energie. Een neuraal netwerk op een pc verbruikt al snel 300 W. Dat kunnen we niet in een drone implementeren, want die verbruikt dan te veel energie om lang in de lucht te blijven op zijn batterijlading."

"En als we een neuraal netwerk ter grootte van de hersenen zouden maken, zou dat 5 MW verbruiken. Onze kunstmatige neurale netwerken zijn dus aanzienlijk minder efficiënt dan hun biologische evenknieën.”

De grote uitdaging is dus om dat verschil te verkleinen. Dat kunnen we volgens Sander Bohte bereiken als we ons nog meer laten inspireren op biologische neurale netwerken: “Neuronen in onze hersenen communiceren met pulsen. Gemiddeld sturen ze één puls per seconde. Maar neuronen zijn niet continu actief. Soms doen ze een seconde niets en soms vuren ze tien keer op een seconde.”

Spiking neural networks

Sander Bohte doet onderzoek naar spiking neural networks, die net zoals biologische neuronen geen energie gebruiken wanneer er niets gebeurt. “We hopen zo neurale netwerken toch een factor 100 energie-efficiënter te maken,” zegt hij. IBM gebruikt dezelfde aanpak in zijn TrueNorth-processor, die met een miljoen neuronen maar 70 mW verbruikt.

Spiking neurale netwerken hebben volgens Sander Bohte nog een ander voordeel: ze zijn compatibel met biologische neuronen omdat ze dezelfde taal spreken. “We kunnen een spiking neuraal netwerk in principe rechtstreeks op ons brein aansluiten. Zo werk ik nu samen met het Leids Universitair Medisch Centrum om cochleaire implantaten te verbeteren. "

"Ik verwacht dat neuroprotheses met spiking neurale netwerken binnen vijf jaar mogelijk zijn. En ik verwacht ook veel van het Amerikaanse DARPA, dat veel geld steekt in projecten binnen het BRAIN Initiative met als doel om 1 miljoen gelijktijdige ‘aansluitingen’ met de hersenen te maken.”

Onbetrouwbare resultaten

Een nadeel van neurale netwerken is dat ze een soort ‘black box’ vormen: wanneer ze een resultaat geven, weet je niet hoe ze tot dat resultaat komen. In sommige domeinen is dat helemaal geen wenselijke eigenschap. Stel dat we software ontwikkelen om een arts te helpen bij het nemen van juiste beslissingen. Als de software een diagnose stelt, maar de arts helemaal niet weet waarop die diagnose gebaseerd is, kan hij daarop niet vertrouwen. Een verkeerde beslissing kan immers een grote impact hebben.

“In zulke domeinen werk je daarom liever met predictieve modellen die voor de expert te begrijpen zijn,” zegt Gilles Vandewiele, doctoraatsstudent aan het Internet Technology and Data Science Lab (IDLab) van de Universiteit Gent – imec. Gilles Vandewiele werkt daarom met decision support systemen.

Wanneer neurale netwerken een resultaat geven, weet je niet hoe ze daartoe zijn gekomen

-

“Dat vereist vaak meer menselijke inbreng dan een neuraal netwerk, omdat we zelf aan feature extraction (het verminderen van de hoeveelheid middelen die nodig zijn om een grote set van gegevens te beschrijven – red.) doen, terwijl dat bij deeplearning automatisch gebeurt. Maar het resultaat is dan wel een begrijpelijk model dat vaak sneller getraind kan worden dan zijn tegenpool, omdat we dan geen miljoenen parameters meer moeten leren.”

Naast de medische sector zijn ook de financiële en juridische sectoren geïnteresseerd in deze aanpak, omdat experts in die domeinen een uitleg moeten kunnen geven bij hun beslissingen. “De nauwkeurigheid ligt bij deeplearning wel nog hoger. Bij de keuze tussen deeplearning- en decision support-systemen maak je altijd de afweging tussen nauwkeurigheid en begrijpelijkheid van het model.”

Ook IBM Watson is op deze aanpak gebaseerd. De DeepQA-software die het hart uitmaakt van Watson kan allerlei gestructureerde en ongestructureerde gegevens combineren en zijn beslissingen uitleggen. IBM heeft Watson dan ook al in meerdere ziekenhuizen ingezet en waagt zich met het systeem ook aan weersvoorspellingen.

Lees verder op de volgende pagina.

Vandewiele wijst ook op Kaggle, een online platform dat programmeerwedstrijden in data science-problemen organiseert. “Op Kaggle vind je heel veel state-of-the-art oplossingen voor machinelearning-problemen. Voor problemen die niet over afbeeldingen, video’s of geluid gaan, is de meest prominente tactiek om hoge classificaties te halen het trainen van heel veel verschillende modellen op basis van geëxtraheerde features en dan de voorspellingen van die modellen gebruiken als nieuwe features voor een finaal model.

Een van de meest voorkomende algoritmes daarvoor is eXtreme Gradient Boosting (XGBoost), een algoritme gebaseerd op beslissingsbomen.” In 2015 en 2016 haalden doctoraatsstudenten van de Universiteit Gent de eerste respectievelijk tweede plaats in de Data Science Bowl van Kaggle.

Bayesiaans netwerk

Nog een andere aanpak in machinelearning vormen de Bayesiaanse netwerken. Een Bayesiaans netwerk is een probabilistisch grafisch model dat de conditionele afhankelijkheden van willekeurige variabelen voorstelt. Zo kun je de relaties tussen ziektes en symptomen voorstellen. Bij het voorkomen van bepaalde symptomen, kun je dan berekenen wat de kans is op allerlei ziektes.

“Voor een Bayesiaans netwerk moet je ontzettend sterke aannames maken over de wereld,” zegt Peter Grünwald van het Amsterdamse CWI. “Je moet aangeven hoe groot de kans is op alle mogelijke toestanden van de wereld, je prior beliefs. Voor complexere problemen gaat dat al snel over een kansverdeling van miljoenen getallen. Het is conceptueel niet zo eenvoudig om je dan voor te stellen waar je nu eigenlijk mee bezig bent.”

Peter Grünwald is daarom voorstander van een informatietheoretische aanpak. “Eigenlijk is dat een veralgemening van de Bayesiaanse methode, maar de interpretatie ervan is helemaal anders, in termen van datacompressie. De kern bestaat uit het minimum description length (MDL) principle. Dit principe zegt dat de beste hypothese voor een bepaalde verzameling gegevens degene is die leidt tot de beste compressie van deze gegevens.”

Als je ruwe data zoals x- en y-coördinaten letterlijk zou opschrijven zonder enige compressie, zouden die veel ruimte innemen. Maar als er een patroon tussen x en y bestaat, bijvoorbeeld y is een functie van x, dan kun je die gegevens kleiner opschrijven. Je schrijft dan de functie op en daarna de x-coördinaten. Die tweede manier comprimeert de gegevens beter dan de eerste en is dus een betere hypothese.

Machine learning en robots

We denken bij machinelearning doorgaans aan ‘virtuele’ oplossingen zoals slimme assistenten en vertaalprogramma’s, maar we zien ook meer en meer oplossingen in robotica, die een effect in de echte wereld hebben. “Het is een hele uitdaging om robots te leren bewegen en ze zo adaptief mogelijk te maken in menselijke situaties,” zegt Francis wyffels, die hiernaar onderzoek doet aan het IDLab van de Universiteit Gent.

Vooral in kleinere bedrijven is die aanpak interessant. Terwijl grotere productiebedrijven vaak grotendeels geautomatiseerde fabrieken hebben met robots die zonder enige menselijke inbreng hun werk doen, gaat het bij mkb’s vaak anders: de robots krijgen steeds wisselende taken en voeren die in nauwe samenwerking met mensen uit. Dat vereist heel wat meer intelligentie én aanpassingsvermogen.

Het is een hele uitdaging om robots te leren bewegen en ze zo adaptief mogelijk te maken in menselijke situaties

-

Om intelligentere robots mogelijk te maken, is ook heel wat fundamenteel onderzoek nodig. Zo bekijken onderzoekers hoe ze de werking van robots meer door biologische processen kunnen laten inspireren. “In onze ruggengraat zitten de Central Pattern Generators (CPG’s), neurale netwerken die de spieren aansturen. Voor motorische controle op hoog niveau zijn de hersenen natuurlijk nog nodig, maar de CPG’s werken op een lager niveau. De controle gebeurt dus door neurale netwerken op verschillende niveaus,” legt Francis wyffels uit.

“We kunnen dan ook allerlei basisbewegingen doen zonder dat onze hersenen dat moeten aansturen. Robots werken daarentegen doorgaans met één centraal programma dat alles aanstuurt. Wat als je nu de bewegingen van een robot ook hiërarchisch laat aansturen, met onafhankelijk werkende motorneuronen zoals in onze ruggengraat? Dit onderzoek staat wel nog in zijn kinderschoenen, maar het is een veelbelovende aanpak.”

Binnen enkele jaren zouden we ons domoticasysteem volgens Francis wyffels niet meer via een aanraakscherm aan de muur of via onze tablet aansturen, maar we zouden ermee op een natuurlijke manier communiceren via een soort kunstmatige huiscoach.

“Zo’n sociale robot waarmee je spreekt kan de aversie van veel mensen voor technische systemen overwinnen. Veel mensen zijn bang voor een domoticasysteem omdat ze in de war raken door al die knopjes en instellingen. Dat is allemaal veel te abstract voor hen. We hebben alle bouwblokken om een sociale interactie met ons domoticasysteem te ontwikkelen: goede spraakherkenning, beeldverwerking, kennis over human-robot interaction enzovoort. De ontwikkelingen zullen hier dus niet zo heel lang op zich laten wachten.”

De toekomst

De vooruitgang in machinelearning zal niet alleen in ons dagelijks leven gevolgen hebben, maar ook breder in onze maatschappij. Vaak hoor je het doemscenario dat we allemaal onze banen gaan verliezen aan computers. Artsen, journalisten, juristen, ... volgens de doemdenkers is hun baan binnen afzienbare tijd bijna volledig te automatiseren. Onderzoeksbureau Forrester voorspelt dat in 2021 al zes procent van de banen in de VS door robots zijn overgenomen.

Toch is het toekomstbeeld niet zo negatief voor onze baanvooruitzichten als vaak wordt voorgesteld. In zijn rapport ‘Preparing for the Future of Artificial Intelligence’ van eind 2016 schetste de Obama-administratie in één van zijn laatste publicaties dat we onze banen kunnen behouden als we mens en machine laten samenwerken om elkaars zwakheden te compenseren.

Zo vermeldt het rapport een studie waarbij afbeeldingen van cellen van lymfeknopen door een computer of door een dokter beoordeeld werden om te bepalen of het om kanker ging. De computer maakte 7,5 procent fouten, de menselijke patholoog 3,5 procent fouten. Maar als de patholoog werd bijgestaan door een computer, werd het foutpercentage van de gecombineerde aanpak gereduceerd tot 0,5 procent.

De grootste uitdaging in het domein is volgens Francis wyffels dat we te weinig mensen hebben die onderzoek doen naar machinelearning. Dat is volgens hem ook een gevolg van het gebrek aan interesse in wetenschappen en technologie bij de jeugd, in het bijzonder de informaticawetenschappen. Het sterotypische beeld van de asociale computernerd is nog altijd niet uitgeroeid.

“Hier ligt een grote taak voor de overheden en scholen: zij moeten onze jeugd voldoende laten kennismaken met informaticawetenschappen en hen leren om met de snelle veranderingen in de toekomst om te gaan. Er zijn gelukkig heel wat scholen die al op eigen houtje initiatieven invoeren om hun leerlingen warm te maken voor informaticawetenschappen.” Om leerkrachten daarbij te helpen, richtte Francis wyffels de vzw Dwengo op en heeft hij didactisch materiaal op de website program-uurtje verzameld.

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