Raspberry Pi als VPN-server inrichten? Zo doe je het snel & gemakkelijk!

Elwin Hodžić
0

Inhoudsopgave

    Wil je graag een VPN-server inzetten voor alle pc’s, gameconsoles en mobiele apparaten in huis, maar heb je geen geschikte pc of router? Dan is een Raspberry Pi een geschikte oplossing om als VPN-server in te richten.

    In deze Raspberry Pi Projects workshop zullen we je laten zien hoe je in een paar simpele stappen een Raspberry Pi als VPN-server kunt inrichten en dus van een VPN gebruik kunt maken op onder andere je Playstation 5 en andere apparaten waar helaas geen VPN-software op te downloaden/installeren is.

    Raspberry Pi als

    Een Raspberry Pi als VPN-server gebruiken?

    Met slechts een paar relatief eenvoudige scripts kun je elke Raspberry Pi configureren tot een headless VPN-gateway. Dit betekent dat wanneer hij is aangesloten op je router, je er het dataverkeer naartoe kunt omleiden vanaf andere apparaten voordat ze verbinding maken met de buitenwereld. In wezen zet je ze dus achter een VPN.

    Benodigdheden

    Voor dit Raspberry Pi Project heb je vier dingen nodig:

    • een Raspberry Pi
    • een sd-kaart die is geflasht met het Raspbian-besturingssysteem
    • een abonnement op een VPN-dienst naar keuze (in dit artikel gebruiken we zelf NordVPN). We hebben een voor VPN-dienst gekozen, omdat het ons verzekert dat het geen gebruikersgedrag registreert of filtert voor bepaalde activiteiten zoals P2P-protocollen. Er zijn diensten die nog meer anonimiteit beloven, of beter betaalbaar zijn, maar NordVPN is een goede plek om te beginnen met het onderzoeken van de mogelijkheden.
    • OpenVPN-configuratiebestanden en encryptiecertificaten

    OpenVPN-configuratiebestanden en encryptiecertificaten

    Van de OpenVPN-configuratiebestanden en encryptiecertificaten zijn er meestal heel veel. Kies dus een handvol servers waarmee je snel verbinding wilt kunnen maken. We hebben gekozen voor twee NL- en twee DE-servers, waarbij we hebben gekozen voor een server die het UDP-protocol ondersteunt en een die TCP/IP ondersteunt. Je moet deze configuratiebestanden downloaden op de website van je VPN-provider. Download ze en pak ze uit in een map op je desktop.

    Het opzetten van een Raspberry Pi als VPN-Server

    We willen dat onze Raspberry Pi headless draait, dat wil zeggen zonder toetsenbord en monitor, wat betekent dat we, als het eenmaal draait, toegang moeten krijgen met behulp van een remote shell en ssh. Voor de eerste keer kan het eenvoudiger zijn om de Pi rechtstreeks te benaderen door randapparatuur aan te sluiten, in ieder geval totdat je er zeker van bent dat de Pi een vast ip-adres op het netwerk heeft, wat essentieel is voor dit project.

    Stap 1: Aanpassen van de netwerkinterface

    Om de Raspberry Pi vanaf een andere pc te kunnen bereiken, moeten we een vast ip-adres instellen. Open hiervoor een terminal op de Pi-desktop en voer dit commando uit:

    sudo nano /etc/network/interfaces

    Pas het bestand aan zodat het er als volgt uitziet (kies een vrij ip-adres voor de regel die eindigt op 12):

    auto lo iface lo inet loopback
    auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.12 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 1.1.1.1 1.0.0.1

    Druk op Ctrl+O om het bestand op te slaan en druk op Ctrl+X om nano af te sluiten.

    Stap 2: Opnieuw opstarten van de Raspberry Pi

    Zet de Raspberry Pi uit en verwijder alle randapparatuur, behalve de netwerkkabel. Sluit vervolgens de adapter weer aan om de Pi opnieuw op te starten.

    Stap 3: Verbinding maken via ssh

    Als de Pi eenmaal is opgestart, zou je hem vanaf een andere pc moeten kunnen bereiken via ssh. In ons geval is het commando om verbinding te maken:

    ssh [email protected]

    Het wachtwoord is standaard “raspberry”. Vergeet niet  het wachtwoord van de Raspberry Pi zo snel mogelijk te wijzigen. Dit doe je om de veiligheid van het systeem te waarborgen.


    Ontvang meer van dit soort gratis Raspberry Pi Projects, schrijf je in voor de nieuwsbrief:

    Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

    Stap 4: Installatie van OpenVPN

    Installeer de OpenVPN-pakketten met het volgende commando:

    sudo apt install openvpn

    Navigeer vervolgens naar de map waar je je OpenVPN-configuratiebestanden kunt opslaan door cd /etc/openvpn in te voeren. Je moet die configuratiebestanden downloaden van je VPN-provider, in ons geval kunnen we dit doen met wget – vergeet niet om sudo te gebruiken omdat de etc-directory niet beschrijfbaar is voor gewone gebruikers. In ons geval is het commando (in dit voorbeeld gebruiken we zoals gezegd NordVPN):

    sudo wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip

    Pak vervolgens het bestand uit met het volgende commando:

    sudo unzip ovpn.zip

    Een snel ls-commando laat zien of het gelukt is. Er moet nu een lijst bestanden zijn die eindigen op .ovpn. Let erop dat sommige VPN-aanbieders deze bestanden kunnen hebben verpakt met subdirectory’s, als voorbeeld voor verbindingen die versleuteld zijn met een optionele 128- of 256-bit beveiliging. Verplaats de bestanden naar de directory etc/openvpn met het mv-commando.

    Wil je bovendien dat je VPN automatisch start bij het opstarten van de Raspberry Pi? Voer dan dit commando uit:

    sudo systemctl enable openvpn@ example.service

    Hierbij is “example” de naam van het gewenste .conf-bestand voor de verbinding (zonder de bestandsextensie). Gebruik dit commando ongewijzigd.

    Stap 5: Verbinding maken met OpenVPN

    Als het goed is kun je nu verbinding maken met elk van deze servers via het volgende commando:

    sudo openvpn example.ovpn -daemon

    Hierbij is example de bestandsnaam van het configuratiebestand. Als je dit nu probeert, zul je merken dat het script vraagt om je gebruikersnaam en wachtwoord om de verbinding te authenticeren. Test of de verbinding werkt door ifconfig te typen. Je zou een verbinding moeten zien die gemarkeerd is met TUN, wat je VPN-tunnel is.

    Automatisch verbinden met VPN via scripts op Raspberry Pi

    Om je Raspberry Pi te verbinden met een VPN via een terminal, moet je je gebruikersnaam en wachtwoord typen wanneer je verbinding wilt maken. Dit kan echter eenvoudiger. Maak een script aan om je autorisatiegegevens automatisch in te voeren.

    Script voor gebruikersnaam en wachtwoord

    Bekijk de VPN-bestanden die je hebt gedownload en open er één. Er verschijnt een lijst met commando’s, waaronder de regel “authuser-pass”. Wijzig deze regel om je gebruikersnaam en wachtwoord automatisch in te voeren. Maak een tekstbestand aan met je gebruikersnaam en wachtwoord en sla dit op.

    VPN-configuratiebestand

    Ga terug naar je ssh-verbinding met de Raspberry Pi en ga naar /etc/openvpn. Typ het volgende in om de nano teksteditor te openen:

    “sudo nano vpnlogin”

    Voer hierin je gebruikersnaam en wachtwoord in en sla het bestand op. Ga naar de VPN-verbinding die je het meest gebruikt en wijzig het config-bestand met “sudo nano example.ovpn”. Verander de regel “auth-user-pass” in “auth-user-pass vpnlogin”. Start de verbinding met het “openvpn”-commando en deze zou nu automatisch verbinding moeten maken zonder om het wachtwoord te vragen.

    Automatisering van autorisatiegegevens

    Je kunt de regel in het VPN-configuratiebestand voor deauth-user-pass aanpassen, zodat het zojuist aangemaakte bestand automatisch wordt aangeroepen. Verander die regel handmatig voor de drie of vier servers waarvan je denkt dat je ze het meest zult gebruiken. Maar als je verschillende servers wilt gebruiken, moet je tweeduizend verschillende config-bestanden van NordVPN bewerken.

    Open een ssh-verbinding met je Pi en ga naar etc/openvpn. Voer het volgende commando uit om SED te gebruiken voor een batch-bewerking van alle .ovpn-bestanden:

    find . -type f -name *.ovpn -exec sed -i.bak ‘s|auth-user-pass|auth-user-pass vpnlogin|g’ {} +

    Hiermee wordt meteen een back-up van de bestaande bestanden gemaakt.

    Snel script voor VPN-verbindingen

    Als je niet elke keer een lang commando wilt typen om verbinding te maken met een VPN, kun je een snel script maken. Het begint met een instructie om iedere geopende VPN-verbinding te sluiten en start dan de OpenVPN daemon waarbij het de credentials van het tekstbestand dat je net gemaakt hebt invult. Ga naar je home-directory en typ nano vpn1.sh:

    #!/bin/bash sudo killall openvpn sudo -b openvpn /etc/openvpn/example.ovpn

    Herhaal deze stap voor de drie of vier VPN-verbindingen waarvan je denkt dat je ze het meest zult gebruiken, en verhoog telkens het nummer in de bestandsnaam. Nu kun je je verbinding starten of switchen door te ssh’en naar de Raspberry Pi vanaf elke computer in het netwerk, en het volgende in te voeren.

    sudo ./vpn1.sh

    Verbinding maken met apparaat

    Om het verkeer via je Raspberry Pi om te leiden, moet je de internetinstellingen op je apparaat wijzigen. Laat de standaardinstellingen staan, maar pas de gateway- en DNS-servers aan. Stel de gateway in op het IP-adres van je Raspberry Pi en stel de DNS-servers in op 1.1.1.1 en 8.1.1.8. Nu kun je je console of een ander apparaat in een ander land laten verschijnen zonder je lounge te verlaten.

    Conclusie Raspberry Pi als VPN-server

    In deze Raspberry Pi Projects workshop hebben we je laten zien hoe je in slechts enkele eenvoudige stappen een Raspberry Pi kunt configureren tot een VPN-server, waardoor je elk apparaat in huis veilig kunt aansluiten op internet via een VPN-verbinding.

    Met behulp van OpenVPN-configuratiebestanden en encryptiecertificaten is het mogelijk om de Pi te configureren tot een headless VPN-gateway.

    Door het volgen van de stappen van het aanpassen van de netwerkinterface, het opnieuw opstarten van de Raspberry Pi, het maken van een verbinding via ssh en het installeren van OpenVPN, kun je een Raspberry Pi inzetten als VPN-server voor al je apparaten, inclusief gameconsoles en mobiele apparaten.


    Wil je meer van dit soort leuke Raspberry Pi Projects workshops? Schrijf je in voor de gratis nieuwsbrief:

    Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

     

    Deel dit artikel

    Elwin Hodžić
    Elwin Hodžić(Web)redacteur bij c't. Ondanks de studie geschiedenis, altijd al een passie gehad voor alles wat met IT te maken heeft. Sleutelt in zijn vrije tijd graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen om een pc zo optimaal mogelijk te laten werken.

    Lees ook

    Raspberry Pi als NAS-systeem gebruiken? Dit moet je weten!

    Wist je dat je een Raspberry Pi als Network Attached Storage (NAS) kunt gebruiken? Zo voldoet de Raspberry Pi 4 aan de belangrijkste eisen om dit te k...

    Readly aanbieding: twee maanden gratis tijdschriften en kranten lezen

    Sta jij voor het tijdschriftenschap eindeloos te twijfelen tussen wel tien verschillende magazines? Dan is Readly iets voor jou, want dan hoef je niet...

    0 Praat mee
    avatar
      Abonneer  
    Laat het mij weten wanneer er