PiVPN: Eenvoudig OpenVPN installeren op een Raspberry Pi

Een Raspberry Pi is prima geschikt om te gebruiken als OpenVPN server. Met behulp van OpenVPN en PiVPN kun je een versleutelde verbinding opzetten met je thuisnetwerk en vandaar uit veilig surfen over het internet met het IP adres van je vaste aansluiting.

Door gebruik te maken van een VPN verbinding voorkom je bijvoorbeeld dat hackers je wachtwoorden kunnen stelen via een publiek (Wi-Fi) netwerk. Je kunt de verbinding ook gebruiken om geografische beperkingen te omzeilen, via de verbinding kun je bijvoorbeeld vanuit het buitenland Uitzending gemist en dergelijke diensten bekijken.

Het installeren en de configuratie van de OpenVPN software kan lastig zijn en geeft vaak problemen omdat bij vele kennis van netwerken ontbreekt.

Wanneer je gebruik maakt van het installatie script PiVPN dan kun je de installatie en configuratie van de OpenVPN server met één commando uitvoeren op je Raspberry Pi. Hierbij wordt je met behulp van wizards door de installatie geholpen.

OpenVPN installeren met PiVPN

Je kunt de installatie via PiVPN in de meeste gevallen combineren met andere software op de Raspberry Pi, wil je vanaf start beginnen dan kun je het beste gebruik maken van het Raspbian Lite image als basis.

Hoewel er geen melding van wordt gemaakt op de project pagina van pivpn is het toch verstandig de installatie uit te voeren als ‘root’, dit doe je door het het onderstaande commando uit te voeren:

sudo -i

Hierna kunnen we starten met de geautomatiseerde PiVPN installatie van OpenVPN:

curl -L http://install.pivpn.io | bash

Het installatie script wordt gedownload en automatisch gestart, tijdens de installatie wordt je begeleid door een aantal keuze schermen.

Belangrijk voor een OpenVPN server is dat deze een vast IP adres gebruikt binnen je lokale netwerk, mocht je tijdens de installatie geen vast IP adres gebruiken dan krijg je mogelijk om deze via het installatie menu in te stellen.

Bij de vraag of je UDP of TCP wilt gebruiken, kies je voor de standaard keuze ‘UDP‘.
Ook het poort nummer dat wordt gebruikt voor de verbinding ‘1194‘ laat je ongewijzigd.

Na enige tijd zal de vraag verschijnen of je een 1024, 2048 of 4096 bits sleutel wilt gaan gebruiken, ga je voor veiligheid kies dan de 4096 maar houd er rekening mee dat genereren van de key lang zal duren. Voor normaal ‘huishoudelijk’ gebruik is een 1024 of 2048 bits sleutel veilig genoeg, maar de 4096 bits is veiliger! Maak je gebruik van Android devices kies dan voor een 2048 bits sleutel.

ovpn aanmaken openvpn raspberry

Nadat de sleutel is gegenereerd krijg je de vraag of je verbinding wilt maken op basis van een het extern IP adres of een hieraan gekoppelde DNS naam.

Dit was de laatste stap in de installatie van de OpenVPN server, na de herstart kunnen we gebruikers gaan toevoegen met het script pivpn add

OVPN client profiel aanmaken

Na de herstart kunnen we een ovpn client profiel aanmaken waarmee we verbinding kunnen maken met onze OpenVPN server. Je maakt een nieuw profiel aan met het commando:

sudo pivpn add

Vul de gewenste client naam in en druk op enter, hierna zal je gevraagd worden een PEM pas phrase op te geven dit is het wachtwoord wat op de client moet worden ingegeven om verbinding te maken met de server.

Hierna wordt er gevraagd of je de gegevens in het certificaat wilt wijzigen, deze vragen kun je overslaan door op enter te drukken, dit doe je ook als er wordt gevraagd om een challenge password. De vraag ‘Sign the certificate?’ beantwoord je met ‘y’.

In de map /home/pi/ovpns worden de .ovpns bestanden opgeslagen, deze kun je met behulp van een SFTP client eenvoudig downloaden. Het ovpn bestand bevat zowel de server instellingen als de benodigde certificaten.

Port forwarding op router

Om vanaf het internet een verbinding met de OpenVPN server op Raspberry Pi te kunnen te zetten moet UDP poort 1194 vanaf het publieke IP adres worden doorgestuurd naar het IP van de Raspberry Pi een zogenaamde ‘Port Forwarding’. De procedure hiervan verschilt per broadband router, maar is via Google vaak snel terug te vinden. In de Experia Box (ZTE) van KPN vind je deze instellingen terug onder Application > Port Forwarding.

OpenVPN clients

Zowel voor Mac, iOS, Windows en Android zijn er verschillende OpenVPN clients beschikbaar. Voor Mac en Windows is Viscosity een zeer handige client. Voor iOS en Android is een officiële OpenVPN client beschikbaar.

OpenVPN client android
OpenVPN client iOS
Viscosity OS X en Windows
Tunnelbrick OpenVPN client Mac OS X

Het is instellen van de verbinding is in de meeste clients heel simpel importeer het ovpn bestand of sleep deze in de client. Geef de ingestelde PEM phrase (wachtwoord) op en je kunt verbinding maken.

Meer informatie over het PiVPN project kun je hier terugvinden.

50 gedachten over “PiVPN: Eenvoudig OpenVPN installeren op een Raspberry Pi”

  1. Ik kan het maar niet voor elkaar krijgen. Het hele installatieproces wordt zonder problemen doorlopen, maar bij het verbinden krijg ik het volgende:

    aug 14 12:53:48: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    aug 14 12:53:48: TLS Error: TLS handshake failed
    aug 14 12:53:48: SIGUSR1[soft,tls-error] received, process restarting
    aug 14 12:53:48: Status gewijzigd naar Connecting

    Vervolgens begint alles opnieuw.
    Enig idee wat ik verkeerd doe?

    Beantwoorden
  2. Dank voor het artikel.

    Even een vraagje: na het installeren van OVPN wordt de Pi opnieuw opgestart. Wanneer ik dan in de terminal “sudo pivpn add” invoer, krijg ik “command not found”. Iemand een oplossing?

    Alvast bedankt!

    Beantwoorden
  3. Wat mij niet duidelijk is.
    Aangezien ik de hiervoor genoemde stappen nog niet uitgevoerd heb.
    Als aan al deze instellingen is voldaan.
    In welke modus moet de Pi staan, om als server te werken?
    Of alleen maar ingeschakeld? En dat is het?
    Of moet er ook iets van een OS gestart zijn?

    Beantwoorden
  4. Perfecte manual! Nadat ik een andere router moest gebruiken (provider maakt het lastig om een eigen router te kiezen), was ik mijn VPN server kwijt. Die zat nl. in DD-WRT.
    Nu met een RPI een super-altrnatief! Zelfs beter: van PPTP naar OpenVPN.
    Veel dank!

    Beantwoorden
  5. Mooie heldere instructie, bedankt hiervoor!

    Hoe zijn jullie ervaringen qua snelheid?
    ik had eerst een VPN-server opgezet via mijn NAS (Synology) daarbij daalde mij download van 18.5 naar 2.4 MB
    deze opzet met de Pi geeft een overall snelheid van 6-8 Mb, da’s al een stuk beter natuurlijk, maar liever zag ik nog minder overhead …

    Beantwoorden
  6. He, leuk script. Bedankt.

    Op de laptop werkt vpn perfect ( ubuntu desktop 16.04 ). Maar op mijn android werkt het niet en krijg ik een “PK-Bad input parameters to function”

    Met android gebruik ik “OpenVPN Connect”.

    Beantwoorden
  7. heel erg bedankt voor deze tutorial, nu kan ik mijn rpi3 naast addblocker ook als vpn server gebruiken. Kreeg openvpn niet aan de praat op mijn windows server.. Nu easy voor elkaar!

    Beantwoorden
  8. Ik heb de raspberry zo geconfigureerd als bovenstaande. Nu komt het volgende punt: hoe krijg ik de .ovpn profile files van de raspberry af? Ik heb het al geprobeerd met Filezilla welke ik connect met mijn Raspberry’s interne IP (192.168.2.10), ik log in met de standaard gegevens ‘pi’ en ‘raspberry’ als gebruikersnaam en wachtwoord.

    Uit de IFconfig komt het volgende:
    inet addr: 192.168.2.10, bcast 192.168.2.255 mask 255.255.255.0

    Kan iemand mij hier meer over vertellen?

    Beantwoorden
  9. Verbinding met Android werkt. OpenVPN via Windows 10 niet:

    Unable to obtain Session ID from xxxxxx: XML-RPC: ConnectionRefusedError: 10061: Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd..

    SSH , SFTP werkt gewoon.

    Beantwoorden
  10. Vraagje. Op zich werkt het als een trein. VPN verbinding naar huis doet het. Kan mijn pi, mijn pc’s en mijn nas benaderen. Ik kan alleen niet het internet op via VPN. Enig idee wat ik verkeerd doe?

    Beantwoorden
  11. Beste mensen,

    Ik heb met pivpn nu eindelijk een goede vpn server voor mijn android telefoon,
    Maar wil ook graag een ddwrt router als client aanmelden (alles wat dus achter de ddwrt gebeurt (via wifi of de switch) moet op mijn thuisnetwerk terechtkomen, kan iemand me helpen dit voor elkaar te krijgen?

    Alvast bedankt

    Beantwoorden
    • Hoi Erik,

      Nee, ik heb het niet voor elkaar gekregen, ik ben er bijna 4 weken nonstop mee bezig geweest en heb het opgegeven,

      Ik ben overigens nog steeds op zoek naar oplossing… Dus als iemand iets weet? Dan word hulp zeker gewaardeerd

      Beantwoorden
  12. Hallo, tijdens de installatie gaat er iets niet goed. Jammer, ik hoopte dat dit idd allemaal zo makkelijk zou gaan. Enig idee hoe ik dit kan oplossen of kan het script aangepast worden.
    curl -L http://install.pivpn.io | bash
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 178 100 178 0 0 502 0 –:–:– –:–:– –:–:– 504
    100 43750 100 43750 0 0 79408 0 –:–:– –:–:– –:–:– 2402k
    :::
    ::: You are root.
    ::: Verifying free disk space…
    :::
    ::: Checking apt-get for upgraded packages…. done!
    :::
    ::: Your system is up to date! Continuing with PiVPN installation…
    bash: line 284: nslookup: command not found
    ::: Your static IPv4 address: 192.168.0.10
    ::: Your static IPv4 gateway: 192.168.0.1
    :::
    ::: Setting IP to 192.168.0.10. You may need to restart after the install is complete.
    :::
    ::: Using User: pi
    E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
    :::
    ::: Stopping OpenVPN service…Failed to stop openvpn.service: Unit openvpn.service not loaded.
    done.
    sed: can’t read /etc/apt/apt.conf.d/50unattended-upgrades: No such file or directory
    :::
    ::: Checking for existing base files…
    ::: Checking /etc/.pivpn is a repo…::: Cloning https://github.com/pivpn/pivpn.git into /etc/.pivpn… done!
    :::
    ::: Installing scripts to /opt/pivpn… done.
    ::: Using protocol: udp
    tar: /etc/openvpn: Cannot open: No such file or directory
    tar: Error is not recoverable: exiting now
    chown: cannot access ‘/etc/openvpn/easy-rsa’: No such file or directory
    mkdir: cannot create directory ‘/etc/openvpn/easy-rsa/pki’: No such file or directory
    tee: /etc/openvpn/easy-rsa/vars: No such file or directory
    bash: line 822: cd: /etc/openvpn/easy-rsa: No such file or directory
    Failed to execute operation: No such file or directory
    Failed to start openvpn.service: Unit openvpn.service failed to load: No such file or directory.
    ::: Install Complete…

    Beantwoorden
  13. Heb dit nu geinstalleerd, maar krijg nu geen verbinding vanaf mijn telefoon (met OpenVPN Connect). Na verloop van tijd stopt de app met een time-out.

    Heb op de zelfde Pi ook Pi-hole draaien.

    Beantwoorden
  14. Een vpn server maken is een is heel simpel, in een half uur gebeurd
    nu probeer ik er domoticz bij te zetten dat lukt ook alleen kan ik domoticz niet openen ik probeer domoticz te openen met (ipnummer):8080 dan krijg ik de fout
    Deze site is niet bereikbaar wat doe ik of zie ik verkeerd

    mvgr

    Peter

    Beantwoorden
  15. Lukt me helaas nog steeds niet om een verbinding naar huis te maken, met dit script. Op mijn Android OpenVPNConnect geinstalleerd, maar die geeft na ‘connect’ ‘waiting for server’, en dit blijft staan tot aan time-out.

    Beantwoorden
  16. Hallo
    Volgens de omschrijving Vpn ginstalleerd. Open vpn connect op min android. Kan mijn thuisnetwerk bereiken, Maar dan vervolgens niet door op internet.
    Iemand enig idee hoe dit op te lossen?

    Beantwoorden
  17. Een zeer duidelijke omschrijving en ook ik heb de OpenVPN op mijn raspberry 3 geinstalleerd. Het forwarden in de Tele2 router is ook gelukt en alles draait. Ik (74 jaar) mag ook wel wat trot op mezelf zijn want ervaring hierin heb ik niet. Mijn downloadsnelheid ligt ongeveer 30% lager als normaal.
    Nogmaals bedankt!

    Beantwoorden
  18. Ik kan verbinden met de VPN, ik zie de verbinding binnenkomen op mijn router maar ik kan geen enkele apparaat benaderen. Ik denk dat dit komt omdat ik in een andere IP reeks zit. VPN: 10.8.x.x en intern zit ik op 192.168.x.x

    Beantwoorden
  19. Heb de tutorial gevolgd, maar vast op het punt waarbij ik via SFTP het profiel zou moeten kunnen downloaden.

    Moet SFTP apart geactiveerd worden? In de config kon ik niets vinden en krijg geen verbinding met de Pi via SFTP. Ip adres klopt verder wel.

    Beantwoorden
    • Als je PIVPN via de grafische interface hebt geïnstalleerd dan moet je inderdaad nog SSH activeren om een SFTP sessie op te kunnen zetten.

      Open de ‘Raspberry Pi Configuration’ applicatie vanuit het ‘Preferences’-menu, ga naar het tabblad ‘Interfaces’, selecteer ‘Enabled’ bij SSH, klik hierna op ‘OK’

      Vanuit Terminal kan je dit activeren met het commando:

      touch /boot/ssh

      Herstart in beide gevallen, SFTP moet nu werken.

      Beantwoorden
  20. Het is mij volkomen onduidelijk hoe ik na import van een op de pi aangemaakt profielbestand .opvn moet inloggen!
    Ik heb op windows 10 OPENVPN Connect client geïnstalleerd. Als ik Connect… in het tray menu dan vraagt die niet om een wachtwoord, maar wil de naam van de hostserver weten. Daarna vraagt die om een naam. Wat moet ik daar nou invullen? Ik heb alleen een naam opgegeven op de PI met een bijbehorend wachtwoord met sudo pivpn add en het bestand met die .ovpn naar Windows overgehaald.
    De kretologie is mij volkomen onduidelijk.

    Beantwoorden

Plaats een reactie