Sikkepitje.nl

Sikkepitje.nl

this private cloud

Raspberry Pi als VPN server

Eerder deed ik een poging om Squid te installeren, zonder success.

Ik volg de uitstekende instructie van Koen Vervloesem vanaf punt 12 in ComputerTotaal artikel Raspberry Pi als VPN router en server. Deze instructie dateert uit 2014. Inmiddels zijn er dingen veranderd.

Voorwaarden

  • update en upgrade het systeem
  • stel een statisch ip-adres in
  • wijzig het standaard wachtwoord van de gebruiker 'pi'
  • installeer SSH
  • stel in je router port forwarding in; forward poorten tcp en udp 1194 naar je Raspberry Pi.

Configureer port forwarding op de router zodat alle verkeer naar externe poort 1194 voor zowel tcp als udp wordt omgeleid naar intern ip-adres van Miep.

Setup easy RSA

Script make-cadir ontbreekt. Het is onderdeel van "easy-rsa". Niet bekend waar daar vandaan moet komen want er is geen package voor.

Wat er niet wordt verteld, maar wel nodig is om de Easy-RSA scripts te kopieren naar de openVPN-folder.

 cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

Stap 13 variabelen

 sudo -s
 cd /etc/openvpn/easy-rsa

Bewerk vars naar believen. Ik heb hier staan onder andere:

Stap 14 CA

 source ./vars
 ./clean-all
 ./build-ca

Stap 15 Servercertificaat

 ./build-key-server Miep

'Challenge password' laat je leeg.
'An optional company name' laat je leeg
Sign the certificate? Y
Commit? Y

16 Clientcertificaten

Maak een certificaat voor elk clientapparaat

 ./build-key Pauliphone
 ./build-key Zilverendoos
 ./build-key W703301

Tenslotte eenmaal Diffie-Hellman key exchange genereren. Dit duurt lang! met 1024 sleutellengte 5 minuten of met 2048 bits sleutel wel 1 uur op een Raspberry Pi.

 ./build-dh    

Het is handig om dit in screen uit te voeren, zodat je de connectie met de terminal kunt sluiten zonder het process te stoppen.

17 Serverconfiguratie

Kopieer de aangemaakte sleutels (*.crt) naar openVPN

 cp keys/ca.crt keys/{W703301,Zilverendoos,Pauliphone}.crt keys/dh1024.pem /etc/openvpn

Kopieer voorbeeldconfiguratie

 zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf

Bewerk serverconfiguratie

 cd /etc/openvpn
 nano server.conf

18 Serverconfiguratie 2

Bewerk server.conf zodat client de adressen van de OpenDNS server krijgen.

Transporteer de client-certificaten naar andere respectievelijke clients. De instructie noemt Samba of kopieren van de Raspberry Pi SD-kaart door Ext2fs te installeren op Windows. Ik gebruik Filezilla via SFTP. Als tussenstap moet ik dan eerst de certificaten en de keys voor elke client kopieren naar een plek waar ze in Filezilla zichtbaar zijn.

 mkdir /home/paul/openvpn-certificaten/
 sudo cp /etc/openvpn/easy-rsa/keys/{ca.crt,{Pauliphone,Zilverendoos,W703301}.{crt,key}} /home/paul/openvpn-certificaten/
 chown -R paul:paul /home/paul/openvpn-certificaten/

19 Start OpenVPN

Edit /etc/default/openvpn en bewerk zo

AUTOSTART="server"

Laat OpenVPN server automatisch starten met

 sudo update-rc.d openvpn enable

Clientconfiguratie

Instructie op Veilig surfen via een eigen VPN-server behandelt configuratie van de clients.

Op pagina 3 staat hoe je een ovpn-bestand aanmaakt, waarmee je een client configureert.

Kopieer eerst de sample config van /usr/share/doc/openvpn/examples/sample-config-files/client.conf naar /etc/openvpn/client.ovpn

 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/paul/keys/client.ovpn
  chown paul:paul /home/paul/keys/client.ovpn

Kopieer het sample client.conf naar een kopie voor elke client

 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/paul/openvpn-certificaten/Pauliphone.ovpn
 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/paul/openvpn-certificaten/W703301.ovpn
 cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /home/paul/openvpn-certificaten/Zilverendoos.ovpn

en bewerk elk als volgt:

ca ca.crt
cert client.crt
key client.key

waarbij 'client' wordt vervangen door de naam van elke client waarvoor een certificaat en een key is gemaakt.

Geef tenslotte gebruik paul permissies voor deze bestanden

  sudo chown -R paul:paul /home/paul/openvpn-certificaten/

Gebruik deze voor het opzetten van een VPN-verbinding op elke client. Plaats elk op de client in een folder samen met ca.crt, {client}.crt en {client}.key.

Hoe configureer je OpenVPN op iPad/iPhone?

De grote vraag is hoe je de aangemaakte ovpn-bestanden naar IOS overbrengt / opent.

https://www.vpnbook.com/howto/setup-openvpn-on-ipad De oplossing die op internet wordt gegeven, is deze te mailen en in mail op de iPad of iPhone te openen met de OpenVPN-app.

Helaas, wanneer ik dat doe, worden ze niet herkend als speciaal , of als behorend bij OpenVPN. Althans niet in Outlook. Wel in de Mail-app.

De enige werkende methode is om het iOS-apparaat aan te sluiten op computer via iTunes applicatie en de OpenVPN-profiel direct in de app te slepen.

Links

Ook nuttig:

Instructies uit 2015