Sådan opsætter du en OpenVPN-klient i pfSense
pfSense er en open source firewall, baseret på FreeBSD, der også fungerer som en router. Du kan installere pfSense på ældre (eller nyere) hardware, så længe systemet har to netværkskort (WAN & LAN), og bruge pfSense som din router. pfSense tilbyder mere strøm, kontrol og sikkerhed end de fleste kommercielle routere, du kan købe, og har fordelen af hyppige OS-opdateringer. Den har også en letanvendelig webbaseret grænseflade, hvorigennem du kan konfigurere alle aspekter af din router/firewall.
En af de mange fede ting, du kan gøre med pfSense, er at konfigurere en klientforbindelse til en OpenVPN-udbyder. Derefter kan du konfigurere pfSense til at dirigere al trafikken fra alle de tilsluttede enheder (pc'er, tablets, smartphones) gennem VPN-forbindelsen. Dette giver dig mulighed for at:
- Tilslut så mange enheder, som du vil, til VPN og omgå og hårde grænser til samtidige forbindelser, som din udbyder kan håndhæve.
- Tilslut enheder, der ikke naturligt understøtter VPN-forbindelser, såsom spillekonsoller og smart-tv'er
- Opret forbindelse til VPN uden at bruge en dedikeret VPN-applikation.
I dette indlæg skal vi se på, hvordan man opsætter en OpenVPN-klientforbindelse til en kommerciel VPN-udbyder i pfSense. Denne vejledning antager, at du har installeret pfSense og at du har en standardkonfiguration med mindst et LAN-interface og et WAN-interface.
VPN udbydere
Ikke alt kommercielt VPN-udbydere understøtter pfSense – selvom rigtig mange gør. Når en VPN-udbyder officielt understøtter pfSense, er det ret nemt at finde alle de filer, du skal bruge for at konfigurere det på pfSense. Andre VPN-udbydere understøtter ikke officielt pfSense, men stiller stadig de konfigurationsfiler, du skal bruge for at konfigurere en klientforbindelse på pfSense, til din rådighed. Det er typisk udbydere, der understøtter Linux og de gør de nødvendige konfigurationsfiler tilgængelige for en Linux-konfiguration. Men da det viser sig, at de filer, du skal bruge for at oprette en OpenVPN-klientforbindelse i Linux, er de samme, som du også skal bruge for at konfigurere det på pfSense.
Her er en liste over udbydere, der vides at arbejde med pfSense (officielt eller uofficielt). Listen er ikke udtømmende, så der kan være andre.
TILBUD ALERT:Få 3 måneder gratis med ExpressVPN, vores #1 vurderede VPN-udbyder.
- AirVPN
- ExpressVPN
- Surfshark
- Gem mig
- Skjul min røv
- VPN
- Muldvarp
- NordVPN
- OVPN
- Privat internetadgang
- ProtonVPN
- PureVPN
- TorGuard
- VyprVPN
- Windscribe
Der er også forskellige måder at oprette den samme udbyder på pfSense. Til denne guide valgte jeg den mest ligetil måde, der fungerer godt med en typisk grundlæggende pfSense-installation.
Hvad du skal bruge
For at få dette til at fungere på pfSense, skal du hente følgende fra din VPN-udbyders websted. VPN-udbydere, der understøtter pfSense (officielt eller uofficielt), vil gøre deres konfigurationsfiler tilgængelige for download.
- Dine legitimationsoplysninger : Dette ville være et brugernavn og en adgangskode, en klient-id, et kontonummer – hvad end de kalder det. Det varierer fra udbyder til. Det kan være et hvilket som helst af ovenstående. Du skal blot bruge dine midler til identifikation og autentificering til din konto.
- CA-certifikatet : VPN-udbyderen har en certifikatmyndighed, der validerer forbindelser til dens VPN-servere. For at konfigurere pfSense som en VPN-klient skal du bruge din udbyders CA-certifikat. Det ser sådan ud:
- CA-certifikatets private nøgle : Nogle udbydere kræver også, at du importerer den private nøgle til CA-certifikatet. Ikke alle gør det. Det ser sådan ud:
- TLS-nøglen : Nogle VPN-udbydere kræver også en TLS-nøgle for at oprette en klientforbindelse til deres servere. Det omtales ofte som en statisk nøgle. Hvis din VPN-udbyder kræver en statisk nøgle for at etablere en OpenVPN-forbindelse, har du også brug for det. Det ser sådan ud:
Så den første ting du skal gøre er at hente OpenVPN-konfigurationsfilerne fra din VPN-udbyder. Når du har fået alt det, er du klar til at begynde at konfigurere klientforbindelsen i pfSense.
Konfiguration af pfSense
Log på
Den første ting, vi skal gøre, er at logge ind på vores pfSense-boks.
- Start en webbrowser og skriv: https://
i URL-linjen. pfSense har som standard 192.168.1.1. - Indtast dit brugernavn og adgangskode. Du føres til pfSense Dashboard.
Import af CA-certifikatet og nøglen
Vi starter med at importere vores VPN-udbyders CA-certifikat.
Sådan importeres et CA til pfSense
- Naviger tilSystem > Cert. Manager > CA'erog klik påTilføjeknappen nederst til højre.
- Giv CA'en et beskrivende navn. Jeg bruger My VPN Provider CA til dette eksempel.
- IndstilMetodefelt tilImporter en eksisterende certifikatmyndighed.
- Indsæt din udbyders CA-certifikat iCertifikatdataMark.
- Indsæt din CA-nøgle iCertifikat privat nøglefelt (hvis din udbyder kræver dette).
- Klik på Gem. Du har importeret din VPN-udbyders CA og føres tilbage til CAs-siden, hvor din nyligt importerede CA nu vises på listen.
Tilføjelse af en OpenVPN-klientforbindelse
Nu hvor vi har importeret vores CA-certifikat, kan vi gå videre og begynde at konfigurere vores VPN-forbindelse.
Hvis din VPN-udbyder eksplicit understøtter pfSense, vil de oplysninger, du skal bruge for at konfigurere den, være nemme at finde. Hvis din VPN-udbyder 'uofficielt' understøtter pfSense ved at understøtte Linux, kan du finde de nødvendige oplysninger i en af .ovpn-filerne, der er tilgængelige for Linux. .ovpn-filer kan åbnes ved hjælp af en standard teksteditor. Det vil se nogenlunde sådan ud (certifikatet og nøglen er blevet forkortet til skærmbilledet):
Naviger tilVPN > OpenVPN > Klienterog klik påTilføjeknap.
OpenVPN-klientkonfigurationssiden er ret lang. Vi vil opdele det efter sektion og gennemgå alle de parametre, der kræves for at oprette en OpenVPN-forbindelse.
Generel information
handicappet : Lad dette være umarkeret, ellers vil din klientforbindelse blive deaktiveret.
Servertilstand : Indstil dette til Peer to Peer (SSL/TLS). Den anden mulighed, Shared Key, bruges typisk til punkt-til-punkt VPN-forbindelser, der forbinder to netværk via VPN.
Protoko l: Dette er typisk indstillet til UDP, men kan også indstilles til TCP, hvis din udbyder understøtter TCP-forbindelser. UDP er normalt hurtigere og er det foretrukne valg for OpenVPN.
Interface : VED
Lokal havn : Lad stå tomt, medmindre det er angivet af din VPN-udbyder
Servervært eller adresse : IP-adressen eller værtsnavnet på den VPN-server, som du vil oprette forbindelse til.
Server port : Porten, som VPN-forbindelsen oprettes over. Dette bestemmes af din VPN-udbyder.
Proxyvært eller adresse : Efterlad blank
Proxy port : Efterlad blank
Proxy-godkendelse : Efterlad blank
Indstillinger for brugergodkendelse
Det er her, du indtaster dine VPN-udbyderoplysninger. Som jeg nævnte ovenfor, kan dette være i form af et brugernavn og adgangskode, eller en klient-id eller et kontonummer – hvad end din VPN-udbyder har valgt. Hvis din udbyder ikke kræver en adgangskode, skal du blot lade adgangskodefeltet stå tomt.
Brugernavn : Dit brugernavn, klient-id, kontonummer osv.
Adgangskode : Din adgangskode (hvis påkrævet)
Automatisk Prøve igen : Lad være afkrydset, så din klient vil forsøge at oprette forbindelse igen, når godkendelse mislykkes.
Kryptografiske indstillinger
Måden at konfigurere afsnittet Kryptografiske indstillinger varierer i høj grad mellem VPN-tjenesteudbydere. Du skal indhente de korrekte oplysninger fra din VPN. De fleste udbydere gør disse oplysninger let tilgængelige.
TLS-konfiguration : Nogle VPN-udbydere kræver en TLS-nøgle for at blive brugt til godkendelse af OpenVPN-forbindelsen. Andre gør ikke. Hvis de gør det, vil TLS-nøglen være blevet bundtet med de konfigurationsfiler, du downloadede. Hvis din udbyder kræver en TLS-nøgle, skal du markere Brug en TLS-nøgle. Ellers fjern markeringen.
Generer automatisk en TLS-nøgle : Lad være afkrydset.
TLS nøgle : Indsæt din VPN-udbyders leverede TLS-nøgle her, hvis det kræves. Ellers skal du lade feltet stå tomt.
TLS-nøglebrugstilstand : TLS-nøgler kan bruges til enten TLS-godkendelse eller til TLS-godkendelse og kryptering. Dette afhænger af din udbyder. Vælg den relevante TLS-nøglebrugstilstand fra rullemenuen.
TLS keydir retning : Lad være ved Brug standardretning, medmindre en anden indstilling er angivet af din udbyder. Klient- og server-TLS-nøglerne skal indstilles i modsatte retninger, for at TLS-godkendelse kan fungere.
Peer Certificate Authority : Vælg den CA, vi importerede tidligere.
Kundecertifikat : Lad dette sæt være til Ingen. Med OpenVPN er det muligt at bruge certifikatbaseret godkendelse frem for et brugernavn og adgangskode eller begge dele. Men hver VPN-udbyder, jeg har set, bruger legitimationsbaseret godkendelse, formentlig fordi distribution af unikke certifikater til hver kunde hurtigt ville blive uoverskuelig.
Krypteringsalgoritme : Denne indstilling bestemmer den chiffer, der bruges til at kryptere din forbindelse. Dette afhænger igen af din VPN-udbyder. De fleste udbydere bruger dog enten AES-256-CBC eller AES-256-GCM.
Aktiver NCP : NCP står for Negotiable Cryptographic Parameters. Hvis din VPN-udbyder understøtter forskellige krypteringsindstillinger, vil NCP forhandle sig frem til den stærkest mulige kryptering, der understøttes af både klienten (din pfSense-boks) og VPN-serveren. Medmindre du ved, at din udbyder understøtter NCP, skal du fjerne fluebenet, og den krypteringsalgoritme, der er valgt i krypteringsalgoritmen ovenfor, vil blive brugt.
NCP algoritmer : Hvis du bruger NCP, kan du vælge, hvilke cifre der er tilgængelige til forhandling. Hvis du klikker på en ciffer fra den tilgængelige liste, importeres den til den tilladte liste.
Auth digest algoritme : Dette er den algoritme, der bruges til at autentificere datakanalen (tunnelen, som din trafik flyder igennem). Dette bestemmes af din VPN-udbyder. Vælg den relevante algoritme fra rullemenuen.
Hardware Krypto : Hvis systemet, som du installerede pfSense på, understøtter kryptografisk hardwareacceleration, kan du aktivere det her. Hvis dit system understøtter denne indstilling, kan du aktivere den, uanset hvilken VPN-udbyder du bruger.
Tunnelindstillinger
Tunnelindstillingerne vil stort set stå tomme. Disse indstillinger har at gøre med routing mellem klienten og serveren og håndteres typisk af VPN-udbyderen på serversiden.
IPv4-tunnelnetværk : IPv4-netværket mellem klienten og serveren. Efterlad blank.
IPv6-tunnelnetværk : IPv6-netværket mellem klienten og serveren. Efterlad blank.
IPv4-fjernnetværk : De IPv4-netværk, der vil blive dirigeret gennem tunnelen. Efterlad blank.
IPv6-fjernnetværk : De IPv6-netværk, der vil blive dirigeret gennem tunnelen. Efterlad blank.
Begræns udgående båndbredde : Sætter en hård grænse for udgående båndbredde. Efterlad blank.
Kompression : Nogle VPN-udbydere kan kræve, at du aktiverer komprimering af den trafik, der strømmer gennem VPN-tunnelen. Hvis dette er angivet af din udbyder, skal du vælge den relevante mulighed i rullemenuen. Ellers lad det være som det er.
Topologi : Specificerer topologien for VPN-netværket. Lad være som den er.
Type-of-Service : Lad være afkrydset.
Træk ikke ruter : Denne indstilling forhindrer VPN-serveren i at skubbe ruter til klienten. Nogle udbydere inkluderer routingoplysningerne i klientkonfigurationen og beder dig muligvis om at aktivere denne mulighed (såsom ExpressVPN). Hvis dette er angivet af din udbyder, skal du markere denne mulighed. Ellers skal du lade det være umarkeret.
Tilføj/fjern ikke ruter : Denne mulighed kan bruges til at aktivere selektiv routing: sender noget trafik gennem VPN-tunnelen, mens resten sendes ud af ISP-gatewayen. Dette kræver indstilling af VPN-grænsefladen (som vi vil oprette nedenfor) som en gateway i pfSense og specificering af nogle firewall- og NAT-regler for at få det til at fungere. Dette er uden for rammerne af denne vejledning. I dit typiske kommercielle VPN-scenarie ønsker du også, at al din trafik skal tunneleres gennem VPN-forbindelsen. Lad denne indstilling være umarkeret.
Ping-indstillinger
Ping-indstillingerne bruges til at bestemme, om forbindelsen er aktiv eller ej, og om den skal lukkes eller genstartes. Lad alle indstillinger være som de er.
Avanceret konfiguration
Brugerdefinerede muligheder : Nogle udbydere kræver indstilling af nogle brugerdefinerede indstillinger til klientkonfigurationen. Disse kan tilføjes her. Lad dette stå tomt, medmindre din udbyder angiver de nødvendige brugerdefinerede indstillinger.
UDP Hurtig I/O : Optimerer pakkeskrivning og kan fremskynde din VPN-forbindelse. Dette kan aktiveres og deaktiveres, når du har lyst. Jeg vil sige prøv begge dele og se om du får et hastighedsboost af det.
Afslut besked : Denne indstilling advarer eksplicit serveren, når klienten afbryder forbindelsen, så den kan lukke forbindelsen i stedet for at vente på, at den får timeout. Lad dette være som det er, medmindre det er angivet af din udbyder.
Send/modtag buffer : Du kan eksperimentere med forskellige bufferstørrelser i OpenVPN. Forskellige indstillinger vil give forskellige resultater med hensyn til hastighed. 512K er et godt sted at starte. Denne indstilling er valgfri.
Gateway skabelse : Vælger, om OpenVPN-gateways skal oprettes kun til IPv4, kun IPv6 eller begge dele. Medmindre din VPN-udbyder understøtter IPv6 (såsom Mullvad), skal du indstille dette til kun IPv4. Hvis din udbyder understøtter IPv6, skal du indstille dette til Begge.
Spredningsniveau : Bestemmer omfanget af OpenVPN-logfilerne for denne klient. Standardniveauet er 1. Men du kan indstille dette på et højere niveau for at få flere oplysninger ved fejlfinding. OpenVPN-logfiler i pfSense kan ses ved at navigere til Status > Systemlogfiler > OpenVPN.
Nu er det eneste, der er tilbage for at oprette vores klientforbindelse, at klikke på den blå Gem knap nederst på skærmen og klikke på Anvend ændringer.
Oprettelse af VPN-grænsefladen
Den næste ting, vi skal gøre, er at oprette den virtuelle grænseflade, der vil være vært for VPN-netværkssegmentet (det undernet, du bliver en del af efter en vellykket VPN-forbindelse) på vores pfSense-boks.
Interfacet blev automatisk oprettet af pfSense, da vi trykkede Gem efter at have konfigureret vores forbindelse tidligere. Men vi mangler stadig at tildele og konfigurere det.
Sådan tilføjes en grænseflade i pfSense
- Naviger til Grænseflader > Opgaver . Du vil se ovpnc1 til højre for Ledig netværksporte.
- Klik på den grønne Tilføje knappen til højre. ovpnc1-grænsefladen er tildelt og vises somOPT1.
- Klik OPT1 . Du føres til grænsefladekonfigurationssiden.
- Sæt kryds Aktiver interface og giv den et navn. Lad alle de andre indstillinger være urørte.
- Klik Gemme og Anvend ændringer . Din grænseflade er tildelt og aktiveret.
Hvis du navigerer tilbage til siden Interface Assignments, kan du se, at din navngivne grænseflade nu er en del af listen over aktive grænseflader.
Kontrol af forbindelsen
OK, vi har nu vores OpenVPN-klientforbindelse konfigureret, og vi har oprettet vores VPN-grænseflade. Vores forbindelse fungerer lige nu, men pfSense er ikke konfigureret til at dirigere trafik gennem VPN-tunnelen.
Vi kan kontrollere, at vores forbindelse fungerer, ved at navigere tilStatus > Systemlogfiler > OpenVPN. Hvis OpenVPN-klienten er konfigureret korrekt, bør du se Initialiseringssekvens afsluttet , et sted nær toppen af OpenVPN-logfilerne.
Nu mangler vi bare at dirigere trafik gennem VPN-tunnelen.
Firewall regler
Vi skal sikre os, at de enheder, der er tilsluttet LAN-grænsefladen, kan sende trafik ud til internettet via standard-gatewayen. Når du installerer pfSense, opretter den automatisk en regel, der som standard tillader enhver form for trafik ud af LAN-grænsefladen. Så hvis du ikke ændrede noget der, burde du have det godt.
Hvis du ændrede dem, skal du sørge for, at dine regler tillader, at de LAN-enheder, du vil oprette forbindelse til VPN, kan gå ud på internettet. Naviger tilFirewall > Regler > LANfor at se/opdatere dine LAN-regler.
Sådan ser standard LAN-reglerne ud. Som standard er der en regel for IPv4 og en for IPv6. Medmindre din VPN-udbyder understøtter IPv6, har du kun brug for IPv4-reglen.
Reglen tillader enhver enhed på LAN'et at oprette forbindelse til enhver destination ved at bruge enhver protokol over enhver port.
Hvis reglen ikke er der, kan du gå videre og oprette den.
Sådan opretter du en LAN-firewall-regel
- Klik på den grønneTilføjeknap med en pil, der peger opad. Det vil placere reglen øverst, og pfSense vil matche den regel først.
- IndstilHandlingfelt for at bestå.
- Forladhandicappetboksen afkrydset.
- ForladInterfacefelt indstillet tilOG.
- IndstilAdresse FamilietilIPv4.
- IndstilProtokoltil enhver
- IndstilKildetilOG netto.
- IndstilBestemmelsesstedtilnogen.
- Hvis du også har brug for en IPv6-regel, skal du gentage processen og vælgeIPv6fraAdresse FamilieDrop down menu.
NAT regler
Den næste ting, vi skal gøre, er at konfigurere vores Network Address Translation (NAT) regler for korrekt at dirigere vores VPN-trafik.
Sådan tilføjes en NAT-regel
- Naviger til Firewall > NAT > Udgående .
- Indstil Udgående NAT-tilstand til brugervejledning , og klik derefter Gemme og Anvend ændringer . Dine NAT-regler skulle nu se sådan ud (men med dit LAN-netværk i stedet for mit 10.0.0.0/24):
- Slet alle reglerne, undtagen de to øverste – dem med 127.0.0.1.
- Klik på den grønne Tilføje knappen med en nedadpegende pil for at oprette en ny NAT-regel.
- Indstil Interface felt til VPN-grænsefladen, vi oprettede tidligere.
- Indstil Adresse Familie til enten IPv4 eller IPv4+IPv6, hvis din VPN-udbyder eksplicit understøtter IPv6.
- Indstil kilde netværktil din LAN IP-adresse, men gør det sidste ciffer til et 0 i stedet for et 1. Så hvis din LAN IP-adresse er 192.168.1.1, skal du sætte 192.168.1.0 som kildenetværk.
- Lad alle andre indstillinger være urørt. Klik Gemme og Anvend ændringer .
Dine NAT-regler skulle nu se sådan ud (men med dit LAN-netværk i stedet for mit 10.0.0.0/24):
Se også: Hvad er en NAT Firewall
DNS
Den sidste ting, vi skal konfigurere, er DNS til din VPN-klient. Og der er forskellige måder at gøre dette på afhængigt af din pfSense-konfiguration. Selvom din VPN-udbyder hardkoder sine DNS-servere i deres .ovpn-konfigurationsfil, skal pfSense stadig være opmærksom på de DNS-servere, der skal bruges.
DNS Resolver / DNS Forwarder
Hvis du bruger DNS Forwarder eller DNS Resolver i videresendelsestilstand, kan du blot tilføje din VPN-udbyders DNS-server(e) til siden Generel opsætning.
Sådan tilføjer du en DNS-server til pfSense
- Naviger til System > Generel opsætning.
- Klik Tilføj DNS-server.
- Indtast IP-adresse af værtsnavnet på DNS-serveren i den relevante boks.
- Forlad Gateway indstillet til Ingen .
- Klik Gemme og Anvend ændringer .
- Gentag for at tilføje yderligere DNS-servere.
DHCP
Sådan pushes en DNS-server til klienter via DHCP
Hvis du ikke bruger DNS Resolver eller DNS Forwarder, kan du få din DHCP-server til at skubbe DNS-serveren til alle klienter, der anmoder om en IP-adresse på dit LAN.
- Naviger til Tjenester > DHCP-server
- Under Servere , kan du indtaste op til fire DNS-servere.
- Indsæt din VPN-udbyders DNS-server(e).
- Klik Gemme og Anvend ændringer .
Afslutter
Tillykke, du har lige konfigureret en OpenVPN-klientforbindelse på pfSense. Det eneste, der er tilbage nu, er at genstarte pfSense og tilslutte en enhed til dit LAN. Når du er tilsluttet, kan du gå til vores IP-adressekontrolværktøj for at bekræfte, at din offentlige IP-adresse er blevet ændret til VPN-serverens IP-adresse. Du kan også tjekke for DNS-lækager med vores testværktøj.
Du kan nu bruge din kommercielle VPN med enhver enhed, der er forbundet til din pfSense-boks, uden en dedikeret VPN-app. Og husk, uanset hvilken begrænsning din VPN-udbyder sætter på antallet af samtidige forbindelser, så tæller din router kun som én enhed, hvad angår din VPN-udbyder. Så du kan tilslutte så mange enheder, du vil, på denne måde.