Handleiding om een VPN server te installeren

Waarom een VPN verbinding gebruiken?

VPN verbindingen worden steeds belangrijker, want het is dagelijks in het nieuws: de dreigingen op het internet. Hackers proberen via de verspreiding van malware binnen te dringen op servers en computers. Denk bijvoorbeeld aan de wannacry ransomware die heel wat computers heeft besmet. Servers hebben vaak lekken waardoor er achterdeurtjes ontstaan waar misbruik van wordt gemaakt. De heartbleed bug is een recent voorbeeld. Doordat we tegenwoordig ook vaak gebruik maken van internet buiten huis, via wifi in hotels, winkelcentra en dergelijke, maar ook door het gebruik van internet via onze provider ontstaat er steeds vaker zwakke plekken waar hackers misbruik van kunnen maken. Veel telefoons maken bijvoorbeeld automatisch verbinding met open netwerken en voor een kwaadwillende derde is het dan makkelijk om gevoelige informatie te onderscheppen.

vrouw met internetsymbolen denkt aan VPN

Je kunt dan bijvoorbeeld denken aan de inloggegevens voor je bankieren app, maar ook wachtwoorden van je email en andere accounts zijn dan makkelijk te onderscheppen. Thuis weet je (waarschijnlijk) wie er gebruik maken van je wifi netwerk en als het goed is zit er een firewall tussen jouw thuisnetwerk en de grote boze cyberwereld buiten.

En natuurlijk zou het ook wel leuk zijn als je op afstand gebruik kunt maken van de apparaten in je thuisnetwerk, zoals printers en NAS-apparaten. Tenslotte kan het ook voordelen hebben dat je zelfs buitenhuis je ‘thuisidentiteit’ te gebruiken. Als je dan bijvoorbeeld gebruik maakt van Netflix heb je hetzelfde filmaanbod als thuis – handig als je bijvoorbeeld op vakantie bent in China en geen zin hebt om alleen Chinese films te kijken. En sommige applicaties loggen je ip-adres om te checken waar je bent. Met een VPN verbinding naar je thuisnetwerk is dat dus altijd het ip-adres dat je thuis hebt. Handig als je op je vakantieadres moet inloggen bij het UWV. Maar ook bij het boeken van een reis is de prijs soms afhankelijk van je huidige locatie – lees ip-adres, hoewel dat natuurlijk ook nadelig kan uitvallen.

Er zijn dus een aantal goede redenen om van een VPN verbinding gebruik te maken. Laten we daarom even kijken hoe dat in zijn werk gaat.

VPN: wat is dat eigenlijk?

VPN staat voor Virtual Private Network en is als het ware een beveiligde tunnel tussen de client en de vpn server. De data die over deze verbinding worden gestuurd zijn in principe niet te onderscheppen.

Deze dienst maakt gebruik van een reeds bestaand netwerk, doorgaans het internet, om informatiedeling tussen geografisch gescheiden netwerken mogelijk te maken alsof er een dedicated network was. De verzonden data kunnen het best beveiligd worden zodat de integriteit, autorisatie en authenticiteit van de data over dit onderliggende netwerk gewaarborgd blijven. De eindgebruikers zullen in principe niet merken dat er een VPN gebruikt wordt. Technisch zijn er ondertussen tal van protocollen uitgewerkt die deze dienst beschikbaar maken. Het bekendste en courantste protocol vandaag de dag is IPsec. BRON: WIKIPEDIA

Schema van VPN verbinding

Om gebruik te maken van een VPN zijn er een aantal mogelijkheden. Om te beginnen kun je natuurlijk gebruik maken van een betaalde dienst. Zoek op ‘VPN’ en je hebt volop keus. Op je telefoon heb je vaak de mogelijkheid om de vpn dienst in te stellen voor gebruik. Nadeel is dat je toch nog gebruik maakt van een externe dienst, die over het algemeen ook nog eens niet gratis is.

Mooier is het natuurlijk om zelf een VPN server op te zetten.

VPN server opzetten

Voor het opzetten van een vpn server gaan we gebruik maken van een Rapsberry Pi. Aanschafkosten hiervan liggen rond de vijftig euro. Het stroomverbruik ligt rond de 2W per uur, dus stroomverbruik is 3 a 4 euro per jaar. Leuker en goedkoper kunnen we het niet maken, toch?

Voor de installatie van de Raspberry Pi verwijs ik je even naar de officiële site. We gaan ons even beperken tot het installeren en configureren van en VPN server.

Voor de installatie van onze VPN server maken we gebruik van OpenVPN.

Allereerst zorgen we ervoor dat onze server up to date is door het volgende commando te typen:

Hierna is je server up to date en kun je verder gaan met de volgende stap, namelijk het installeren van OpenVPN:

Ga nu naar directory /etc/openvpn/easy-rsa/vars en pas hier wat variabelen aan. Om te beginnen is het goed om sterke encryptie te gebruiken, dus pas de waarde van de KEY_SIZE aan naar 2048.

export KEY_SIZE=2048

Een encryptie van 2048 bit wordt algemeen aangeraden. Maar dit betekent wel dat het iets langer duurt om straks de sleutels te genereren.

Daarna vul je het volgende aan: export EASY_RSA=

export EASY_RSA=”/etc/openvpn/easy-rsa”

Vervolgens gaan we certificaten genereren zodat je VPN apparaten kan autoriseren om toegang te krijgen. Voer de volgende commando’s in:

Je kunt overigens alles op de standaardwaarden laten staan.

Vervolgens moeten we de vpn server een naam geven.  Dat is een willekeurige naam, maar je moet het wel even onthouden.

Common name = NAAM VAN DE SERVER
Password –> leeg laten

Sign the certificate? [y/n] –> y

1 out of 1 certificate requests certified, commit? –> y

De server is nu gereed en het is nu tijd om keys te maken waarmee je gebruikers toegang kunt geven:

PEM pass phrase –> wachtwoord invullen (en onthouden)
Sign the certificate? [y/n] –> y

Hierna ga je naar de onderliggende map ‘keys’

cd keys

en type je in:

Gebruiker1 vervang je natuurlijk door de gebruikersnaam die je bij de volgende stap heb gekozen.

Ga vervolgens weer naar directory /etc/openvpn/easy-rsa
Nu gaan we Diffie-Hellman keys genereren.

Dit duurt even, zeker als je gekozen hebt voor 2048 bit encryptie. Dus even geduldig wachten tot het proces is afgelopen.
Nu moeten we alleen nog een configuratie aanmaken voor de server. Dus maken we het bestand /etc/openvpn/server.conf aan.

Zet hier de volgende informatie in:

Sla het bestand op en sluit je editor.

Zorg er nu voor dat je packet forwarding aanzet.
Open hier /etc/sysctl.conf. Verwijder het hekje voor:

In een vorige stap hebben we de keys gegenereerd, maar deze moeten we nog omzetten naar een formaat voor OpenVPN. Hiervoor is een script (met dank aan Eric Jodoin

Maak dit script aan met bijvoorbeeld de naam  MakeOVPP.sh en maak het execubable door in te geven chmod +x  MakeOVPP.sh

Voordat je het script uitvoert moet je het bestand Default.txt aanmaken onder /etc/openvpn/easy-rsa/keys en daar de volgende waarden inzetten:

Servernaam moet je natuurlijk even aanpassen.

Hierna kun je het script uitvoeren door in te geven: ./MakeOVPP.sh

Als key geef je in GEBRUIKER1 (vervang door de naam die je gekozen hebt). Hierna wordt er een bestand aangemaakt met als extensie .ovpn. Deze heb je nodig om verbinding te maken met de VPN server.

Overigens is het allereerst nog zaak om ervoor te zorgen dat de ingebouwde firewall op je pi verbindingen accepteert naar de vpn server.

Overigens kan het zijn dat je nog wat meer instellingen moet doen in je firewall om e.e.a. te laten werken. Als je vragen hier over hebt, stuur me dan gerust even een mailtje.

Hierna moet je nog zorgen dat je firewall zo wordt ingesteld dat je poort 1194 wordt doorverwezen naar je raspberry pi.
In portforwarding kun je dit aanpassen. Voor details moet je uiteraard even naar de handleiding van je router kijken.

OpenVPN client

De laatste stap is natuurlijk de leukste. Installeer OpenVPN client bijvoorbeeld op je telefoon(verkrijgbaar in de playstore en appstore). En maak dan verbinding via de volgende stappen:

Eerst start je de client:

OpenVPN startscherm telefoon

 

Hierna kies je voor het importeren van de key. Met het menu bovenin (de 3 puntjes) kun je kiezen om te importeren. Je kies dan voor de key die je hebt gedownload. Je vult je wachtwoord in…. en als alles goed gaat, zie je dat je verbinding hebt. Om nog even te checken dat je echt verbonden bent met je thuis werk kun je met je browser naar whatismyip.com. Als het goed is zie je daar nu het publieke ipadres van je verbinding thuis.

Veel succes met het installeren van je vpn server. Mochten er nog vragen zijn, voel je dan vrij om even contact met mij op te nemen.

Met dank aan:

BBC.com
Eric Jodoin

Download key openvpn