Beveilig alle wifi met een VPN - toegangspunt! - Ajarnpa
Beveilig alle wifi met een VPN - toegangspunt! - Ajarnpa
Anonim
Beveilig alle wifi met een VPN - toegangspunt!
Beveilig alle wifi met een VPN - toegangspunt!

Naarmate meer en meer van ons leven naar de grote wolk aan de hemel, het internet, wordt gestuurd, wordt het steeds moeilijker om veilig en privé te blijven tijdens uw persoonlijke internetavonturen. Of je nu toegang hebt tot gevoelige informatie die je privé wilt houden, limieten probeert te omzeilen die zijn ingesteld op waar of waarnaar je kunt browsen op je netwerk, of dat je gewoon een veiligere browse-ervaring wilt, het meest voorkomende advies dat ik hoor om veilig te blijven op internet is om een Virtual Private Network (of kortweg VPN) te gebruiken.

VPN's bieden twee geweldige services in één pakket, in die zin dat ze alle informatiepakketten die via hen worden verzonden versleutelen, en ze maken externe services die zich op hetzelfde netwerk bevinden als de VPN, lokaal voor de machine die u gebruikt om verbinding te maken. Als mijn VPN-server in Duitsland staat en ik maak verbinding met mijn VPN vanaf een laptop in Australië, dan heeft mijn laptop nu een IP-adres uit Duitsland!

Een belangrijk knelpunt bij de meer populaire VPN-services is echter dat veel soorten apparaten zich in situaties bevinden waarin ze ofwel niet kunnen worden geconfigureerd om een VPN-client te gebruiken, of dat er geen VPN-client beschikbaar is voor gebruik. Dus we willen dat onze apparaten verbonden zijn met onze VPN, maar voor deze andere machines die geen verbinding kunnen maken met een eenvoudige VPN-client, willen we dat ze verbonden zijn met onze VPN zonder zelfs maar te weten dat ze verbonden zijn! Voer een VPN-toegangspunt in!

Stap 1: Materialen

Materialen
Materialen

Materialen voor dit project zijn laag, maar alle items zijn vereist.

Behalve je thuisrouter (waarvan ik aanneem dat je die zou moeten hebben), heb je nodig

- 1 Raspberry Pi (bij voorkeur de Raspberry Pi 3 of beter, maar zolang hij een ethernetverbinding kan ondersteunen, zou het goed moeten zijn!)

- 1 Ethernet-kabel

- 1 wifi-dongle (tenzij je een Raspberry Pi 3 gebruikt, in dat geval kun je de ingebouwde wifi gebruiken

- 1 5V 2amp voeding voor de Raspberry Pi

Stap 2: Wifi-toegangspunt instellen - Deel 1 - Statisch IP-adres voor wifi

Wifi-toegangspunt instellen - Deel 1 - Statisch IP-adres voor wifi
Wifi-toegangspunt instellen - Deel 1 - Statisch IP-adres voor wifi

Voordat we de VPN-verbinding voor ons Raspberry Pi Access Point instellen, moeten we de Pi instellen als access point. Om dit te doen, gebruiken we de hostapd- en dnsmasq-pakketten voor de Raspberry Pi. Hostapd is een daemon voor gebruikersruimten voor het instellen van draadloze toegangspunten en authenticatieservers, terwijl dnsmasq een netwerkinfrastructuur (DNS, DHCP, netwerkopstart, enz.) biedt voor kleine netwerken en kleine netwerkrouters.

Dus voordat u aan de slag gaat, moet u ervoor zorgen dat u een schoon beeld hebt van Raspbian OS dat op de Pi draait, met de nieuwste updates toegepast. Je wilt er ook zeker van zijn dat je Raspberry Pi is verbonden met je router via een hardline Ethernet-verbinding, NIET via wifi! Uiteindelijk accepteren we verbindingsverzoeken van andere apparaten via onze wifi-module, dus je wilt niet via dezelfde module met je router verbonden zijn. Als je een Raspberry Pi Zero of een oudere toevoeging gebruikt (die geen ingebouwde wifi heeft), kun je die Raspberry Pi nog steeds gebruiken, je hebt alleen een USB wifi-dongle nodig.

Nadat u verbinding heeft gemaakt met uw Raspberry Pi (via SSH of met een monitor omhoog), controleert u of deze up-to-date is

sudo apt-get update

sudo apt-get upgrade

Vervolgens wil je hostapd en dnsmasq. downloaden en installeren

sudo apt-get install hostapd dnsmasq

Zodra de pakketten zijn geïnstalleerd, starten beide programma's automatisch op, maar we willen hun configuraties wijzigen voordat ze worden uitgevoerd. Dus we zullen contact opnemen met systeembeheer om de services die aan deze programma's zijn gekoppeld te stoppen

sudo systemctl stop hostapd

sudo systemctl stop dnsmasq

Nu de services zijn gestopt, willen we onszelf een statisch IP-adres toewijzen, met behulp van het dhcpcd-configuratiebestand dat te vinden is op /etc/dhcpcd.conf

Voordat we dat doen, willen we er echter zeker van zijn dat we verwijzen naar de juiste interface bij het toewijzen van het statische IP-adres. Als u een Raspberry Pi 3b of Raspberry Pi Zero W gebruikt, moet deze worden vermeld als wlan0. Als je een wifi-dongle gebruikt, vind ik het normaal gesproken iets gemakkelijker om de wifi-dongle op de router aan te sluiten, een nieuw IP-adres te pakken en vervolgens je verbinding te controleren om je interface te vinden. U kunt uw interface controleren door de volgende opdracht uit te voeren:

ifconfig

Als u de bovenste afbeelding bij deze stap aanvinkt, kunt u (minus de geredigeerde IP-adressen) de interfaces zien die aan mijn Raspberry Pi zijn toegewezen. In mijn geval gebruik ik wlan0, maar dit hangt af van je setup. Zoals ik eerder al zei, als je een wifi-dongle gebruikt, maak dan verbinding met je netwerk, voer de opdracht ifconfig uit, en welke interface dan ook verschijnt die een geldig IP-adres heeft en niet "eth0" of "lo" is, zal de interface zijn die je wilt gebruiken.

Nu ik weet welke interface voor mijn wifi-adapter is, kan ik er een statisch IP-adres aan toewijzen in het dhcpcd-configuratiebestand! Open de configuratie in je favoriete editor (ik gebruik nano).

sudo nano /etc/dhcpcd.conf

Onderaan de configuratie willen we de volgende regels toevoegen, maar "wlan0" vervangen door wat je interface ook is:

interface wlan0 statisch ip_address=192.168.220.nohook wpa_supplicant

Wat dit commando doet, is een statisch IP-adres van 192.168.220.1 tot stand brengen en vervolgens de wlan0-interface vertellen om geen verbinding te maken met het wpa_supplicant-stuurprogramma dat doorgaans wordt gebruikt voor deze interface om verbinding te maken met andere netwerken. We doen dit zodat we (uiteindelijk) ons eigen signaal kunnen uitzenden via de wlan0-interface, in plaats van via deze interface verbinding te maken met een netwerk.

Als u nano gebruikt om deze wijzigingen aan te brengen, slaat u de wijzigingen op door op ctrl+x en vervolgens op Y te drukken en vervolgens op enter te drukken om het bestand op te slaan en nano te verlaten. (Houd er rekening mee dat we in deze tutorial nogal wat nano binnenkomen en verlaten).

Ten slotte, om deze wijzigingen van kracht te laten worden, moet je ofwel je Pi opnieuw opstarten, of gewoon de dhcpcd-service herstarten om de configuratie opnieuw te laden en deze wijzigingen toe te passen

sudo systemctl herstart dhcpcd

Wacht even en voer de opdracht ifconfig opnieuw uit om te controleren of uw wijzigingen van kracht zijn geworden. Ik geef toe, soms heb ik dit geprobeerd en mijn router heeft nog steeds een geldige lease op het IP-adres dat ik gebruikte, dus het behoudt het oude adres. Als dit het geval is, controleer dan alles in je configuratie en start de dhcpcd-service opnieuw.

Onze wifi-adapter (moet) nu een statisch IP-adres hebben!

Vervolgens de hostapd- en dnsmasq-configuratie!

Stap 3: Wifi-toegangspunt instellen - Deel 2 - Hostapd-configuratie

Wifi-toegangspunt instellen - Deel 2 - Hostapd-configuratie
Wifi-toegangspunt instellen - Deel 2 - Hostapd-configuratie

Nu de dhcpcd.conf veranderingen achter de rug zijn, is het tijd om aan de slag te gaan met hostapd! Begin met het maken van een nieuw hostapd.conf-bestand in je favoriete teksteditor (nogmaals in nano voor mij!)

sudo nano /etc/hostapd/hostapd.conf

Wanneer u het configuratiebestand opent, kopieert u de volgende tekst en plakt u deze in het configuratiebestand.

interface=wlan0driver=nl80211

hw_mode=g kanaal=6 ieee80211n=1 wmm_enabled=0 macaddr_acl=0 negeer_broadcast_ssid=0

auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP

# Wifi-netwerknaam en wachtwoord JE MOET DIT WIJZIGEN ssid=Pi-WifiFoLife # Het netwerkwachtwoord wpa_passphrase=Y0uSh0uldCh@ng3M3

Als je dat eenmaal hebt geplakt, zoek je het laatste gedeelte onderaan met "ssid=" en "wpa_passphrase=". Dit is hoe het wifi-netwerk dat we opzetten zal worden genoemd en wat het wachtwoord is om verbinding te maken met het wifi-netwerk dat we aan het opzetten zijn. DUS ZORG ERVOOR DAT DIT IN IETS ANDERS VERANDERT! Je bent gewaarschuwd.

Als je een wifi-dongle gebruikt in plaats van ingebouwde wifi, moet je het interfacegedeelte bovenaan de configuratie aanpassen aan de interface voor je wifi-dongle. Mogelijk moet u ook het stuurprogramma wijzigen, afhankelijk van het model van de wifi-dongle die u gebruikt. Voor een (meestal uitgebreide) lijst met compatibele wifi-dongles, de bijbehorende stuurprogramma's en ondersteuningspagina's vond ik deze pagina erg handig! Kijk ook op de ondersteuningspagina van het product dat je gebruikt als je vastloopt. Onthoud dat als je eerder in de tutorial verbinding kon maken met je netwerk met je wifi-dongle, dit betekent dat er ergens een werkende driver voor de dongle op je pi moet zijn!!!

Nu we ons nieuwe configuratiebestand hebben, moeten we ervoor zorgen dat we de hostapd-processen vertellen om naar het nieuwe configuratiebestand te verwijzen! begin met het volgende:

sudo nano /etc/default/hostapd

Zoek de regel in het bestand dat we zojuist hebben geopend met de tekst en wijzig dit in DAEMON_CONF="/etc/hostapd/hostapd.conf" (zorg ervoor dat u het #-teken aan het begin verwijdert om commentaar op de veld!)

Er is nog een configuratiebestand voor hostapd dat we moeten bijwerken. Voer de volgende opdracht uit:

sudo nano /etc/init.d/hostapd

Deze wijziging is vrijwel identiek aan de vorige. Zoek de sectie DAEMON_CONF= en vervang deze door DAEMON_CONF=/etc/hostapd/hostapd.conf

Sla vervolgens op en verlaat dat bestand!

Hostapd is nu geconfigureerd!

Stap 4: DNSMasq-configuratie en IP-forwarding

DNSMasq-configuratie en IP-forwarding
DNSMasq-configuratie en IP-forwarding

Met hostapd nu geconfigureerd (hoewel nog niet actief), kunnen we nu doorgaan naar dnsmasq!

Voordat we beginnen met het bewerken van configuratiebestanden, kunnen we doorgaan en een van de originele configuratiebestanden hernoemen, omdat we niets gaan gebruiken dat in dit specifieke configuratiebestand staat.

Een snel mv-commando doen met een nieuwe bestandsnaam zou voldoende moeten zijn

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old

Maak dan een nieuw configuratiebestand aan!

sudo nano /etc/dnsmasq.conf

Zonder hier te diep op in te gaan, zou ik gewoon het volgende kopiëren en in het nieuwe bestand plakken:

interface=wlan0 # Gebruik interface wlan0 (of welke interface uw draadloze verbinding ook is) server=1.1.1.1 # Cloudfare dhcp-range=192.168.220.50, 192.168.220.150, 12h # IP-bereik en leasetijd

De bovenste regel van deze configuratie is voor de interface die we gebruiken om ons signaal uit te zenden, de middelste regel is voor onze Doman Name Service Provider, en de onderste regel is het bereik van IP-adressen die de Pi zal toewijzen aan gebruikers die verbinding maken met de Pi-wifi. Ga je gang en sla dit bestand op en verlaat vervolgens nano (of vim, of wat je ook gebruikt voor bestandswijzigingen).

Vervolgens moeten we het configuratiebestand systctl.conf instellen om al het verkeer dat op de draadloze interface komt, door te sturen via de ethernetverbinding

sudo nano /etc/sysctl.conf

In dit configuratiebestand hoeft u alleen maar de regel #net.ipv4.ip_forward=1 te verwijderen en dit configuratiebestand op te slaan/af te sluiten.

Nu we forwarding hebben ingesteld, willen we een NAT (Network Address Translation) instellen tussen de draadloze interface (wlan0) en de ethernet-interface (eth0). Dit helpt om al het verkeer van de wifi door te sturen naar de ethernet (en uiteindelijk VPN!) verbinding.

Voeg een nieuwe regel toe aan de iptable voor de NAT-forwarding

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

De regel is nu ingesteld, maar de iptable wordt elke keer dat de Raspberry Pi opnieuw wordt opgestart, leeggemaakt, dus we moeten deze regel opslaan zodat deze elke keer dat onze Pi opnieuw wordt opgestart kan worden (opnieuw) geladen.

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

De regel is nu opgeslagen, maar we moeten het lokale rc.local-configuratiebestand van de Pi bijwerken om er zeker van te zijn dat het elke keer wordt geladen!

Open het rc.local-bestand in uw favoriete editor

sudo nano /etc/rc.local

en zoek de sectie die zegt exit 0

Direct boven die regel (niet verwijderen!) Voeg de volgende opdracht toe die de NAT-regel die we hebben ingesteld opnieuw laadt. Het zou er nu zo uit moeten zien

iptables-restore < /etc/iptables.ipv4.nat exit0

Sla dit bestand op en verlaat het, en nu zouden al onze configuraties voor het toegangspunt moeten worden gedaan!

Het enige wat we hoeven te doen is de hostapd- en dnsmasq-services opstarten en onze Raspberry Pi opnieuw opstarten!

sudo-service hostapd start

sudo-service dnsmasq start

Test om ervoor te zorgen dat u uw nieuwe AP kunt zien. Als alles goed is ingesteld, zou je nu een wifi-toegangspunt op je Raspberry Pi moeten hebben! Start nu de foto opnieuw

sudo reboot

Vervolgens een OpenVPN-verbinding opzetten!

Stap 5: OpenVPN-configuratie en VPN-serviceproviderconfiguratie

OpenVPN-configuratie en VPN-serviceproviderconfiguratie
OpenVPN-configuratie en VPN-serviceproviderconfiguratie

Nu onze Pi wifi uitzendt, is het tijd om openvpn in te stellen! We beginnen met het installeren van openvpn via apt-get install

sudo apt-get install openvpn -y

Nadat openvpn klaar is met installeren, moeten we navigeren naar waar we onze authenticatiegegevens en het openvpn-configuratiebestand zullen opslaan.

cd /etc/openvpn

Het eerste wat we hier zullen doen (in /etc/openvpn) is een tekstbestand opzetten waarin we onze gebruikersnaam en wachtwoord opslaan voor de VPN-service die we gebruiken.

sudo nano auth.txt

Het enige dat we nodig hebben, is de gebruikersnaam en het wachtwoord in dit bestand op te slaan, niets anders.

gebruikersnaam

wachtwoord

Ik moet hieraan toevoegen dat u op dit moment een idee moet hebben van wie u als VPN-service voor uw verbindingen wilt gebruiken. Er is een brede discussie over welke service de beste of veiligste is, dus kijk rond en bekijk ook beoordelingen hierover! Voor deze tutorial gebruik ik Private Internet Access (PIA). Ze zijn redelijk goedkoop en worden overal erkend als zeer betrouwbaar! U kunt uw VPN ook instellen om in vrijwel elke grote regio van de wereld te eindigen! Canada? Rusland? Japan? Geen probleem!

Als je Private Internet Access gebruikt, hebben ze ook een handig deel van hun site, waar je het type openvpn-configuratiebestand kunt samenstellen dat je in deze setup kunt gebruiken! Er zijn andere soorten openvpn-configuraties die u met andere providers kunt gebruiken, maar ik besloot deze te kiezen.

Welke serviceprovider je ook kiest, je hebt een openvpn-verbindingsbestand nodig (moet eindigen op.ovpn voor het bestandstype) van die serviceprovider om verbinding te maken. Voor de eenvoud heb ik de mijne hernoemd tot "connectionprofile.ovpn" voordat ik hem op mijn Raspberry Pi laadde. Zodra je het.ovpn-bestand op de Pi hebt gedownload of naar de Pi hebt overgebracht, moet je ervoor zorgen dat het bestand zich in /etc/openvpn op je Pi bevindt.

Nadat we het geopende vpn-bestand naar de juiste map hebben verplaatst, moeten we het bestandstype wijzigen omdat openvpn een configuratiebestand verwacht dat eindigt op.conf in plaats van op.ovpn. Toen ik dit deed, wilde ik het originele bestand nog steeds intact houden, voor het geval er iets geks zou gebeuren, dus ik gebruikte gewoon een cp-commando (aangezien je in /etc/openvpn bent, moet je sudo-permissies gebruiken om uit te voeren dit commando)

sudo cp /etc/openvpn/connectionprofile.ovpn /etc/openvpn/connectionprofile.conf

Met de openvpn-profielconfiguratie die is gemaakt, moeten we snel een wijziging aanbrengen om onze inloggegevens te verstrekken, dus tijd om nano weer uit te breken!

sudo nano /etc/openvpn/connectionprofile.conf

U wilt de regel auth-user-pass vinden en die vervangen door auth-user-pass auth.txt

Dit vertelt openvpn om het referentiebestand te pakken dat we eerder gebruikten om het door ons geleverde profiel te verifiëren.

Sla op en verlaat het profielconfiguratiebestand!

Dat zou alles moeten zijn voor de VPN-configuratie, maar we willen testen of al onze configuraties correct zijn ingesteld voordat de VPN-service wordt ingesteld om automatisch te starten. Voer de volgende opdracht uit om de VPN-verbinding te testen:

sudo openvpn --config "/etc/openvpn/connectionprofile.conf"

Je zou een heleboel tekst moeten zien scrollen terwijl de Pi verbindingspogingen doet met de VPN-serviceprovider (hopelijk geen foutmeldingen!) Maar je wilt het laten staan totdat je de initialisatiereeks voltooid in het venster ziet. Als je dat uiteindelijk ziet, betekent dit dat je Pi is verbonden met je VPN-serviceprovider! Je kunt doorgaan en het proces beëindigen door op ctrl + c in het terminalvenster te drukken.

Nu de VPN werkt, moeten we de huidige iptables opruimen. We kunnen dat voltooien met de volgende drie opdrachten:

sudo iptables -Fsudo iptables -t nat -F sudo iptables -X

Omdat we de iptables echter hebben gewist, moeten we de nat-regel die we eerder in deze tutorial hadden gemaakt opnieuw instellen door de volgende opdracht uit te voeren (deze opdracht zou er bekend uit moeten zien!)

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Nu kunnen we deze configuratie opslaan over de vorige configuratie die we in de vorige stap hebben samengesteld. (deze opdracht moet er ook bekend uitzien!)

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Nu we de NAT-regels hebben ingesteld, moeten we de standaardconfiguratie voor openvpn wijzigen om het profiel te gebruiken dat we hebben ingesteld. We doen dit door het configuratiebestand te bewerken in /etc/default/openvpn

sudo nano /etc/default/openvpn

Zoek de regel met #autostart="all", verwijder commentaar op deze regel en verander het in de naam van uw openvpn-configuratiebestand (minus de.conf natuurlijk!) Dus in mijn geval verander ik de regel in autostart=" verbindingsprofiel"

en sla vervolgens op en verlaat dit configuratiebestand!

Dat zou alles moeten zijn voor de VPN-setu! Start de Pi opnieuw en controleer of alles werkt door verbinding te maken met de hotspot en uw IP-adres te controleren via een site zoals whatismyip.com.

Met deze configuratie is er een mogelijkheid dat het IP-adres van uw router kan worden gelekt via een DNS-lek. We kunnen dit oplossen door de DNS waarnaar we verwijzen in het dhcpcd.conf-bestand te wijzigen om te verwijzen naar een externe DNS-service, zoals Cloudflare!

Open het bestand dhcpcd.conf in je favoriete editor:

sudo nano /etc/dhcpcd.conf

Zoek de regel in de configuratie #static domain_name_servers=192.168.0.1, verwijder commentaar op de regel en wijzig deze in het volgende: static domain_name_servers=1.1.1.1 en sla het configuratiebestand op of sluit het af. Start de Pi opnieuw op en nu kun je controleren of het IP-adres van je router niet wordt gelekt via ipleak.net.

Een ander ding om op te letten, is dat het IP-adres van uw router mogelijk is gelekt via WebRTC. WebRTC is een platform dat door alle moderne browsers wordt gebruikt om communicatie, waaronder instant messaging, videoconferentie en streaming van audio en video, beter te standaardiseren. Een bijproduct van dit platform is dat als het niet is aangevinkt, het het IP-adres van je router kan lekken als je bent verbonden met een VPN. De eenvoudigste manier om dit te voorkomen, is door browserextensies of plug-ins te gebruiken, zoals webrtc-leak-prevent.

Nu alles op uw pi is ingesteld, kunt u, als u ervoor wilt zorgen dat al uw internetverkeer versleuteld is, verbinding maken met deze hotspot en al uw verkeer wordt versleuteld via de VPN!

Ik hoop dat je genoten hebt van mijn Instructable, ga nu alle wifi beveiligen !!