Hvordan konfigurere WireGuard VPN Server i pfSense

WireGuard VPN-server i pfSense

WireGuard VPN er en ny robust og veldig rask protokoll for å lage virtuelle private nettverk. I denne artikkelen har vi sett hvordan den er i stand til å doble og til og med tredoble OpenVPN eller IPsec i hastighet. Denne nye VPN-protokollen er ideell for konfigurasjoner for ekstern tilgang med mobilklienter, det være seg smarttelefoner, nettbrett eller bærbare datamaskiner, siden det bruker svært få ressurser og forbindelsen er veldig rask. Operativsystemet pfSense i versjon 2.5.0 har offisielt innlemmet denne nye VPN, sammen med IPsec, L2TP og også OpenVPN. I dag skal vi vise deg hvordan du konfigurerer WireGuard VPN fra bunnen av i pfSense 2.5.0 for å koble til eksternt.

WireGuard VPN-funksjoner

WireGuardVPN er en veldig lett programvare som lar oss raskt og enkelt konfigurere en VPN-tunnel, som standard bruker den den mest moderne kryptografi, uten behov for å velge forskjellige asymmetriske, asymmetriske eller hash-krypteringsalgoritmer, som standard har vi en sikker suite som standard, i motsetning til andre VPN-protokoller. WireGuards mål er å bli den beste VPN for både hjemme- og bedriftsbrukere, og det lykkes fordi det allerede er integrert i Linux Kjerne for å gi oss best mulig ytelse.

Når det gjelder kryptografien som er brukt, har vi det ChaCha20 for symmetrisk kryptering, autentisert med Poly1305 , så vi har AEAD. Den bruker også Curve25519 for ECDH, BLAKE2 for hasing, SipHash24 for hashtable nøkler, og HKDF for nøkkelavledning. Som du har sett, har vi de mest moderne kryptografiske algoritmene som brukes som standard, og vi kan ikke endre det for andre for øyeblikket, de må være disse ja eller ja.

Med denne nye VPN-en trenger vi ikke å administrere tilkoblingene eller gjøre vanskelige konfigurasjoner, den fungerer bare i tunnelmodus fordi den er en L3 VPN, og bruker UDP-protokollen som et transportlag og tillater ikke valg av TCP, hva vi kan gjøre er å endre lytteporten for den vi ønsker. Selvfølgelig kan WireGuard-serveren være bak NAT uten problemer, bare en portvideresending må gjøres. Andre interessante funksjoner er at det muliggjør roaming mellom nettverk raskt og enkelt, for alltid å være koblet fra hvilket som helst WiFi eller 4G / LTE-nettverk uten å forstyrre forbindelsen. I tillegg kan vi også aktivere Kill-Switch for å forhindre datalekkasjer hvis VPN går ned.

Til slutt er denne nye VPN-en kompatibel med flere operativsystemer som Windows, Linux, MacOS, FreeBSD, Android, og også iOS . Nå har pfSense 2.5.0-utviklingsteamet innlemmet WireGuard i systemet sitt som standard, selv om vi tidligere også kunne installere det, men vi hadde ikke offisiell støtte.

WireGuard VPN-serverkonfigurasjon

Før utgivelsen av pfSense 2.5.0, hvis vi ønsket å ha WireGuard på dette komplett brannmurmåtte vi installere det manuelt på systemet ved å laste ned noen FreeBSD-kompatible pakker. Takket være pfSense-utviklingsteamet er det allerede fra versjon 2.5.0 integrert i det grafiske brukergrensesnittet som standard.

Det første vi må gjøre er å gå til ” VPN / WireGuard ”For å gå inn i konfigurasjonen av denne nye VPN-protokollen. Så snart vi går inn i menyen, klikker vi på «Legg til tunnel».

I tunnelkonfigurasjonen må vi aktivere tunnelen, gi den en beskrivelse og sette følgende:

  • Adresse: IPv4- eller IPv6-adresse til VPN-serveren for tunnelgrensesnittet.
  • Port: som standard er det 51820 UDP, men vi kan bytte til hvilken som helst UDP-port.

pfSense inneholder en offentlig / privat nøkkelgenerator for VPN-serveren med WireGuard, vår anbefaling er at du genererer noen nøkler til VPN-klienten, og at vi klikker igjen på "Generer" slik at de andre som genereres er de av VPN. server. Følgende nøkler er for eksempel de som vi vil bruke senere i VPN-klienten. Du kan hjelpe deg med et notisblokk eller Notisblokk ++ for å registrere konfigurasjonen.

For å forenkle konfigurasjonen av WireGuard med offentlige og private nøkler, kan du også bruke wireguardconfig verktøy som vil tillate oss å automatisk generere både serveren og klientene, for senere å tilpasse den til pfSense.

Og de andre genererte er de fra selve VPN-serveren med WireGuard.

Når vi har nøklene, må vi klikke på “Lagre” og vi vil ha opprettet VPN-serveren med forrige konfigurasjon:

Når vi har fått det, må vi nå registrere “jevnaldrende”, det vil si VPN-klientene. Vi går tilbake til WireGuard-serverkonfigurasjonen, og klikker på “Add Peer” som er i grønt. Her må vi fylle ut noen innstillinger, men det er ikke nødvendig å fylle dem alle.

Nå skal vi forklare hva hvert av alternativene er for:

  • Beskrivelse: vi legger en beskrivelse til denne klienten, for eksempel navnet vårt.
  • Sluttpunkt: vi legger den offentlige IP-adressen til VPN-klienten.
  • Endepunktport: vi setter porten til VPN-klienten.

Hvis du skal konfigurere en VPN-klient, der klientens offentlige IP og port endres, da vi må la alternativene "Endpoint" og "Endpoint Port" være tomme . Disse alternativene må fylles ut hvis vi skal konfigurere en Site-to-Site VPN, men i ekstern tilgang (Roadwarrior) er det ikke nødvendig å fylle ut dem.

  • Hold deg i live: en verdi i sekunder, hver gang det verifiserer at tunnelen fortsatt er oppe, som standard er den deaktivert.

Nå kommer de viktigste innstillingene:

  • Offentlig nøkkel: vi må sette den offentlige nøkkelen til VPN-klienten, før du har sett hvordan den genereres for klienten, for her legger vi den offentlige nøkkelen.
  • Tillatte IP-er: hvis vi vil at det skal være omdirigering på internett og tilgang til alle nettverk, setter vi 0.0.0.0/0. Det mest normale er at VPN-klienter med ekstern tilgang går til Internett gjennom selve VPN-en, men her kan vi konfigurere spesifikk tilgang til forskjellige nettverk.
  • Peer WireGuard-adresse: IP-adressen til den registrerte kollegaen.
  • Pre-shared key: valgfritt, du kan legge til en pre-shared key for å forbedre sikkerheten ytterligere.

I vårt tilfelle har vi ikke satt en forhåndsdelt nøkkel, men hvis du setter den, både i pfSense og i VPN-klienten, må den være nøyaktig den samme, og vi må generere denne nøkkelen med den blå knappen som kommer i pfSense. Vi kan ikke sette den forhåndsdelte nøkkelen "12345678" for eksempel, vi må bruke pfSense-generatoren.

Når vi har konfigurert WireGuard VPN-serveren riktig i pfSense 2.5.0, skal vi konfigurere brannmurdelen, fordi den alltid er i blokkeringsmodus.

Brannmurkonfigurasjon på WAN og WireGuard

Før vi kobler til den første VPN-klienten, må vi gå til "Brannmur / regler" og legge til en ny regel på WAN-grensesnittet på Internett. Vi legger til en ny regel med følgende informasjon:

  • Handling: Bestått
  • Grensesnitt: WAN
  • Adressefamilie: IPv4, IPv6 eller begge deler
  • Protokoll: UDP
  • Kilde: hvilken som helst (hvis du skal sette opp en Site-to-Site med WireGuard, kan du sette kilden offentlig IP her for å forbedre sikkerheten).
  • Destinasjon: WAN-adresse på port 51820

Når vi er konfigurert, klikker vi på «Lagre» for å lagre denne regelen, og bruker endringer, som alltid når vi legger til en ny regel i brannmuren.

Når dette er gjort, må vi nå gå til «WireGuard» -grensesnitt som er opprettet automatisk i « Brannmur / Regler «Seksjon, her må vi tillate all kommunikasjon når den er koblet til, eller bare det vi ønsker, akkurat som OpenVPN eller IPsec.

I følgende konfigurasjon kan du se at vi har en regel med følgende konfigurasjon:

  • Handling: Bestått
  • Grensesnitt: WireGuard
  • Adressefamilie: IPv4, IPv6 eller begge deler
  • Protokoll: Hvilken som helst
  • Kilde: hvilken som helst
  • Destinasjon: hvilken som helst

Vi klikker på “Lagre” og bruker endringer som vanlig. På dette punktet er vi klare til å konfigurere VPN-klientene med WireGuard.

Konfigurer WireGuard VPN-klienter og koble til pfSense

Konfigurasjonen av VPN-klientene med WireGuard er den samme på alle plattformer, vi trenger nøyaktig samme informasjon. I vårt tilfelle har vi brukt en Android-smarttelefon, du kan laste ned den offisielle WireGuard-appen for Android og iOS nedenfor:

Men vi har det også for andre operativsystemer som Windows, direkte fra den offisielle nettsiden til denne VPN-protokollen. Når vi har installert den, vil vi være i stand til å konfigurere klienten enkelt.

Som vi har sagt tidligere, er vår anbefaling at når du genererer nøklene i pfSense, kopierer du disse nøklene til et notisblokk, både den offentlige nøkkelen og den private nøkkelen. I tillegg må du også kopiere den offentlige nøkkelen til serveren. Når dette er gjort, åpner vi WireGuard og fortsetter å legge til en ny VPN-tunnel, vi har tre alternativer:

  • Importer all konfigurasjonen fra filen, hvis du skal konfigurere flere klienter som Windows, Linux etc, er det normalt å ha en mal med de forskjellige konfigurasjonene.
  • Skann fra QR-kode: Hvis vi bruker WireGuardConfig-verktøyet, kan vi gjøre det enkelt.
  • Lag fra bunnen av: dette er alternativet vi har valgt.

Når vi legger til en ny VPN, må vi fylle ut all eller nesten all informasjonen den ber oss om, det er VPN-klienten:

  • Navn: vi legger en beskrivelse til VPN-tunnelen, et beskrivende navn i tilfelle vi har flere.
  • Privat nøkkel: vi setter den private nøkkelen som vi tidligere har kopiert fra notisblokken.
  • Offentlig nøkkel: når du skriver inn den private nøkkelen, genererer den automatisk
  • Adresser: klientens IPv4 eller IPv6, i dette tilfellet har vi tidligere konfigurert 10.9.0.2/32, vi setter dette.
  • Port: vi lar den stå tom
  • DNS-servere: vi kan sette en spesifikk DNS-server, eller direkte som løser tunnelen.
  • MTU: vi lar det stå tomt.

Nå klikker vi på add pair, og flere konfigurasjoner vil vises, disse konfigurasjonene er de for VPN-serveren.

  • Jevnaldrende - Den offentlige nøkkelen til VPN-serveren.
  • Forhåndsdelt nøkkel: hvis vi ikke har konfigurert, lar vi den være tom, hvis vi har konfigurert, kopierer vi den nøyaktig den samme.
  • Vedvarende vedlikehold: hold det i live, det anbefales å la det være tomt.
  • Endelig poeng: vi må sette "IP: port" syntaksen, derfor kan vi sette: "vpn.redeszone.net:51820".
  • Tillatte IP-er: hvis vi vil sette dem alle, setter vi 0.0.0.0/0. Vi har også en knapp for å ekskludere private IP-er.

Når vi har gjort det, klikker vi på lagre, og vi vil kunne se alle innstillingene som er gjort.

Når vi er lagt til og bekreftet at alt er riktig, fortsetter vi å koble til, og vi vil se at det er trafikkutveksling og at VPN fungerer perfekt.

Hvis vi ikke har mottatt pakker, betyr det at det er noe galt, og WireGuard VPN-tunnelen er ikke etablert riktig. Hvis dette skjer med deg, må du gjennomgå all konfigurasjonen som er gjort, og gjennomgå pfSense-loggene for å se hva som skjer.

Vi håper at du med denne opplæringen har klart å konfigurere WireGuard VPN-serveren i din fantastiske pfSense 2.5.0