WireGuard er en generel VPN (Virtual Private Network), der bruger avanceret kryptografi. Sammenlignet med andre populære VPN-løsninger, såsom IPsec og OpenVPN, er WireGuard generelt hurtigere, lettere at konfigurere og har et mindre fodaftryk. Det er på tværs af platforme og kan køre næsten overalt, inklusive Linux, Windows, Android og macOS.
Wireguard er en peer-to-peer VPN; det bruger ikke klientservermodellen. Afhængigt af konfigurationen kan en peer fungere som en traditionel server eller klient. Det fungerer ved at oprette en netværksgrænseflade på hver peer-enhed, der fungerer som en tunnel. Kammerater godkender hinanden ved at udveksle og validere offentlige nøgler og efterligne SSH-modellen. Offentlige nøgler kortlægges med en liste over IP-adresser, der er tilladt i tunnelen. VPN-trafikken er indkapslet i UDP.
Denne artikel forklarer, hvordan du installerer og konfigurerer WireGuard på Debian 10, der fungerer som en VPN-server. Vi viser dig også, hvordan du konfigurerer WireGuard som klient på Linux, Windows og macOS. Klientens trafik dirigeres via Debian 10-serveren.
Denne opsætning kan bruges som en beskyttelse mod Man in the Middle angreb, surfe på nettet anonymt, omgå Geo-begrænset indhold eller lade dine kolleger, der arbejder hjemmefra, oprette forbindelse til virksomhedsnetværket sikkert.
Forudsætninger #
For at følge denne vejledning skal du have en maskine med Debian 10 installeret. Du har også brug for root eller [sudo-adgang] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / for at installere pakker og foretage ændringer i systemet.
Opsætning af WireGuard Server #
Vi starter med at installere WireGuard-pakken på Debian-maskinen og indstille den til at fungere som en server. Vi konfigurerer også systemet til at dirigere kundernes trafik gennem det.
Installer WireGuard på Debian 10 #
WireGuard er tilgængelig fra Debian backports repositories. For at tilføje lageret til dit system skal du køre:
ekko 'deb http: // ftp.debian.org / debian buster-backports main '| sudo tee / etc / apt / sources.liste.d / buster-backports.liste
Når arkivet er aktiveret, skal du opdatere apt-cachen og installere WireGuard-modulet og værktøjerne:
WireGuard kører som et kernemodul.sudo apt opdatering
sudo apt installere wireguard
Konfiguration af WireGuard #
Du kan konfigurere og administrere WireGuard-grænsefladerne med wg
og wg-hurtig
kommandolinjeværktøjer.
Hver enhed i WireGuard VPN-netværket skal have en privat og offentlig nøgle. Kør følgende kommando for at generere nøgleparret:
wg nøgle | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Filerne genereres i / etc / wireguard
vejviser. Brug kat
eller mindre
kommandoer til at se indholdet af filerne. Den private nøgle skal aldrig deles med nogen og skal altid opbevares sikker.
Wireguard understøtter også en præ-delt nøgle, som tilføjer et ekstra lag af symmetrisk nøglekryptografi. Denne nøgle er valgfri og skal være unik for hvert peer-par.
Det næste trin er at konfigurere tunnelenheden, der dirigerer VPN-trafikken.
Enheden kan konfigureres enten fra kommandolinjen ved hjælp af ip
og wg
kommandoer eller ved manuelt at oprette konfigurationsfilen. Vi opretter konfigurationen med en teksteditor.
Åbn din editor og opret en ny fil med navnet wg0.konf
med følgende indhold:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Interface] 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 navngive grænsefladen, hvad du vil. Det anbefales dog at bruge noget lignende wg0
eller wgvpn0
.
Indstillingerne i grænsefladesektionen har følgende betydning:
Adresse - En kommasepareret liste over v4- eller v6-IP-adresser til
wg0
interface. Du kan du en IP-adresse fra et interval, der er reserveret til de private netværk (10.0.0.0/8, 172.16.0.0/12 eller 192.168.0.0/16).ListenPort - lytteporten.
PrivateKey - En privat nøgle genereret af
wg nøgle
kommando. (For at se indholdet af filtypen:sudo cat / etc / wireguard / privatekey
)SaveConfig - Når den er indstillet til sand, gemmes den aktuelle tilstand af grænsefladen i konfigurationsfilen, når den lukkes ned.
PostUp - Kommando eller script, der udføres, før interface bringes op. I dette eksempel bruger vi iptables til at muliggøre masquerading. Dette tillader trafik at forlade serveren, hvilket giver VPN-klienter adgang til Internettet.
Sørg for at udskifte den
ens3
efter-En POSTROUTING
for at matche navnet på din offentlige netværksgrænseflade. Du kan nemt finde grænsefladen med:ip -o -4 rute viser til standard | awk 'print $ 5'
PostDown - En kommando eller et script, der udføres, før interface bringes ned. Reglerne for iptables fjernes, når grænsefladen er nede.
Det wg0.konf
og privat husholdning
filer bør ikke kunne læses for normale brugere. Brug chmod
for at indstille filtilladelserne til 600
:
sudo chmod 600 / etc / wireguard / privatekey, wg0.conf
Når du er færdig, skal du bringe wg0
interface op ved hjælp af de attributter, der er angivet i konfigurationsfilen:
sudo wg-hurtig op wg0
Outputtet ser sådan ud:
[#] ip link tilføj wg0 type wireguard [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 adresse tilføj 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 op dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
For at kontrollere interface-tilstand og konfiguration skal du køre:
sudo wg viser wg0
grænseflade: wg0 offentlig nøgle: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = privat nøgle: (skjult) lytteport: 51820
Du kan også kontrollere interface-tilstanden med ip et show wg0
:
ip et show wg0
4: wg0: mtu 1420 qdisc noqueue state Ukendt gruppe standard qlen 1000 link / ingen inet 10.0.0.1/24 scope global wg0 valid_lft for altid foretrukket_lft for evigt
WireGuard kan styres med Systemd. For at bringe WireGuard-grænsefladen ved opstartstid skal du køre følgende kommando:
sudo systemctl aktiver wg-hurtig @ wg0
Servernetværk og firewallkonfiguration #
IP-videresendelse skal være aktiveret for at NAT kan fungere. Åbn / etc / sysctl.konf
fil og tilføj eller fjern kommentar til følgende linje:
sudo nano / etc / sysctl.konf
/ etc / sysctl.konfnet.ipv4.ip_forward = 1
Gem filen og anvend ændringen:
sudo sysctl -p
net.ipv4.ip_forward = 1
Hvis du bruger UFW til at administrere din firewall, skal du åbne UDP-trafik på port 51820
:
sudo ufw tillad 51820 / udp
Det er det. Den Debian-peer, der fungerer som en server, er oprettet.
Opsætning af Linux og macOS-klienter #
Installationsvejledningen til alle understøttede platforme er tilgængelig på https: // wireguard.com / installer / . På Linux-systemer kan du installere pakken ved hjælp af distributionspakkehåndteringen og på macOS med brygge
.
Når du er installeret, skal du følge nedenstående trin for at konfigurere klientenheden.
Processen til opsætning af en Linux- og macOS-klient er stort set den samme som du gjorde for serveren. Generér først de offentlige og private nøgler:
wg nøgle | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
Opret filen wg0.konf
og tilføj følgende indhold:
sudo nano / etc / wireguard / wg0.konf
/ etc / wireguard / wg0.konf[Interface] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Slutpunkt = SERVER_IP_ADDRESS: 51820 TilladtIPs = 0.0.0.0/0
Indstillingerne i grænsefladesektionen har samme betydning som ved opsætning af serveren:
- Adresse - En komma-adskilt liste over v4- eller v6-IP-adresser til
wg0
interface. - PrivateKey - For at se indholdet af filen på klientmaskinen skal du køre:
sudo cat / etc / wireguard / privatekey
Peer-sektionen indeholder følgende felter:
- PublicKey - En offentlig nøgle til den peer, du vil oprette forbindelse til. (Indholdet på serveren
/ etc / wireguard / publickey
fil). - Slutpunkt - Et IP- eller værtsnavn for den peer, du vil oprette forbindelse til, efterfulgt af et kolon og derefter et portnummer, som den eksterne peer lytter til.
- TilladteIP'er - En komma-adskilt liste over v4- eller v6-IP-adresser, hvorfra indgående trafik for peer er tilladt, og til hvilken udgående trafik for denne peer er rettet. Vi bruger 0.0.0.0/0 fordi vi dirigerer trafikken og ønsker, at serverens peer sender pakker med en hvilken som helst kilde-IP.
Hvis du har brug for at konfigurere yderligere klienter, skal du bare gentage de samme trin ved hjælp af en anden privat IP-adresse.
Windows Clients opsætningsnummer #
Download og installer Windows msi-pakken fra WireGuard-webstedet .
Når du er installeret, skal du åbne WireGuard-applikationen og klikke på "Tilføj tunnel" -> "Tilføj tom tunnel ..." som vist på billedet nedenfor:
Et publickey-par oprettes automatisk og vises på skærmen.
Indtast et navn til tunnelen, og rediger konfigurationen som følger:
[Interface] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Slutpunkt = SERVER_IP_ADDRESS: 51820 TilladtIPs = 0.0.0.0/0
I grænsefladesektionen skal du tilføje en ny linje for at definere klienttunneladressen.
I peer-sektionen skal du tilføje følgende felter:
- PublicKey - Debian-serverens offentlige nøgle (
/ etc / wireguard / publickey
fil). - Slutpunkt - IP-adressen på Debian-serveren efterfulgt af en kolon- og WireGuard-port (51820).
- Tilladte IP-er - 0.0.0.0/0
Når du er færdig, skal du klikke på knappen "Gem".
Føj klientpeer til serveren #
Det sidste trin er at tilføje klientens offentlige nøgle og IP-adresse til serveren. For at gøre det skal du køre følgende kommando på Debian-serveren:
sudo wg sæt wg0 peer CLIENT_PUBLIC_KEY tilladt-ips 10.0.0.2
Sørg for at ændre CLIENT_PUBLIC_KEY
med den offentlige nøgle, du genererede på klientmaskinen (sudo cat / etc / wireguard / publickey
) og juster klientens IP-adresse, hvis den er anderledes. Windows-brugere kan kopiere den offentlige nøgle fra WireGuard-applikationen.
Når du er færdig, skal du gå tilbage til klientmaskinen og åbne tunnelgrænsefladen.
Linux- og macOS-klienter #
Kør følgende kommando for at bringe grænsefladen op:
sudo wg-hurtig op wg0
Nu skal du være forbundet til Debian-serveren, og trafikken fra din klientmaskine skal dirigeres gennem den. Du kan kontrollere forbindelsen med:
sudo wg
grænseflade: wg0 offentlig nøgle: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = privat nøgle: (skjult) lytteport: 53527 fwmark: 0xca6c peer: r3imyh3MCYggaZACmkx + CxlD6uAgICgmqxgpg: P3gAp =.XXX.XXX.XXX: 51820 tilladt ips: 0.0.0.0/0 seneste handshake: 53 sekunder siden overførsel: 3.23 KiB modtaget, 3.50 KiB sendt
Du kan også åbne din browser, skrive "hvad er min ip", og du skal se din IP-adresse på Debian-serveren.
For at stoppe tunnellen skal du bringe ned wg0
grænseflade:
sudo wg-hurtig ned wg0
Windows-klienter #
Hvis du installerede WireGuard i Windows, skal du klikke på knappen “Aktivér”. Når jævnaldrende er tilsluttet, ændres tunnelstatus til Aktiv:
Konklusion #
Vi har vist dig, hvordan du installerer WireGuard på Debian 10 og konfigurerer det som en VPN-server. Denne opsætning giver dig mulighed for at surfe anonymt på nettet ved at holde dine trafikdata private.
Hvis du har problemer, er du velkommen til at efterlade en kommentar.