Zo zet je je eigen vpn-server op
Vpn-servers kom je vooral tegen in de bedrijfswereld: werknemers kunnen hiermee onderweg of vanuit huis op een veilige manier het bedrijfsnetwerk op. Toch kan een vpn-server ook handig van pas komen wanneer je zelf onderweg bent en veiliger het internet op wilt, of bestanden op je thuisnetwerk wilt benaderen.
Tip 01: Vpn-protocollen
Er zijn heel wat vpn-diensten en sommige kun je zelfs zonder al te veel beperkingen ook gratis gebruiken, zoals ProtonVPN. Via clientsoftware op je mobiele apparaat of computer maak je dan verbinding met een van de aangeboden vpn-servers, waarna je via zo’n server verder het internet op kunt.
De insteek van dit artikel is ambitieuzer: we gaan binnen ons thuisnetwerk een eigen vpn-server opzetten. Vpn staat voor virtual private network (in het Nederlands ook wel virtueel particulier netwerk) en dat houdt in dat je netwerken met elkaar verbindt die fysiek van elkaar gescheiden zijn. Zo’n verbinding loopt normaliter via internet en dat is niet bepaald de veiligste omgeving. Daarom ook wordt alle dataverkeer via zo’n vpn-verbinding versleuteld: er wordt als het ware een virtuele tunnel tussen beide netwerken gemaakt.
Er zijn verschillende vpn-protocollen beschikbaar, waaronder pptp, sstp, ikev2, l2tp/ipsec, OpenVPN en WireGuard. De laatste is veelbelovend, maar nog volop in ontwikkeling en vooralsnog niet breed ondersteund. Wij kiezen hier voor OpenVPN omdat het opensource is, stevige versleuteling heeft en beschikbaar is op bijna alle platformen.
Op dit moment wordt OpenVPN nog steeds als het betere vpn-protocol gezien
-
Router
In feite is je router de beste plek om een vpn-server op te zetten in je thuisnetwerk. Immers, al het dataverkeer van de websites die je onderweg bezoekt, gaan dan eerst via je vpn-server. Is dat je router, dan gaat dat verkeer meteen weer door naar je mobiele apparaat. Staat je vpn-server op een nas of pc, dan moet het dataverkeer eerst van je router naar dat apparaat en vandaar weer terug naar je router. Een extra tussenstap dus, maar in de praktijk zul je van deze vertraging niet zoveel merken. Helaas hebben veel doorsnee routers voor thuisgebruik geen mogelijkheid ingebouwd om een vpn-server op te zetten. Ontbreekt er op jouw router inderdaad een vpn-dienst, dan biedt de firmware van DD-WRT wellicht nog een uitweg. Surf hiernaartoe en vul je routermodel in. Met wat geluk staat er yes in de kolom Supported en kun je het firmwarebestand downloaden om daarmee je router te flashen. Let wel, zo’n gevoelige operatie voer je geheel op eigen risico uit! Voor instructies kun je hier terecht.
©PXimport
Tip 02: Installatie op een nas
We tonen eerst hoe je een OpenVPN-server installeert op een nas. Bekende nas-producenten als QNAP en Synology bieden een eigen app voor het toevoegen van een vpn-server. We bekijken hoe je dat aanpakt op een Synology-nas met een recente versie van DiskStation Manager (DSM). Maak alvast verbinding met de webinterface van DSM, standaard is het adres <ip-adres>:5000 of <ip-adres>:5001.
Open het Package Center, ga bij Alle pakketten op zoek naar de app VPN Server en klik hier op Installeren. Na de installatie klik je op Openen: de server kan met enkele vpn-protocollen overweg, in de lijst staan PPTP, L2TP/IPSec en OpenVPN. In principe kunnen die zelfs tegelijkertijd actief zijn, maar wij beperken ons tot OpenVPN-protocol. Klik op OpenVPN en plaats een vinkje bij OpenVPN-server inschakelen. Stel een virtueel intern ip-adres in voor je vpn-server. Standaard staat dit ingesteld op 10.8.0.1, wat maakt dat de vpn-clients in principe een adres tussen 10.8.0.1 en 10.8.0.254 zullen ontvangen. Je kunt kiezen uit een ip-bereik tussen 10.0.0.1 en 10.255.255.1, tussen 172.16.0.1 en 172.31.255.1 en tussen 192.168.0.1 en 192.168.255.1. Zorg er wel voor dat het bereik niet overlapt met ip-adressen die momenteel in je lokale netwerk worden gebruikt.
©PXimport
Op sommige nas-apparaten heb je een OpenVPN-server zó geïnstalleerd
-
Tip 03: Protocolkeuze
In hetzelfde configuratievenster leg je ook het maximale aantal gelijktijdige verbindingen vast, evenals de poort en het protocol. Standaard is de poort 1194 en het protocol UDP en dat voldoet normaal gesproken prima. Heb je al een andere service op die poort draaien, dan stel je uiteraard een ander poortnummer in.
Verder, je kunt ook tcp kiezen in plaats van udp. Tcp heeft ingebouwde foutcorrectie en controleert of elke bit goed is aangekomen. Dat zorgt voor meer verbindingsstabiliteit, maar gaat net iets trager. Udp is daarentegen een ‘stateless protocol’ zonder foutcorrectie, wat het geschikter maakt voor streamingdiensten, waarbij het wegvallen van een aantal bits doorgaans minder erg is.
Ons advies: probeer het eerst met het udp. Eventueel kun je achteraf gaan experimenteren en bijvoorbeeld tcp-poort 8080, of zelfs de https-poort 443 kiezen omdat die doorgaans minder snel door een (bedrijfs)firewall worden geblokkeerd. Houd er rekening mee dat je bij de instellingen voor portforwarding ook het gekozen protocol nog moet instellen (zie tip 5).
De overige opties van het configuratievenster kun je normaal gesproken ongemoeid laten. Bevestig je keuzes met Toepassen.
©PXimport
Tip 04: Export configuratie
Onderaan het venster vind je de knop Configuratie exporteren. Hiermee exporteer je een zip-bestandje dat uitgepakt zowel een certificaat (.crt) als een configuratieprofiel (.ovpn) oplevert. Het ovpn-bestand heb je nodig voor je OpenVPN-clients (zie ook tips 6 tot 8). Open het ovpn-bestand met het programma Kladblok. Vervang in de (derde) regel de aanduiding YOUR_SERVER_IP in remote YOUR_SERVER_IP 1194 door het externe ip-adres van je router en de aanduiding 1194 door de poort die je in het OpenVPN-configuratievenster had ingesteld. Een snelle manier om dit externe ip-adres te achterhalen is wanneer je vanaf je interne netwerk naar een site als www.whatismyip.com gaat (zie kader ‘Ddns’). Overigens mag je dit ip-adres ook vervangen door een hostnaam, zoals dat van een ddns-dienst (zie zelfde kader).
Wat verder in het ovpn-bestand zie je de regel #redirect-gateway def1. Hier verwijder je het hekje, dus redirect-gateway def1. Deze optie zorgt ervoor dat in principe al het netwerkverkeer langs de vpn wordt omgeleid. Mocht dit problemen geven, dan zet je de oorspronkelijke regel terug. Meer informatie hierover (en over andere technische kwesties van OpenVPN) vind je hier.
Sla het bewerkte bestand met dezelfde extensie op.
©PXimport
Ddns
Van buitenaf benader je je thuisnetwerk meestal via het publieke ip-adres van je router. Dat adres kom je te weten wanneer je vanaf je netwerk surft naar een site als www.whatismyip.com. De kans is groot dat je provider dit ip-adres dynamisch heeft toegekend en dus heb je geen garantie dat dit ip-adres altijd hetzelfde blijft. Dat is vervelend als je geregeld je netwerk (en je OpenVPN-server) van buitenaf wilt bereiken. Een dynamisch dns-dienst (ddns) biedt een mogelijke uitweg. Die zorgt er namelijk voor dat er een vaste domeinnaam aan dat ip-adres wordt gekoppeld en zodra het adres wijzigt, maakt het bijbehorende ddns-tooltje (dat lokaal ergens in je netwerk zoals op je router, nas of pc draait) het nieuwe adres kenbaar aan de ddns-dienst, die de koppeling meteen bijwerkt. Een van de meest flexibele gratis ddns-providers is Dynu.
©PXimport
Tip 05: Portforwarding
Er verschijnt een bericht dat je de instellingen voor portforwarding en van de firewall met betrekking tot de ingestelde poort moet controleren (standaard dus 1194 udp).
We beginnen met de firewall. Het is de bedoeling dat je de OpenVPN-server via udp-poort 1194 benadert en dan moet je wel zeker zijn dat je firewall die poort niet blokkeert. Je vindt de firewall op je nas via Configuratiescherm / Beveiliging / tabblad Firewall. Bij de ingeschakelde firewall controleer je via de knop Regels bewerken of de bewuste poort niet is vergrendeld. Dit geldt trouwens ook voor de firewall op je router, mocht die zijn ingeschakeld.
Het begrip portforwarding is complexer. Wanneer je van buiten je interne netwerk je OpenVPN-server wilt bereiken, zul je via het publieke ip-adres van je router moeten gebruiken. Wanneer je via dit ip-adres een aanvraag doet voor een OpenVPN-verbinding met udp-poort 1194, dan moet je router wel weten naar welke machine hij de aanvraag voor dat poortverkeer moet doorsturen en dat is in ons geval het interne ip-adres van je nas.
Raadpleeg de handleiding van je router om uit te vogelen hoe je portforwarding goed instelt of bezoek https://portforward.com/router voor meer instructies.
Over het algemeen gaat het zo: meld je aan bij de webinterface van je router, ga op zoek naar een (sub)rubriek als Port forwarding en voeg een item met de volgende informatie toe: naam toepassing, ip-adres van de nas, interne poort, externe poort en protocol. Dat zou bijvoorbeeld het volgende kunnen worden: OpenVPN, 192.168.0.200, 1194, 1194, UDP. Bevestig je wijzigingen.
©PXimport
Wellicht vergt je OpenVPN-server nog enig sleutelwerk aan firewall en router
-
Aparte OpenVPN-server
Beschik je niet over een nas en ondersteunt je router ook geen OpenVPN, dan kun je zo’n OpenVPN-server nog altijd zelf opzetten op een computer met Linux of Windows. Zo’n procedure heeft wel wat voeten in de aarde. Je moet namelijk diverse stappen doorlopen en ook onder Windows gebeurt dat vooral vanaf de Opdrachtprompt. Na het installeren van de software OpenVPN Server (zie tip 8) dien je een CA-certificaat te maken, gevolgd door het aanmaken van certificaten voor de server en de benodigde OpenVPN-clients. Verder heb je nog zogenoemde DH-parameters nodig (Diffie-Hellman) evenals een TLS-sleutel (transport layer security). Tot slot moet je ook hier ovpn-bestanden maken en aanpassen, en ervoor zorgen dat je server het nodige verkeer toelaat. Via deze link vind je een stappenplan voor Windows 10, voor Ubuntu via deze link.
©PXimport
Tip 06: Profiel mobiele client
Het opzetten van een OpenVPN-server is een eerste stap, maar daarna moet je vanaf een of meerdere vpn-clients (zoals je laptop, telefoon of tablet) verbinding naar de server maken. We beginnen met het verbinden van een mobiele client.
Voor zowel iOS als Android werkt het opzetten van een verbinding het makkelijkste met een OpenVPN-client-app als het gratis OpenVPN Connect. Je vindt deze app in de officiële app-stores van zowel Android als Apple.
We nemen Android als voorbeeld. Download en installeer de app. Voordat je de app start, zorg je er eerst voor dat het ovpn-profielbestand op je mobiele apparaat staat (zie tip 4). Desnoods doe je dat via een omweg via een dienst als WeTransfer of een cloudopslagdienst als Dropbox of Google Drive. Start OpenVPN Connect op en kies OVPN Profile. Bevestig met Toestaan, verwijs naar het opgehaalde VPNconfig.ovpn-bestand en selecteer Import. Wil je naderhand nog extra profielen toevoegen, dan kan dat eenvoudigweg via het plus-knopje.
Tip 07: Client verbinden
Geef een geschikte naam aan je vpn-verbinding en vul de juiste gegevens in bij Username en Password. Deze inloggegevens moeten uiteraard toegang hebben tot je vpn-server, op de Synology-nas open je bij VPN Server de rubriek Rechten en plaats je naast de beoogde gebruiker(s) een vinkje bij OpenVPN. Eventueel kies je ervoor het wachtwoord te laten onthouden, als je dat veilig genoeg acht. Bevestig met Add. Het profiel is toegevoegd, tik het aan om de verbinding te starten.
De app klaagt er wellicht over dat het profielbestand niet over een client-certificaat beschikt (wel een server-certificaat), aangezien een Synology-nas dat niet zomaar genereert. Dat is weliswaar iets minder veilig omdat niet wordt geverifieerd of het om een geautoriseerde client gaat, maar je hebt natuurlijk wel de gebruikersnaam en het wachtwoord nodig om daadwerkelijk toegang te krijgen. Je kunt hier dus Continue kiezen. Als het goed is, wordt de verbinding even later opgezet. Dat merk je onder meer aan het sleutelicoontje bovenaan het startscherm.
©PXimport
Tip 08: Windows-client
Voor Windows download je de Windows 10-installer van OpenVPN GUI, er is ook een versie voor Windows 7 en 8(.1). Installeer de tool. Ben je van plan ook een OpenVPN-server in Windows te installeren (zie kader ‘Aparte OpenVPN-server’), plaats dan tijdens de installatie een vinkje bij EasyRSA 2 Certificate Management Scripts. Laat desgevraagd ook toe dat er een TAP-driver wordt geïnstalleerd.
Na afloop vind je het pictogram OpenVPN GUI op je bureaublad. Zo niet, dan start je het programma op vanuit de standaard installatiemap C:\Program Files\OpenVPN\bin. De installatie zou ervoor moeten zorgen dat je de tool niet als administrator hoeft op te starten. Is dat om wat voor reden dan ook niet gelukt, klik dan met rechts op het programmabestand en kies alsnog Als administrator uitvoeren.
Wijs het programma de weg naar je ovpn-profielbestand (zie tip 4). Klik met rechts op het pictogram van OpenVPN GUI in het systeemvak van Windows en kies je Bestand importeren, waarna je VPNConfig.ovpn-bestand selecteert. In ditzelfde menu klik je vervolgens op Verbinden en vul je de benodigde inloggegevens in. In het statusvenster kun je het opzetten van de vpn-verbinding volgen en lees je onderaan ook het toegewezen ip-adres af.
Loop je tegen problemen aan, klik dan in het menu op Logbestand weergeven. Standaard start de OpenVPN-dienst samen met Windows op: dat regel je via Instellingen, op het tabblad Algemeen. Controleer ook dat je firewall de verbinding niet blokkeert.
©PXimport