Anonim

Waarom een ​​VPN gebruiken om toegang tot uw huis te krijgen

Snelle links

  • Waarom een ​​VPN gebruiken om toegang tot uw huis te krijgen
  • Stel de Pi in
    • Raspbian installeren
  • OpenVPN instellen
    • Certificeringsinstantie
    • Maak enkele toetsen
    • Server configuratie
    • Start de server
  • Client instellen
    • Client configuratie
  • Port forwarding
  • Maak verbinding met de client
  • Gedachten sluiten

Er zijn tal van redenen waarom u op afstand toegang wilt krijgen tot uw thuisnetwerk, en de beste manier om dat te doen is met een VPN-server. Met sommige routers kunt u een VPN-server rechtstreeks in de router instellen, maar in veel gevallen moet u er zelf een instellen.

Een Raspberry Pi is een geweldige manier om dit te bereiken. Ze hebben niet veel energie nodig om te draaien en ze hebben voldoende stroom om een ​​VPN-server te laten werken. U kunt er een naast uw router instellen en deze in feite vergeten.

Wanneer u op afstand toegang hebt tot uw thuisnetwerk, kunt u uw bestanden overal vandaan openen. U kunt uw thuiscomputers op afstand uitvoeren. U kunt de VPN-verbinding van uw huis zelfs vanaf de weg gebruiken. Met zo'n opstelling kunt u uw telefoon, tablet of laptop doen alsof hij overal thuis is.

Stel de Pi in

Voordat je de VPN kunt instellen, moet je je Raspberry Pi instellen. Het is het beste om de Pi in te stellen met een hoes en een redelijk grote geheugenkaart, 16 GB zou meer dan genoeg moeten zijn. Verbind uw Pi indien mogelijk met uw router via een Ethernet-kabel. Het zal eventuele netwerkvertragingen minimaliseren.

Raspbian installeren

Het beste besturingssysteem dat je op je Pi kunt gebruiken, is Raspbian. Het is de standaardkeuze van de Raspberry Pi-stichting en het is gebaseerd op Debian, een van de veiligste en stabielste beschikbare Linux-versies.

Ga naar de Rasbian-downloadpagina en pak de nieuwste versie. Je kunt de "Lite" -versie hier gebruiken, omdat je eigenlijk geen grafische desktop nodig hebt.

Download tijdens het downloaden de nieuwste versie van Etcher voor uw besturingssysteem. Nadat de download is voltooid, pak je de Raspbian-afbeelding uit. Open vervolgens Etcher. Selecteer de Raspbian-afbeelding waar u deze hebt uitgepakt. Selecteer uw SD-kaart (plaats deze eerst). Schrijf ten slotte de afbeelding op de kaart.

Laat de SD-kaart in uw computer wanneer deze klaar is. Open een bestandsbeheerder en blader naar de kaart. Je zou een paar verschillende partities moeten zien. Zoek naar de "boot" -partitie. Het is degene met een "kernel.img" -bestand erin. Maak een leeg tekstbestand op de "boot" -partitie 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 de tijd 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 u nu op Windows, Linux of Mac werkt, open OpenSSH. Maak verbinding met de Raspberry Pi met SSH.

$ ssh

Gebruik uiteraard het werkelijke IP-adres van de Pi. De gebruikersnaam is altijd pi en het wachtwoord is framboos.

OpenVPN instellen

OpenVPN is niet bepaald eenvoudig in te stellen als een server. Het goede nieuws is dat u het maar één keer hoeft te doen. Zorg er dus voor dat je Raspbian volledig up-to-date bent voordat je gaat graven.

$ sudo apt update $ sudo apt upgrade

Nadat de update is voltooid, kunt u OpenVPN en het certificaathulpprogramma installeren dat u nodig hebt.

$ sudo apt install openvpn easy-rsa

Certificeringsinstantie

Om uw apparaten te authenticeren wanneer ze proberen verbinding te maken met de server, moet u een certificaatautoriteit instellen om originele 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 vervolgens de nieuwste versie met openssl.cnf.

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

In dezelfde map 'certs' bevindt zich een bestand met de naam 'vars'. Open dat bestand met uw teksteditor. Nano is de standaardinstelling, maar voel je vrij om Vim te installeren, als je er meer vertrouwd mee bent.

Zoek eerst de KEY_SIZE variabele. Het is standaard ingesteld op 2048. Verander het naar 4096.

export KEY_SIZE = 4096

Het hoofdblok waarmee u te maken krijgt, bevat informatie over uw certificeringsinstantie. Het helpt als deze info juist is, maar alles wat je kunt onthouden is prima.

export KEY_COUNTRY = "US" export KEY_PROVINCE = "CA" export KEY_CITY = "SanFrancisco" export KEY_ORG = "Fort-Funston" export KEY_EMAIL = "" export KEY_OU = "MyOrganicialUnit" export KEY_NAME = "HomeVPN"

Als je alles hebt, sla je op en sluit je af.

Dat Easy-RSA-pakket dat u eerder hebt geïnstalleerd, bevat veel scripts die helpen bij het instellen van alles wat u nodig hebt. Je hoeft ze alleen maar te runnen. 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. U hebt de standaardwaarden al ingesteld, dus u kunt gewoon de standaardwaarden accepteren die worden gepresenteerd. Vergeet niet om een ​​sterk wachtwoord in te stellen en antwoord "ja" op de laatste twee vragen, na het wachtwoord.

$ sudo ./build-ca

Maak enkele toetsen

U hebt al die moeite gedaan om een ​​certificeringsinstantie in te stellen zodat u sleutels kunt ondertekenen. Nu is het tijd om wat 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 hebt, wordt een HMAC-sleutel genoemd. OpenVPN gebruikt deze sleutel om elk afzonderlijk informatiepakket 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

Server configuratie

Jij hebt de sleutels. Het volgende stuk bij het instellen 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 /etc/openvpn/server.conf te openen. De eerste dingen die u moet vinden, zijn de ca-, cert- en sleutelbestanden. Je moet ze instellen om overeen te komen met de werkelijke locaties van de bestanden die je hebt gemaakt, die allemaal in / etc / openvpn / certs / keys staan.

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # Dit bestand moet geheim worden gehouden

Zoek de DH-instelling en wijzig deze zodat deze overeenkomt met de Diffie-Hellman .pem die u hebt gemaakt.

dh dh4096.pem

Stel ook het pad voor uw HMAC-sleutel in.

tls-auth /etc/openvpn/certs/keys/ta.key 0

Zoek het cijfer en zorg ervoor dat het overeenkomt met het onderstaande voorbeeld.

cijfer 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-optie DNS 208.67.222.222" push "dhcp-optie DNS 208.67.220.220"

Zoek naar de gebruikers- en groepsopties. Uncomment hen, en verander de gebruiker in "openvpn."

gebruiker openvpn groep nogroup

Ten slotte bevinden deze laatste twee regels zich niet in de standaardconfiguratie. Je moet ze aan het einde van het bestand toevoegen.

Stel de verificatiesamenvatting in om sterkere codering voor gebruikersauthenticatie op te geven.

# Authenticatie Digest auth SHA512

Beperk vervolgens de cipers die OpenVPN kan gebruiken tot alleen sterkere. Dit helpt mogelijke aanvallen op zwakke cijfers te beperken.

# Limietcijfers TLS-DHE-RSA-MET-AES-256-GCM-SHA384: TLS-DHE-RSA-MET-AES-128-GCM-SHA256: TLS-DHE-RSA-MET-AES-256- CBC-SHA: TLS-DHE-RSA-MET-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-MET-AES-128-CBC-SHA: TLS-DHE-RSA-MET-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 die openvpn-gebruiker maken 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

Controleer of ze allebei actief zijn

$ sudo systemctl status openvpn * .service

Als alles er goed uitziet, schakelt u ze in bij het opstarten.

$ sudo systemctl enable openvpn $ sudo systemctl enable

Client instellen

Uw server is nu ingesteld en actief. Vervolgens moet u uw clientconfiguratie instellen. Dit is de configuratie die u zult gebruiken om uw apparaten met uw server te verbinden. Keer terug naar de map certs en bereid u voor op het bouwen van de clientsleutel (s). U kunt ervoor kiezen afzonderlijke sleutels voor elke client te maken of één sleutel voor alle clients. Voor thuisgebruik is één sleutel prima.

$ 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.

Client configuratie

De configuratie voor clients lijkt sterk op die voor de server. Nogmaals, u hebt een vooraf gemaakte sjabloon om uw configuratie op te baseren. U hoeft het alleen aan te passen aan de server.

Ga naar de clientmap. 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 het bestand client.ovpn met uw teksteditor. Zoek vervolgens de externe optie. Ervan uitgaande dat u nog geen VPN gebruikt, zoekt u met Google "Wat is mijn IP". Neem het adres dat wordt weergegeven en stel het externe IP-adres in. Laat het poortnummer achter.

extern 107.150.28.83 1194 #Dit IP is ironisch genoeg een VPN

Wijzig de certificaten om ze 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 geef ze geen commentaar. Het is prima om de klanten als niemand te runnen.

gebruiker niemand groep nogroup

Uncomment de optie tls-auth voor HMAC.

tls-auth ta.key 1

Zoek vervolgens naar de coderingsoptie en zorg ervoor dat deze overeenkomt met de server.

cijfer AES-256-CBC

Voeg vervolgens de verificatiesamenvatting en coderingsrestricties onder aan het bestand toe.

# Authenticatie Digest auth SHA512 # Coderingsbeperkingen tls-codering 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-MET-CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-MET-AES-128-CBC-SHA: TLS-DHE-RSA-MET-CAMELLIA -128-CBC-SHA

Als alles er goed uitziet, slaat u het bestand op en sluit u af. Gebruik tar om de configuratie en de certificaten in te pakken, zodat u ze naar de client kunt verzenden.

$ 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

Breng dat pakket over naar de client zoals u dat wilt. SFTP, FTP en een USB-drive zijn allemaal geweldige opties.

Port forwarding

Om dit allemaal te laten werken, moet je je router configureren om inkomend VPN-verkeer door te sturen naar de Pi. Als u al een VPN gebruikt, moet u ervoor zorgen dat u geen verbinding maakt via dezelfde poort. 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. Zelfs nog, ze moeten allemaal een vorm van deze functionaliteit hebben. Vind het op uw router.

De installatie is in principe hetzelfde voor elke router. Voer de begin- en eindpoort in. Ze moeten hetzelfde zijn als elkaar en degene die u in uw configuraties instelt. Stel dit vervolgens voor het IP-adres in op het IP-adres van uw Raspberry Pi. Sla uw wijzigingen op.

Maak verbinding met de client

Elke klant is anders, dus er is geen universele oplossing. Als u Windows gebruikt, hebt u de Windows OpenVPN-client nodig .

Op Android kunt u uw tarball openen en de sleutels overbrengen naar uw telefoon. Installeer vervolgens de OpenVPN-app. Open de app en sluit de informatie uit uw configuratiebestand aan. Selecteer vervolgens uw sleutels.

Op Linux moet u OpenVPN net zoals bij de server installeren.

$ sudo apt install openvpn

Wijzig vervolgens in / etc / openvpn en pak de tarball uit die je hebt verzonden.

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

Wijzig de naam van het clientbestand.

$ sudo mv client.ovpn client.conf

Start de client nog niet. Het zal falen. U moet eerst port forwarding op uw router inschakelen.

Gedachten sluiten

U zou nu een werkende setup moeten hebben. Je client maakt rechtstreeks verbinding via je router 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 je kunt altijd al je computers verbinden met de Pi VPN.

Verander een Raspberry Pi in een VPN om overal toegang te krijgen tot uw netwerk