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: