ID.nl logo
Hoe zou iets zich ontwikkelen? Bekijk het met de simulaties van NetLogo
© Faiza
Huis

Hoe zou iets zich ontwikkelen? Bekijk het met de simulaties van NetLogo

Simulaties vormen een onmisbaar gereedschap in de wetenschap, maar ook geïnteresseerde leken kunnen ermee spelen. Dat kan helemaal gratis met NetLogo.

Om de kans ergens op in te schatten,wordt veel gebruikgemaakt van simulaties. Met NetLogo kun je zelf allerlei simulaties kunt bekijken:

  • Hoe zuurstof en waterstof reageren
  • Voorspellingen over virussen
  • Het ontploffen van vuurwerk
  • Het kat-en-muisspel tussen jagers en hun prooien

Een heel ander soort simulatie: Aan de slag met Microsoft Flight Simulator

Een deel van onze wetenschappelijke kennis bestaat uit natuurwetten en die hebben vaak de vorm van formules waar je wat getallen in stopt en waar vervolgens een exact antwoord uit rolt. Helaas zit de wereld vol met processen die te complex zijn om op die manier te benaderen. Soms is dat omdat er te veel elementen een rol spelen en onze formules alleen werken voor eenvoudiger situaties en soms omdat we simpelweg de kennis missen om zulke formules te ontwikkelen. Er zijn daarnaast volop situaties waarin dat zelfs in theorie onmogelijk is.

Om in al die gevallen toch nuttige en bruikbare wetenschap te kunnen bedrijven, wordt veel gebruikgemaakt van simulaties.

Universeel

Voor heel veel simulaties wordt speciale software ontwikkeld. Dat geldt bijvoorbeeld voor de voorspelling van het weer en het klimaat, en het analyseren van verschijnselen in de kosmos die in het echt te langzaam verlopen om goed te kunnen bestuderen (zoals het botsen van melkwegstelsels).

Veel simulaties hebben echter gemeenschappelijke kenmerken en daarom bestaat er ook een universeel systeem waarin je allerlei soorten simulaties kunt maken. Het heet NetLogo en is helemaal gratis.

Er is ook een onlineversie, NetLogo Web, met enigszins beperkte functionaliteit en een desktopversie met volledige functionaliteit en een grotere verwerkingssnelheid.

We richten ons in eerste instantie op de webversie, omdat deze voldoende materiaal biedt voor een kennismaking.

Kennismaking

Wanneer je de webversie hebt gekozen, wordt het programma geopend met een willekeurig voorbeeld. NetLogo Web werkt met programmaatjes (die Models worden genoemd). Om een indruk te krijgen van het systeem openen we Connected Chemistry Gas Combustion. We zijn in eerste instantie niet geïnteresseerd in het doel van het model, maar in het gebruik ervan.

Zoals je links kunt zien, is er een knop genaamd setup. Klik je daarop, dan verschijnen in het zwarte vlak rechts blauwe en witte bolletjes die moleculen zuurstof en waterstof voorstellen.

Links zie je ook de nodige schuifregelaars waarmee je verschillende parameters van de simulatie kunt aanpassen, zoals het aantal moleculen waarmee de simulatie begint. We laten ze even voor wat ze zijn en klikken naast de setup-knop op go/stop. Je ziet nu de moleculen rondzweven, maar verder gebeurt er niets.

Klik je nu links op de knop speed up & trace one molecule, dan krijgt één molecuul waterstof zoveel energie dat het bij een botsing een zuurstofmolecuul kan breken om zich er vervolgens aan te binden en water te vormen. Hierdoor ontstaat zelfs een kettingreactie. Klik op go/stop om de simulatie te stoppen.

De simulatie begint te lopen nadat we op de knop speed up & trace one molecule hebben geklikt.

Werking

Zoals je hebt kunnen zien terwijl de simulatie draaide, verschijnen er ook grafieken voor het aantal moleculen, en de temperatuur en druk van het gasmengsel. Het zal duidelijk zijn dat dit niet kan zonder het nodige programmeerwerk. Programma’s voor de verschillende simulaties zijn toegankelijk. Je vindt ze door omlaag te scrollen en te klikken op NetLogo Code.

Uiteraard kunnen we je in deze workshop onmogelijk de programmeertaal van NetLogo leren. We zullen daarom alleen de nodige voorbeelden bekijken die een goed beeld geven van de veelzijdigheid en werking van het systeem.

Het leren van deze voorbeelden wordt vergemakkelijkt doordat programma’s vaak uitgebreid zijn voorzien van commentaar (de teksten achter ;;) en doordat ze in functionele blokken zijn verdeeld. Klik je op het keuzemenu genaamd Jump to Prcocedure, dan zie je de segmenten van het programma, zoals setup, make-box en make-gas-molecules (waar de begintoestand van de simulatie wordt gemaakt). Hierdoor kun je op zeker moment zelf de gewenste elementen uit bestaande voorbeelden halen en gebruiken als startpunt voor je eigen simulaties. Verderop komen we nog terug op educatief materiaal om NetLogo te leren.

De onderliggende programma’s zijn gestructureerd en overzichtelijk.

Uitleg

Elke simulatie in NetLogo kun je van tekst en uitleg voorzien en deze vind je onder het kopje Model Info. Hier lees je dat dit specifieke model de manier toont waarop zuurstof en waterstof met elkaar reageren in een raketmotor. Ook kun je deze ruimte gebruiken om te beschrijven hoe je het model gebruikt, bijvoorbeeld waar de verschillende schuifregelaars voor dienen (onder het kopje How to use it).

Omdat NetLogo vaak wordt gebruikt voor educatieve doeleinden, bevat dit specifieke model ook de nodige informatie over de achtergrond van het experiment en suggesties voor verder gebruik en uitbreiding ervan (vanaf het kopje Things to notice).

Interactie

Helemaal bovenaan de interface staat achter Search the Models Library een keuzemenu. Klik op het driehoekje van de modellenlijst bovenin en typ in het zoekvak dat daaronder verschijnt het woord lunar. Je ziet nu het model Lunar Lander. Klik erop om het te openen.

Net als bij het eerste voorbeeld zie je een schuifregelaar genaamd model speed. Deze komen we vaker tegen en dient uiteraard om de simulatie te versnellen of vertragen. Versnellen willen we in dit geval zeker niet, want Lunar Lander is een simulatie waarin je het oeroude spelletje Maanlander kunt spelen. Hierin moet je een ruimteschip een zachte landing op de maan laten maken.

Na een klik op setup wordt een willekeurig landschap gegenereerd met een blauw landingsplatform en een rood ruimteschip. Zodra je op go klikt, start de simulatie en begint het schip onder invloed van de zwaartekracht te dalen. Aan jou de taak om met de toetsen J (links), L (rechts) en K (motor) het schip zachtjes op het platform te plaatsen.. Behalve dat je automatisch draaiende simulaties kunt maken, biedt NetLogo dus ook volop interactie.

Een versie van het oude spelletje Maanlander.

Model

Ten tijde van de coronapandemie werden regelmatig voorspellingen gedaan over de verspreiding van het virus. Dergelijke voorspellingen waren gebaseerd op modellen. Een voorbeeld van zo’n model is Virus on a network. Op basis van de eerdere paragrafen weet je inmiddels hoe je dit model kunt vinden, initiëren en uitvoeren.

In dit model raken gezonde mensen (blauwe bolletjes) besmet (rode bolletjes). Er is een kans op herstel (recovery-chance). Als dat gebeurt wordt een bolletje weer blauw. Er is ook een kans dat iemand resistent wordt (gain-resistance-chance, grijze bolletjes). Iemand die resistent is (en dus zelf niet ziek wordt) kan het virus nog wel doorgeven.

Het model is opgebouwd als netwerk omdat zo ook onze leefwereld in elkaar zit: we zijn allemaal onderdeel van overlappende netwerken van familie, vrienden en collega’s.

Het voorspellen van de verspreiding van een virus.

Een virus stoppen?

Daar is zelfs een spelletje over gemaakt

Data

Onder de verschillende schuifjes waarmee je de parameters van het model naar je hand kunt zetten, zie je het venster Network Status. Dit heeft zijn eigen menu (de drie streepjes). Klik je daarop, dan kun je de gemaakte grafiek afdrukken (Print chart) of opslaan in verschillende formaten, zoals Download PNG image.

Beweeg je de cursor over de grafiek, dan zie je de bijbehorende waarden in een pop-up. Deze waarden kun je ook downloaden, zodat je er vervolgens in een programma als Excel verder mee zou kunnen werken. Dat doe je via de menuoptie Download CSV.

Grafieken kun je afdrukken en opslaan. Ook de achterliggende data kun je opslaan.

Complex

Tijdens de coronapandemie (en andere epidemieën) overleden er mensen aan een besmetting. In deze simulatie zou je dat kunnen verwerken door een percentage van de rode bolletjes na een bepaalde tijd te verwijderen. Dat zou de simulatie nog realistischer maken. Er is nog een factor als het gaat om de voorspellende waarde van dit model: virussen muteren en een nieuwe variant brengt nieuwe parameters met zich mee als het gaat om de kans op overleven of resistentie opbouwen. Die parameters ken je echter pas als zo’n nieuwe mutatie al een tijdje rondwaart.

Daarmee zie je ook meteen een tekortkoming van het werken met modellen. Ja, wetenschappers doen hun uiterste best om modellen zo goed mogelijk te maken, maar het blijft een kwestie van het doen van voorspellingen op basis van (soms zeer) onvolledige gegevens.

Overigens vind je tussen de vele voorbeelden in NetLogo ook meer geavanceerde voorbeelden op het gebied van virusverspreiding (zoek op epiDEM).

Logo

In de paragraaf ‘Werking’ hebben we al even onder de motorkap van een model gekeken. Een tweede model waarbij we dat doen is Fireworks. In dit eenvoudige programma wordt het ontploffen van vuurwerk nagebootst. Je speelt zelf met dit model door het weer op te zoeken in het keuzemenu Search the Models Library en te klikken op de inmiddels bekende knoppen setup en go.

Een eenvoudig programma dat het ontploffen van vuurwerk nabootst.

NetLogo is gebaseerd op Logo, een programmeertaal die al in 1967 werd ontwikkeld en die vooral voor educatieve doeleinden is gemaakt. Logo bevat een belangrijke grafische component, de zogeheten turtle-grapics. Het idee daarbij is dat je een schildpad, die is voorzien van een tekenpen, opdrachten geeft voor zijn bewegingen en voor het al dan niet gebruiken van de pen. Instructies worden dan ook gegeven vanuit het perspectief van de schildpad en het idee is dat dat perspectief het voor beginnende programmeurs eenvoudiger maakt om de juiste instructies te bedenken.

Open je het vak NetLogo Code, dan zie je ook meermaals het woord turtles in het programma (bijvoorbeeld op regels 34 en 44). De verschillende blokken die beginnen met to en eindigen met end beschrijven de bewegingen van de schildpadden die staan voor de afgeschoten vuurpijl of voor de vallende en gloeiende fragmenten.

In de programmeertaal (Net)Logo spelen zogeheten turtle-graphics een grote rol.

Lokaal

Telkens wanneer je de lijst met voorbeelden opent, zie je de tekst Grayed out models don’t yet run in NetLogo Web. Met andere woorden: de webversie kan nog niet alles wat de desktopversie kan. Tijd om de desktopversie te bekijken.

Daarvoor keren we terug naar de startpagina van NetLogo en kiezen Desktop App en Download NetLogo. Hierna hoef je niet per se iets in te vullen, maar kun je gewoon op Download klikken. Tot slot kunnen we kiezen uit versies voor Linux, macOS en Windows. Wij kiezen de Windows-versie in 64 bit. Eenmaal gedownload biedt de installatie geen verrassingen.

Als alles geïnstalleerd is en je hebt gekozen voor het maken van bureaubladpictogrammen, dan zie je dat er maar liefst vier zijn aangemaakt (ook te vinden in het Startmenu). Wij kiezen voor NetLogo.

Openen

Via het menu File / Open kun je uiteraard zelfgemaakt modellen openen, maar de meegeleverde voorbeelden vind je – keurig in rubrieken verdeeld – in Models Library. Hier kiezen we Sample Models / System Dynamics / Wolf Sheep Predation (System Dynamics). Dit is een bekend model uit de biologie waarmee het telkens verschuivende evenwicht tussen jagers en prooidieren wordt nagebootst. Dit is tevens een van de modellen die je in de webversie nog niet kunt gebruiken.

Naast een venster met het programma zie je nu ook een venster genaamd System Dynamics Modeller. Dit is een geavanceerde mogelijkheid die alleen de desktopversie biedt en waarin je grafisch allerlei verbanden kunt definiëren. Wanneer je dubbelklikt op een element, dan kun je de waarde bekijken en eventueel aanpassen. Ook vind je in dit venster een tabblad Code met het leeuwendeel van het programma.

Het programmavenster bevat weer de bekende elementen setup en go, en wanneer je die uitvoert, zie je hoe de populaties wolven en schapen veranderen.

Dit venster bevat naast het tabblad Interface (de uitvoer) ook het tabblad Info met uitleg en het tabblad Code met programmacode. Die activeert in dit geval de hoofdmoot van de code in het andere venster.

In de desktopversie kun je op geavanceerde wijze modellen visueel opbouwen.

Widgets

Open in de desktopversie het model Curricular Models / Connected Chemistry Gas Combustion dat we eerder in de webversie bekeken. Daar zagen we – naast de programmacode – ook de verschillende schuifregelaars waarmee we parameters konden wijzigen, grafiekjes waarin waarden worden bijgehouden en natuurlijk het venster waarbinnen de moleculen bewegen. Al deze elementen van een simulatie worden aangeduid met de term Widgets.

In het lint met pictogrammen vind je alle beschikbare widgets wanneer je klikt op het driehoekje achter Button. Met een klik op Add en een klik op de plaats van bestemming kun je een widget toevoegen aan de gebruikersinterface van een programma. Er wordt dan een pop-up geopend waarin je de eigenschappen opgeeft.

Met widgets voeg je elementen toe aan de gebruikersinterface van je programma.

Tot slot

In het menu Help vind je heel veel bronnen waarmee je NetLogo verder kunt verkennen. Onder File / Models Library vind je onder het kopje Code Examples heel veel basisvoorbeelden die speciaal zijn bedoeld om de verschillende aspecten van de NetLogo-taal te leren.

Ben je daarmee eenmaal vertrouwd, dan kun je je op de meer geavanceerde mogelijkheden storten, zoals het zoeken naar specifieke uitkomsten van een simulatie met de losse module BehaviorSearch en 3D-visualisaties met NetLogo3D.

Ga je naar het menu Tools / Extensions, dan zie allerlei reeds geïnstalleerde en beschikbare extensies waarmee je de mogelijkheden nog verder kunt uitbreiden. Zo kun je vanuit NetLogo een Arduino-apparaat aansturen, video’s vastleggen van simulaties en nog veel meer.

Er valt dan ook nog heel wat te ontdekken met dit boeiende gereedschap!

Analyseer simulaties automatisch met BehaviorSearch.
Watch on YouTube
▼ 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.