Waarom een VPN gebruiken om toegang te krijgen tot uw huis?
Er zijn tal van redenen waarom u op afstand toegang tot uw thuisnetwerk zou willen hebben, en de beste manier om dat te doen is met een VPN-server. Met sommige routers kun je een VPN-server rechtstreeks in de router instellen, maar in veel gevallen moet je er zelf een instellen.
Een Raspberry Pi is een geweldige manier om dit te bereiken. Ze hebben niet veel energie nodig om te werken en ze hebben genoeg kracht om een VPN-server te draaien. U kunt er een naast uw router instellen en deze in feite vergeten.
Wanneer u op afstand toegang heeft tot uw thuisnetwerk, kunt u overal bij uw bestanden. U kunt uw thuiscomputers op afstand bedienen. U kunt zelfs de VPN-verbinding van uw huis gebruiken vanaf de weg. Met een dergelijke opstelling kan uw telefoon, tablet of laptop zich overal net zo gedragen als thuis.
De Pi . instellen
Voordat u kunt beginnen met het instellen van de VPN, moet u uw Raspberry Pi instellen. Het is het beste om de Pi in te stellen met een hoes en een geheugenkaart van behoorlijk formaat, 16 GB zou meer dan genoeg moeten zijn. Sluit indien mogelijk uw Pi aan op uw router met een Ethernet-kabel. Het minimaliseert eventuele netwerkvertragingen.
Raspbian installeren
Het beste besturingssysteem om op je Pi te gebruiken is Raspbian. Het is de standaardkeuze van de Raspberry Pi-stichting en het is gebaseerd op Debian, een van de meest veilige en stabiele Linux-versies die beschikbaar zijn.
Ga naar het Rasbische downloadpagina , en pak de nieuwste versie. Je kunt hier de Lite-versie gebruiken, omdat je eigenlijk geen grafische desktop nodig hebt.
Terwijl dat aan het downloaden is, downloadt u de nieuwste versie van Etser voor uw besturingssysteem. Nadat de download is voltooid, extraheert u de Raspbian-afbeelding. Open vervolgens Etcher. Selecteer de Raspbian-afbeelding van waaruit u deze hebt uitgepakt. Selecteer uw SD-kaart (plaats deze eerst). Schrijf ten slotte de afbeelding op de kaart.
waarom dubbelklikt mijn muis?
Laat de SD-kaart in uw computer als het klaar is. Open een bestandsbeheerder en blader naar de kaart. Je zou een aantal verschillende partities moeten zien. Zoek naar de opstartpartitie. Het is degene met een kernel.img-bestand erin. Maak een leeg tekstbestand op de opstartpartitie en noem het ssh zonder bestandsextensie.
Je kunt eindelijk je Pi aansluiten. Zorg ervoor dat u deze als laatste aansluit. Je hebt geen scherm, toetsenbord of muis nodig. Je gaat op afstand toegang krijgen tot de Raspberry Pi via je netwerk.
Geef de Pi een paar minuten om zichzelf in te stellen. Open vervolgens een webbrowser en navigeer naar het beheerscherm van uw router. Zoek de Raspberry Pi en noteer het IP-adres.
Of je nu Windows, Linux of Mac gebruikt, open OpenSSH. Maak verbinding met de Raspberry Pi met SSH.
$ ssh [email protected]
Gebruik uiteraard het daadwerkelijke IP-adres van de Pi. De gebruikersnaam isaltijd pi, en het wachtwoord isframboos.
OpenVPN instellen
OpenVPN is niet bepaald eenvoudig in te stellen als server. Het goede nieuws is dat je het maar één keer hoeft te doen. Zorg er dus voor dat Raspbian volledig up-to-date is voordat je erin gaat graven.
$ sudo apt update $ sudo apt upgrade
Nadat de update is voltooid, kunt u OpenVPN en het benodigde certificaathulpprogramma installeren.
$ sudo apt install openvpn easy-rsa
Certificaatautoriteit
Om uw apparaten te authenticeren wanneer ze proberen verbinding te maken met de server, moet u een certificeringsinstantie instellen om sigining-sleutels te maken. Deze sleutels zorgen ervoor dat alleen uw apparaten verbinding kunnen maken met uw thuisnetwerk.
Maak eerst een map voor uw certificaten. Ga naar die map.
$ sudo make-cadir /etc/openvpn/certs $ cd /etc/openvpn/certs
Kijk rond voor OpenSSL-configuratiebestanden. Koppel dan de laatste metopenssl.cnf.
$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf
In diezelfde certs-map bevindt zich een bestand met de naam vars. Open dat bestand met je teksteditor. Nano is de standaard, maar voel je vrij om Vim te installeren, als je er meer vertrouwd mee bent.
Vind deKEY_SIZEvariabele eerst. Het is ingesteld op2048standaard. Verander het in4096.
export KEY_SIZE=4096
Het hoofdblok waarmee u te maken hebt, bevat informatie over uw certificeringsinstantie. Het helpt als deze informatie juist is, maar alles wat je je kunt herinneren is prima.
export KEY_COUNTRY='US' export KEY_PROVINCE='CA' export KEY_CITY='SanFrancisco' export KEY_ORG='Fort-Funston' export KEY_EMAIL=' [email protected] ' export KEY_OU='MyOrganizationalUnit' export KEY_NAME='HomeVPN'
Als je alles hebt, sla je op en sluit je af.
Dat Easy-RSA-pakket dat je eerder hebt geïnstalleerd, bevat veel scripts die helpen bij het instellen van alles wat je nodig hebt. Je hoeft ze alleen maar uit te voeren. Begin met het toevoegen van het vars-bestand als bron. Dat laadt alle variabelen die u zojuist hebt ingesteld.
$ sudo source ./vars
Maak vervolgens de sleutels schoon. Je hebt er geen, dus maak je geen zorgen over het bericht dat je sleutels worden verwijderd.
$ sudo ./clean-install
Bouw ten slotte uw certificeringsinstantie op. Je hebt de standaardwaarden al ingesteld, dus je kunt gewoon de standaardwaarden accepteren die het presenteert. Vergeet niet om een sterk wachtwoord in te stellen en de laatste twee vragen met ja te beantwoorden, na het wachtwoord.
$ sudo ./build-ca
Maak enkele sleutels
Je hebt al die moeite gedaan om een certificeringsinstantie op te zetten zodat je sleutels kunt ondertekenen. Nu is het tijd om er een paar te maken. Begin met het bouwen van de sleutel voor uw server.
$ sudo ./build-key-server server
Bouw vervolgens de Diffie-Hellman PEM. Het is wat OpenVPN gebruikt om uw clientverbindingen met de server te beveiligen.
$ sudo openssl dhparam 4096 > /etc/openvpn/dh4096.pem
De laatste sleutel die u vanaf nu nodig heeft, wordt een HMAC-sleutel genoemd. OpenVPN gebruikt deze sleutel om elk individueel informatiepakket dat wordt uitgewisseld tussen de client en de server te ondertekenen. Het helpt bepaalde soorten aanvallen op de verbinding te voorkomen.
$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key
Serverconfiguratie
Jij hebt de sleutels. Het volgende onderdeel bij het opzetten van OpenVPN is de serverconfiguratie zelf. Gelukkig hoef je hier niet zoveel te doen. Debian biedt een basisconfiguratie die u kunt gebruiken om aan de slag te gaan. Begin dus met het verkrijgen van dat configuratiebestand.
$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Gebruik je teksteditor opnieuw om te openen/etc/openvpn/server.conf. De eerste dingen die je moet vinden zijn dedat,certificaat, ensleutelbestanden. Je moet ze zo instellen dat ze overeenkomen met de werkelijke locaties van de bestanden die je hebt gemaakt, die allemaal in/etc/openvpn/certs/keys.
ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # This file should be kept secret
Vind ded.w.zinstelling en wijzig deze zodat deze overeenkomt met de Diffie-Hellman.pemdie je hebt gemaakt.
dh dh4096.pem
Stel ook het pad voor uw HMAC-sleutel in.
tls-auth /etc/openvpn/certs/keys/ta.key 0
Vind decijferen zorg ervoor dat het overeenkomt met het onderstaande voorbeeld.
cipher AES-256-CBC
De volgende paar opties zijn er, maar ze zijn becommentarieerd met een;. Verwijder de puntkomma's voor elke optie om ze in te schakelen.
push 'redirect-gateway def1 bypass-dhcp' push 'dhcp-option DNS 208.67.222.222' push 'dhcp-option DNS 208.67.220.220'
Zoek degebruikerengroepopties. Uncommentaar ze, en verander degebruikerom VPN te openen.
user openvpn group nogroup
Ten slotte bevinden deze laatste twee regels zich niet in de standaardconfiguratie. U moet ze aan het einde van het bestand toevoegen.
Stel de verificatiesamenvatting in om sterkere versleuteling op te geven voor gebruikersverificatie.
# Authentication Digest auth SHA512
Beperk vervolgens de cipers die OpenVPN kan gebruiken tot alleen sterkere. Dit helpt mogelijke aanvallen op zwakke cijfers te beperken.
# Limit Ciphers tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Dat is alles voor configuratie. Sla het bestand op en sluit af.
Start de server
Voordat u de server kunt opstarten, moet u dat doenopenvpngebruiker die u hebt opgegeven.
$ sudo adduser --system --shell /usr/sbin/nologin --no-create-home openvpn
Het is een speciale gebruiker alleen voor het uitvoeren van OpenVPN, en het zal niets anders doen.
Start nu de server op.
$ sudo systemctl start openvpn $ sudo systemctl start [email protected]
Controleer of ze allebei werken
$ sudo systemctl status openvpn*.service
Als alles er goed uitziet, schakel ze dan in bij het opstarten.
$ sudo systemctl enable openvpn $ sudo systemctl enable [email protected]
Clientconfiguratie
Uw server is nu ingesteld en actief. Vervolgens moet u uw clientconfiguratie instellen. Dit is de configuratie die u gebruikt om uw apparaten met uw server te verbinden. Ga terug naar dezekermap en bereid u voor om de clientsleutel(s) te bouwen. U kunt ervoor kiezen om afzonderlijke sleutels te bouwen voor elke klant of één sleutel voor alle klanten. Voor thuisgebruik zou één sleutel in orde moeten zijn.
$ cd /etc/openvpn/certs $ sudo source ./vars $ sudo ./build-key client
Het proces is bijna identiek aan dat van de server, dus volg dezelfde procedure.
Clientconfiguratie
De configuratie voor clients lijkt erg op die voor de server. Nogmaals, je hebt een vooraf gemaakte sjabloon om je configuratie op te baseren. U hoeft deze alleen aan te passen aan de server.
Verander in decliëntmap. Pak vervolgens de voorbeeldconfiguratie uit.
$ cd /etc/openvpn/client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn
Open declient.ovpnbestand met uw teksteditor. Zoek dan deafstandsbedieningkeuze. Ervan uitgaande dat je nog geen VPN gebruikt, Google zoeken Wat is mijn IP. Neem het adres dat wordt weergegeven en stel deafstandsbedieningIP-adres ernaartoe. Laat het poortnummer achter.
remote 107.150.28.83 1194 #That IP ironically is a VPN
Wijzig de certificaten om de certificaten weer te geven die u hebt gemaakt, net zoals u deed met de server.
ca ca.crt cert client.crt key client.key
Zoek de gebruikersopties en verwijder de opmerkingen. Het is prima om de clients te laten draaien als:niemand.
user nobody group nogroup
Uncomment detls-authoptie voor HMAC.
tls-auth ta.key 1
Zoek vervolgens naar decijferoptie en zorg ervoor dat deze overeenkomt met de server.
cipher AES-256-CBC
Voeg vervolgens de authenticatie-samenvatting en coderingsbeperkingen toe onderaan het bestand.
# Authentication Digest auth SHA512 # Cipher Restrictions tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA:TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA
Als alles er goed uitziet, slaat u het bestand op en sluit u af. Gebruikteerom de configuratie en de certificaten in te pakken, zodat u ze naar de klant kunt sturen.
$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C /etc/openvpn/certs/keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn
Draag dat pakket over naar de klant zoals u dat wilt. SFTP, FTP en een USB-station zijn allemaal geweldige opties.
Port forwarding
Om dit te laten werken, moet u uw router configureren om inkomend VPN-verkeer naar de Pi door te sturen. Als u al een VPN gebruikt, moet u ervoor zorgen dat u niet via dezelfde poort verbinding maakt. Als dit het geval is, wijzigt u de poort op uw client- en serverconfiguraties.
Maak verbinding met de webinterface van uw router door het IP-adres in uw browser in te voeren.
Elke router is anders. Toch zouden ze allemaal een vorm van deze functionaliteit moeten hebben. Zoek het op je router.
De setup is in principe op elke router hetzelfde. Voer de begin- en eindpoorten in. Ze moeten hetzelfde zijn als elkaar en degene die u in uw configuraties instelt. Stel vervolgens voor het IP-adres dat in op het IP-adres van uw Raspberry Pi. Sla uw wijzigingen op.
Maak verbinding met de klant
Elke klant is anders, dus er is geen universele oplossing. Als je Windows gebruikt, heb je de Windows OpenVPN-client .
Op Android kun je je tarball openen en de sleutels naar je telefoon overbrengen. Installeer vervolgens de OpenVPN-app. Open de app en sluit de informatie uit uw configuratiebestand in. Selecteer vervolgens uw sleutels.
Op Linux moet je OpenVPN op dezelfde manier installeren als voor de server.
$ sudo apt install openvpn
Verander dan in/etc/openvpn, en pak de tarball uit die je hebt gestuurd.
$ cd /etc/openvpn $ sudo tar xJf /path/to/client.tar.xz
Hernoem het klantenbestand.
$ sudo mv client.ovpn client.conf
Start de client nog niet. Het zal mislukken. U moet eerst port forwarding op uw router inschakelen.
Afsluitende gedachten
Je zou nu een werkende setup moeten hebben. Uw client maakt rechtstreeks via uw router verbinding met de Pi. Van daaruit kunt u delen en verbinding maken via uw virtuele netwerk, zolang alle apparaten zijn verbonden met de VPN. Er is geen limiet, dus u kunt altijd al uw computers verbinden met de Pi VPN.