WireGuard VPN server opzetten

In deze how-to leg ik stap-voor-stap uit hoe je je eigen WireGuard VPN server kunt installeren. WireGuard is een relatief nieuw VPN protocol, gebruikt moderne en veilige encryptie, en is een stuk sneller dan alternatieve protocollen zoals IPsec en OpenVPN.

Voor de installatie van WireGuard gebruiken we Algo, wat een soort installatie-schild rondom WireGuard is en die de meeste zaken gelijk goed voor je instelt en beveiligd.

Voor deze tutorial gebruik ik een X1 server bij Cloud Provider voor 5 euro per maand met Ubuntu 20.04 als besturingssysteem. Login via SSH in op de server als root.

Stap 1: Algo downloaden

Je kunt Algo als .zip bestand downloaden:

wget https://github.com/trailofbits/algo/archive/master.zip

Uitpakken kan vervolgens door unzip te installeren en te gebruiken:

apt-get install unzip
unzip master.zip

Stap 2: Algo dependencies installeren

Algo bestaat uit Python scripts, dus Python 3 moet geinstalleerd worden op je server. Dit kan met:

sudo apt install -y --no-install-recommends python3-virtualen

We gaan vervolgens in de algo-master directory staan:

cd algo-master

En met het volgende commando installeren we de dependencies die Algo nodig heeft voor de installatie:

python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt

Stap 3: configuratie instellen

Nu is het tijd om de instelopties in de configuratie bij langs te gaan, en die in te stellen naar jouw wensen en eisen. Je kunt een of meerdere users opgeven die worden geconfigureerd. Houd er rekening mee dat je voor elk device een aparte user aanmaakt. Als je op een later tijdstip users wilt kunnen toevoegen en verwijderen, stel dan de optie "Do you want to retain the keys (PKI)?" in op yes.

Open en bewerk het configuratiebestand met je favoriete teksteditor, zoals nano:

nano config.cfg

Stap 4: Algo runnen

Nu dat alles klaar staat, kunnen we Algo WireGuard VPN op je server laten installeren. Dit doe je met:

./algo

Na een tijdje zul je het onderstaande zien staan:

"#                          Congratulations!                            #"
"#                     Your Algo server is running.                     #"
"#    Config files and certificates are in the ./configs/ directory.    #"
"#              Go to https://whoer.net/ after connecting               #"
"#        and ensure that all your traffic passes through the VPN.      #"
"#                     Local DNS resolver 172.16.0.1                    #"
"#        The p12 and SSH keys password for new users is XXXXXXXX       #"
"#        The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       #"
"#      Shell access: ssh -F configs/<server_ip>/ssh_config <hostname>  #"

Gefeliciteerd! Je VPN server is nu up and running. Let er op dat je het p12 password en CA key password opslaat, want deze wordt slechts 1x getoond - en heb je nodig als je aanpassingen wilt maken aan de configuratie, zoals het toevoegen en verwijderen van users.

Stap 5: VPN clients instellen

Ten slotte kun je de VPN clients installeren op je computer(s) en smartphone(s) om een beveiligde verbinding met je zojuist aangemaakte VPN server op te zetten. WireGuard heeft voor alle gangbare platformen een client beschikbaar:

In het /configs/wireguard/ mapje kun je per user een configuratiebestand vinden, welke je kunt importeren in de WireGuard VPN client. De smartphone apps ondersteunen ook het scannen van een QR code, welke je ook in dit mapje per user zult zien staan.