Blog overview

. Maak van je VPS een VPN met WireGuard

In een eerder artikel schreven we over het gebruiken van een VPN-verbinding en de voordelen daarvan. We stipten ook al even kort aan dat het mogelijk is om een VPN op je VPS te installeren. In dit artikel gaan we hier verder op in: wat is het voordeel van een VPN via je eigen VPS en hoe zet je dit op met behulp van het WireGuardprotocol?

Jouw verbinding, jouw data

Je VPS instellen als jouw privé-VPN heeft zo zijn toepassingen. Het is bijvoorbeeld goed te gebruiken om een versleutelde verbinding op te zetten vanuit het buitenland. Hierdoor is het ideaal voor mensen die regelmatig aangewezen zijn op hotel-wifi en openbare netwerken in de trein of in cafés. Die verbindingen zijn zo alsnog veilig te gebruiken, want ze zijn via je VPS versleuteld. Het grootste voordeel is nog wel dat je zelf al jouw verkeer in handen houdt. Je hoeft je dus geen zorgen te maken dat je VPN-provider aan de haal gaat met je gegevens.

Het is echter minder geschikt als je vrij wilt zijn in de keuze van het IP-adres van je VPN-server, omdat je VPS in de meeste gevallen over een vast IP-adres beschikt. Ook is het niet zo kant-en-klaar in te zetten als een VPN-account dat je afneemt bij een VPN-leverancier. Je zult namelijk zelf aan de slag moeten om je server gebruiksklaar te maken en het VPN-protocol in te stellen op je VPS.

WireGuard

Tegenwoordig zijn er veel VPN-leveranciers die deze self-hosted functionaliteit aanbieden. Er is er echter één die de afgelopen tijd veel aandacht krijgt: WireGuard. Deze relatief nieuwe speler op de VPN-markt belooft sneller, stabieler en gebruiksvriendelijker te zijn dan gevestigde namen als OpenVPN en IPSec. WireGuard werkt met de laatste stabiele versies van hoogwaardige encryptiealgoritmes. Het is ook vele malen sneller in het opzetten van de verbinding dan zijn concurrenten en lijkt veel stabieler te zijn in het behouden van die connectie. Dit heeft vooral zijn voordelen wanneer je een VPN gebruikt op openbare netwerken en niet zomaar terug wilt vallen naar een publieke verbinding.

Compact, snel, en cross-platform te gebruiken

Daarnaast is het voor een opensourceproject ook vele malen makkelijker te reviewen. Dit is te danken aan de compacte codebase: zo’n 4.000 regels code, tegenover de 70.000 regels code in OpenVPN. WireGuard is al te gebruiken op een waslijst aan Linuxdistributies. Het is ook beschikbaar voor Windows, macOS, BSD, iOS en Android in handige softwareclients. En laten we vooral niet vergeten dat het al de goedkeuring heeft van Linus Torvalds zelf.

In ontwikkeling

Ondanks de positieve aandacht voor hun product en ondersteuning uit de Linuxcommunity heeft het WireGuardteam vrij lang aangegeven dat hun systeem niet klaar was voor een stabiele release. Zo gaven ze onder andere aan dat ze niet konden garanderen dat er geen beveiligingsproblemen in hun programma zaten terwijl het nog in ontwikkeling was. Gelukkig heeft WireGuard inmiddels hun 1.0-releases voor een aantal Linuxdistributies uitgebracht, ondersteuning voor een aantal nieuwe platformen toegevoegd, en naast de WireGuardmodules ook tools toegevoegd op hun installatiepagina waarmee gebruikers snel aan de slag kunnen.

In december 2019 is het toegevoegd aan de “net-next tree” van Linux, waarna het in januari 2020 officieel is toegevoegd aan de mainline Linuxkernel. Sindsdien zijn er versies van WireGuard opgenomen in bijvoorbeeld de testversie van Debian 11, de Generic Kernel Image van Android en in OpenBSD.

Niet direct geschikt voor grote ondernemingen

Waar wel een kanttekening bij gemaakt moet worden, is dat WireGuard door het gebruik van vaste IP-adressen niet heel makkelijk inzetbaar is voor grote ondernemingen. WireGuard biedt geen ondersteuning voor het dynamisch toewijzen van IP-adressen. Elke client die gebruikt wordt, zal handmatig in de configuratie moeten worden toegevoegd met het bijbehorende IP-adres. Maar heb jij graag zelf helemaal de touwtjes in handen en wil je weten waar je data naartoe gaat of wat er mee gebeurt? Dan is het opzetten van een VPN op je eigen VPS met WireGuard een leuke uitdaging.

Zelf aan de slag in 5 stappen

Inmiddels zijn er op het internet voor bijna elke distributie wel handleidingen te vinden om WireGuard te installeren op je eigen VPS. Wil je zelf aan de slag? Dan is het aan te raden om na het lezen van dit artikel zelf even een handleiding op te zoeken voor jouw Linuxdistributie en -versie. Niet elke Linuxdistributie heeft WireGuard al standaard opgenomen in de package list. Bekijk de installatiegids op de website van WireGuard om te zien of je zelf de package moet toevoegen aan de repository of dat deze al gewoon aan te roepen is. De onderstaande stappen kan je als richtlijn aanhouden.

1. Activeer WireGuard

Omdat WireGuard draait als kernelmodule, zul je hem handmatig moeten activeren. Dat doe je als volgt:

modprobe wireguard

Mocht een reboot je voorkeur hebben, voer die dan nu uit. Controleer of je deze stap goed hebt doorlopen met het commando lsmod:


2. Configureer je server

WireGuard heeft een eigen commando om een key pair aan te maken voor de server of client:

wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey

Met dit key pair kun je beginnen met de configuratie. Maak deze aan op de juiste plek. Meestal is dit /etc/WireGuard/. WireGuard gaat zelf uit van het bestand wg0.conf, maar deze kun je uiteraard hernoemen.

Let op dat er bij de netwerkinterface in dit voorbeeld gewerkt wordt met ens3. Dit kan afhangen van je distributie. Als je gekozen hebt voor een interne IP-reeks zoals de 10.10.0.X-reeks in de voorbeelden in dit artikel, moet je je NAT instellen. Pas verder je firewalls aan zodat de port daadwerkelijk openstaat.

Vergeet hem niet open te zetten voor UDP. WireGuard gebruikt zelf standaard port 51820, maar dit is aan te passen in de configuratie.

Als laatste stap laad je WireGuard. Dit doe je met het commando:

wg-quick up wg0

Als je de naam van het configuratiebestand hebt aangepast, verander hier dan 'wg0' in de naam van jouw nieuwe bestand.

3. Stel je client in

Wanneer je deze stappen hebt doorgelopen, is het tijd om een client in te stellen en de public key van je client toe te voegen aan de configuratie op de server. WireGuard heeft inmiddels ook een aantal softwareclients geproduceerd voor verschillende platformen. Deze maken het gebruiken van je kersverse VPN heel makkelijk, zelfs voor minder technisch onderlegde eindgebruikers. De Windowsclient werkt met een configuratievenster die bij het opzetten al automatisch een nieuw key pair aanmaakt. De rest van de configuratie moet aangevuld worden met de gegevens van de VPN-server:

4. WireGuard-apps op iOS of Android

De iOS- en Androidapps zijn te downloaden via de App Store of Google Play. Beide apps laten je automatisch een key pair genereren. Ze werken niet met een handmatig aan te passen config, maar met een aantal invoervelden. Hier vul je de public key van de server, het IP-adres van de server en andere van toepassing zijnde data heel makkelijk en snel in.

Als deze velden zijn ingevuld, is het nog een kwestie van de client toevoegen aan de configuratie op de server. Hiervoor heeft WireGuard het volgende commando:

wg set wg0 peer <public key van de client> allowed-ips <IP-adressen van de client>

5. Test je verbinding

Als de juiste public key en IP-adressen voor elke te gebruiken client zijn toegevoegd, is de VPN op je VPS klaar voor gebruik. Test je verbinding met een tool als myip.nl om zeker te weten dat je IP-adres veranderd is naar dat van je VPS. Of controleer je installatie op de server met het commando ‘wg’. Dit zal een vergelijkbaar resultaat geven als onderstaand screenshot:

Nog meer gadgets

WireGuard is relatief makkelijk te installeren en te gebruiken. Daarnaast biedt het meer mogelijkheden die (nog) niet standaard ingebouwd zijn. De Android- en iOSapps hebben allebei al de functionaliteit ingebouwd gekregen om QR-codes uit te lezen. Hiermee zet je in één keer een tunnel op. Dit maakt de software voor eindgebruikers op mobiele apparaten zo mogelijk nog eenvoudiger. Wil je hier gebruik van maken, zul je wat tijd moeten steken in het toevoegen van de qrencode-functionaliteit.

Je VPS als DNS

In de voorbeelden in dit artikel zijn we uitgegaan van de DNS van Google. Heb je liever de touwtjes helemaal zelf in handen? Stel dan je VPS ook in als je eigen DNS, bijvoorbeeld met de service Unbound.

Nu de eerste stabiele versies van WireGuard zijn uitgerold en breed worden omarmd door de Linuxcommunity is het afwachten welke functionaliteiten het team van WireGuard nog meer zal gaan toevoegen. Maar als je op zoek bent naar een sterke VPN is WireGuard nu al een ontzettend mooie toevoeging op je VPS die je relatief snel en eenvoudig op kunt zetten en gebruiken.

Indien je nog geen VPS hebt, neem dan een kijkje op de website van team.blue en leer onze brands kennen.


Bekijk de cultuurpagina van team.blue


Share this article

Related articles

Blog overview

Author: team.blue NL

Is de auteursnaam die we gebruiken wanneer een blogpost in teamverband is samengesteld. Denk bijvoorbeeld aan een Employer Branding-artikel.