WireGuard er en generell VPN (Virtual Private Network) som bruker topp moderne kryptografi. Sammenlignet med andre populære VPN-løsninger, som IPsec og OpenVPN, er WireGuard generelt raskere, lettere å konfigurere og har et mindre fotavtrykk. Den er plattformoverskridende og kan kjøre nesten hvor som helst, inkludert Linux, Windows, Android og macOS.
Wireguard er en peer-to-peer VPN; den bruker ikke klientservermodellen. Avhengig av konfigurasjonen kan en peer fungere som en tradisjonell server eller klient. Det fungerer ved å lage et nettverksgrensesnitt på hver peer-enhet som fungerer som en tunnel. Likemenn autentiserer hverandre ved å utveksle og validere offentlige nøkler, etterligne SSH-modellen. Offentlige nøkler er kartlagt med en liste over IP-adresser som er tillatt i tunnelen. VPN-trafikken er innkapslet i UDP.
Denne artikkelen forklarer hvordan du installerer og konfigurerer WireGuard på Debian 10 som fungerer som en VPN-server. Vi viser deg også hvordan du konfigurerer WireGuard som klient på Linux, Windows og macOS. Klientens trafikk vil bli dirigert gjennom Debian 10-serveren.
Dette oppsettet kan brukes som en beskyttelse mot Man in the Middle-angrepene, surfe på nettet anonymt, omgå geografisk begrenset innhold, eller la kollegene dine som jobber hjemmefra koble seg til bedriftsnettverket sikkert.
Forutsetninger #
For å følge denne veiledningen trenger du en maskin med Debian 10 installert. Du trenger også root eller [sudo access] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / for å installere pakker og gjøre endringer i systemet.
Sette opp WireGuard Server #
Vi starter med å installere WireGuard-pakken på Debian-maskinen og sette den opp til å fungere som en server. Vi konfigurerer også systemet for å dirigere kundenes trafikk gjennom det.
Installer WireGuard på Debian 10 #
WireGuard er tilgjengelig fra Debian backports repositories. For å legge til depotet til systemet ditt, kjør:
ekko 'deb http: // ftp.debian.org / debian buster-backports main '| sudo tee / etc / apt / sources.liste.d / buster-backports.liste
Når depotet er aktivert, oppdater apt cachen og installer WireGuard-modulen og verktøyene:
WireGuard kjører som en kjernemodul.sudo apt oppdatering
sudo apt installere wireguard
Konfigurere WireGuard #
Du kan konfigurere og administrere WireGuard-grensesnittene med wg
og wg-rask
kommandolinjeverktøy.
Hver enhet i WireGuard VPN-nettverket må ha en privat og offentlig nøkkel. Kjør følgende kommando for å generere nøkkelparet:
wg nøkkel | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Filene genereres i / etc / wireguard
katalog. Bruke katt
eller mindre
kommandoer for å vise innholdet i filene. Den private nøkkelen skal aldri deles med noen og bør alltid holdes sikker.
Wireguard støtter også en forhåndsdelt nøkkel, som legger til et ekstra lag med kryptografi med symmetrisk nøkkel. Denne nøkkelen er valgfri og må være unik for hvert jevnaldrende par.
Neste trinn er å konfigurere tunnelenheten som vil dirigere VPN-trafikken.
Enheten kan settes opp enten fra kommandolinjen ved hjelp av ip
og wg
kommandoer, eller ved å opprette konfigurasjonsfilen manuelt. Vi oppretter konfigurasjonen med en tekstredigerer.
Åpne redaktøren din og opprett en ny fil med navnet wg0.konf
med følgende innhold:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Grensesnitt] Adresse = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i% i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
Du kan navngi grensesnittet alt du vil. Det anbefales imidlertid å bruke noe lignende wg0
eller wgvpn0
.
Innstillingene i grensesnittdelen har følgende betydning:
Adresse - En kommaseparert liste over v4 eller v6 IP-adresser for
wg0
grensesnitt. Du kan gi deg en IP-adresse fra et område som er reservert for private nettverk (10.0.0.0/8, 172.16.0.0/12 eller 192.168.0.0/16).ListenPort - lytteporten.
PrivateKey - En privat nøkkel generert av
wg nøkkel
kommando. (For å se innholdet i filtypen:sudo cat / etc / wireguard / privatekey
)SaveConfig - Når den er satt til sann, lagres den nåværende tilstanden til grensesnittet i konfigurasjonsfilen når den slås av.
PostUp - Kommando eller skript som utføres før du tar opp grensesnittet. I dette eksemplet bruker vi iptables for å aktivere masquerading. Dette tillater trafikk å forlate serveren, noe som gir VPN-klientene tilgang til Internett.
Sørg for å bytte ut
ens3
etter-EN POSTROUTING
for å matche navnet på det offentlige nettverksgrensesnittet. Du kan enkelt finne grensesnittet med:ip -o -4 ruteshow til standard | awk 'print $ 5'
PostDown - En kommando eller et skript som utføres før du bringer grensesnittet ned. Reglene for iptables vil bli fjernet når grensesnittet er nede.
De wg0.konf
og privathold
filer skal ikke kunne leses for vanlige brukere. Bruk chmod
for å sette filtillatelsene til 600
:
sudo chmod 600 / etc / wireguard / privatekey, wg0.conf
Når du er ferdig, ta med wg0
grensesnitt opp ved hjelp av attributtene som er spesifisert i konfigurasjonsfilen:
sudo wg-quick up wg0
Utgangen vil se ut slik:
[#] ip link add wg0 type wireguard [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 address add 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
For å sjekke grensesnittstatus og konfigurasjon, kjør:
sudo wg show wg0
grensesnitt: wg0 offentlig nøkkel: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = privat nøkkel: (skjult) lytteport: 51820
Du kan også bekrefte grensesnittstatusen med ip et show wg0
:
ip et show wg0
4: wg0: mtu 1420 qdisc noqueue state Ukjent gruppe standard qlen 1000 link / none inet 10.0.0.1/24 omfang global wg0 valid_lft for alltid foretrukket_lft for alltid
WireGuard kan administreres med Systemd. For å få WireGuard-grensesnittet ved oppstartstid, kjør følgende kommando:
sudo systemctl aktiver wg-quick @ wg0
Servernettverk og brannmurkonfigurasjon #
IP-videresending må være aktivert for at NAT skal fungere. Åpne / etc / sysctl.konf
fil og legg til eller fjern merking av følgende linje:
sudo nano / etc / sysctl.konf
/ etc / sysctl.konfnett.ipv4.ip_forward = 1
Lagre filen og bruk endringen:
sudo sysctl -p
nett.ipv4.ip_forward = 1
Hvis du bruker UFW til å administrere brannmuren din, må du åpne UDP-trafikk på porten 51820
:
sudo ufw tillate 51820 / udp
Det er det. Debian-kollegaen som vil fungere som en server er satt opp.
Linux- og macOS-klientoppsett #
Installasjonsinstruksjonene for alle støttede plattformer er tilgjengelige på https: // wireguard.com / installer / . På Linux-systemer kan du installere pakken ved hjelp av distribusjonspakkebehandling og på macOS med brygge
.
Når du er installert, følger du trinnene nedenfor for å konfigurere klientenheten.
Prosessen for å sette opp en Linux- og macOS-klient er omtrent den samme som du gjorde for serveren. Generer først de offentlige og private nøklene:
wg nøkkel | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Opprett filen wg0.konf
og legg til følgende innhold:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Grensesnitt] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 TillattIPs = 0.0.0.0/0
Innstillingene i grensesnittdelen har samme betydning som når du konfigurerer serveren:
- Adresse - En kommaseparert liste over v4 eller v6 IP-adresser for
wg0
grensesnitt. - PrivateKey - For å se innholdet i filen på klientmaskinen, kjør:
sudo cat / etc / wireguard / privatekey
Peer-delen inneholder følgende felt:
- PublicKey - En offentlig nøkkel til den jevnaldrende du vil koble til. (Innholdet på serveren
/ etc / wireguard / publickey
fil). - Endepunkt - En IP eller vertsnavn for den jevnaldrende du vil koble til, etterfulgt av et kolon og deretter et portnummer som den eksterne jevnaldrende lytter til.
- Tillatte IPer - En kommaadskilt liste over v4- eller v6-IP-adresser som innkommende trafikk for jevnaldrende er tillatt fra og til hvilken utgående trafikk for denne jevnaldrende er rettet. Vi bruker 0.0.0.0/0 fordi vi dirigerer trafikken og vil at serveren skal sende pakker med hvilken som helst kilde-IP.
Hvis du trenger å konfigurere flere klienter, er det bare å gjenta de samme trinnene med en annen privat IP-adresse.
Oppsettnr for Windows-klienter
Last ned og installer Windows msi-pakken fra WireGuard-nettstedet .
Når du er installert, åpner du WireGuard-applikasjonen og klikker på “Legg til tunnel” -> “Legg til tom tunnel ...” som vist på bildet nedenfor:
Et par med offentlige nøkler opprettes automatisk og vises på skjermen.
Skriv inn et navn på tunnelen og rediger konfigurasjonen som følger:
[Grensesnitt] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 TillattIPs = 0.0.0.0/0
I grensesnittdelen legger du til en ny linje for å definere klienttunneladressen.
I peer-delen legger du til følgende felt:
- PublicKey - Den offentlige nøkkelen til Debian-serveren (
/ etc / wireguard / publickey
fil). - Sluttpunkt - IP-adressen til Debian-serveren etterfulgt av en kolon- og WireGuard-port (51820).
- Tillatte IP-er - 0.0.0.0/0
Når du er ferdig, klikker du på "Lagre" -knappen.
Legg til klientpeer til serveren #
Det siste trinnet er å legge til klientens offentlige nøkkel og IP-adresse på serveren. For å gjøre det, kjør følgende kommando på Debian-serveren:
sudo wg sett wg0 peer CLIENT_PUBLIC_KEY tillatt-ips 10.0.0.2
Sørg for å endre CLIENT_PUBLIC_KEY
med den offentlige nøkkelen du genererte på klientmaskinen (sudo cat / etc / wireguard / publickey
) og juster klientens IP-adresse hvis den er annerledes. Windows-brukere kan kopiere den offentlige nøkkelen fra WireGuard-applikasjonen.
Når du er ferdig, gå tilbake til klientmaskinen og ta opp tunnelgrensesnittet.
Linux- og macOS-klienter #
Kjør følgende kommando for å få opp grensesnittet:
sudo wg-quick up wg0
Nå skal du være koblet til Debian-serveren, og trafikken fra klientmaskinen din skal dirigeres gjennom den. Du kan sjekke forbindelsen med:
sudo wg
grensesnitt: wg0 offentlig nøkkel: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = privat nøkkel: (skjult) lytteport: 53527 fwmark: 0xca6c peer: r3imyh3MCYggaZACmkx + CxlD6uAgICgmg = PgQgAgQpQgAg.XXX.XXX.XXX: 51820 tillatt ips: 0.0.0.0/0 siste håndtrykk: 53 sekunder siden overføring: 3.23 KiB mottatt, 3.50 KiB sendt
Du kan også åpne nettleseren din, skrive “hva er min ip”, og du bør se IP-adressen til Debian-serveren.
Ta ned tunnelen for å stoppe tunnelen wg0
grensesnitt:
sudo wg-quick ned wg0
Windows-klienter #
Hvis du installerte WireGuard på Windows, klikker du på “Aktiver” -knappen. Når jevnaldrende er koblet til, vil tunnelstatusen endres til Aktiv:
Konklusjon #
Vi har vist deg hvordan du installerer WireGuard på Debian 10 og konfigurerer det som en VPN-server. Dette oppsettet lar deg surfe på nettet anonymt ved å holde trafikkdataene dine private.
Hvis du har noen problemer, er du velkommen til å legge igjen en kommentar.