Inleiding
WireGuard is een lichtgewicht Virtueel Privénetwerk (VPN) dat IPv4- en IPv6-verbindingen ondersteunt. Een VPN stelt je in staat om onbetrouwbare netwerken te doorkruisen alsof je op een privénetwerk bent. Het geeft je de vrijheid om veilig en beveiligd toegang te krijgen tot internet vanaf je smartphone of laptop wanneer je verbonden bent met een onbetrouwbaar netwerk, zoals het WiFi-netwerk in een hotel of een café.
De versleuteling van WireGuard berust op openbare en privésleutels voor peers om een versleutelde tunnel tussen henzelf tot stand te brengen. Elke versie van WireGuard maakt gebruik van een specifiek cryptografisch cijfersuite om eenvoud, veiligheid en compatibiliteit met peers te garanderen.
Ter vergelijking, andere VPN-software zoals OpenVPN en IPSec maken gebruik van Transport Layer Security (TLS) en certificaten om geauthenticeerde en versleutelde tunnels tussen systemen tot stand te brengen. Verschillende versies van TLS bieden ondersteuning voor honderden verschillende cryptografische suites en algoritmen, en hoewel dit een grote flexibiliteit mogelijk maakt om verschillende clients te ondersteunen, maakt het ook het configureren van een VPN dat TLS gebruikt tijdrovender, complexer en foutgevoeliger.
In deze zelfstudie ga je WireGuard instellen op een Ubuntu 22.04-server en vervolgens een andere machine configureren om ermee te verbinden als een peer met zowel IPv4- als IPv6-verbindingen (vaak aangeduid als een dual stack-verbinding). Je leert ook hoe je het internetverkeer van de peer kunt routeren via de WireGuard-server in een gatewayconfiguratie, naast het gebruik van de VPN voor een versleutelde peer-to-peer-tunnel.
Voor de doeleinden van deze zelfstudie zullen we een ander Ubuntu 22.04-systeem configureren als de peer (ook wel client genoemd) naar de WireGuard-server. Volgende tutorials in deze serie zullen uitleggen hoe WireGuard te installeren en uit te voeren op Windows, macOS, Android en iOS systemen en apparaten.
Let op: Als je van plan bent om WireGuard op een DigitalOcean Droplet in te stellen, wees je er dan van bewust dat wij, net als veel hostingproviders, kosten in rekening brengen voor dataverkeeroverschrijdingen. Om deze reden moet je letten op hoeveel verkeer je server verwerkt. Zie deze pagina voor meer informatie.
Vereisten
Om deze zelfstudie te volgen, heb je nodig:
- Een Ubuntu 22.04-server met een sudo niet-rootgebruiker en een ingeschakelde firewall. Om dit in te stellen, kun je onze Initiële Serverinstellingen met Ubuntu 22.04 zelfstudie volgen. We zullen hier in deze handleiding naar verwijzen als de WireGuard-server.
- Je hebt een client machine nodig waarmee je verbinding maakt met je WireGuard Server. In deze tutorial zullen we naar deze machine verwijzen als de WireGuard Peer. Voor deze tutorial wordt het aanbevolen om je lokale machine te gebruiken als de WireGuard Peer, maar je kunt ook externe servers of mobiele telefoons als clients gebruiken als je dat liever hebt. Als je een extern systeem gebruikt, zorg er dan voor dat je alle optionele secties later in deze tutorial volgt, anders loop je het risico dat je jezelf buitensluit van het systeem.
- Om WireGuard te gebruiken met IPv6, moet je er ook voor zorgen dat je server is geconfigureerd om dat type verkeer te ondersteunen. Als je IPv6-ondersteuning met WireGuard wilt inschakelen en je een DigitalOcean Droplet gebruikt, raadpleeg dan deze documentatiepagina Hoe IPv6 op Droplets in te schakelen. Je kunt IPv6-ondersteuning toevoegen bij het maken van een Droplet, of nadien met behulp van de instructies op die pagina.
Stap 1 — WireGuard installeren en een sleutelpaar genereren
De eerste stap in deze tutorial is het installeren van WireGuard op je server. Om te beginnen, werk de pakketindex van je WireGuard Server bij en installeer WireGuard met behulp van de volgende commando’s. Mogelijk wordt je gevraagd om het wachtwoord van je sudo-gebruiker in te voeren als dit de eerste keer is dat je sudo
in deze sessie gebruikt:
Nu je WireGuard geïnstalleerd hebt, is de volgende stap het genereren van een privé- en openbare sleutelpaar voor de server. Je zult de ingebouwde opdrachten wg genkey
en wg pubkey
gebruiken om de sleutels te maken, en vervolgens de privésleutel toevoegen aan het configuratiebestand van WireGuard.
Je moet ook de machtigingen op de sleutel die je zojuist hebt gemaakt, wijzigen met behulp van de chmod
opdracht, aangezien het bestand standaard leesbaar is voor elke gebruiker op je server.
Maak de privésleutel voor WireGuard aan en wijzig de machtigingen met de volgende opdrachten:
De sudo chmod go=...
opdracht verwijdert alle machtigingen op het bestand voor gebruikers en groepen anders dan de rootgebruiker om ervoor te zorgen dat alleen deze toegang heeft tot de privésleutel.
Je zou een enkele regel van base64 gecodeerde uitvoer moeten ontvangen, wat de privésleutel is. Een kopie van de uitvoer wordt ook opgeslagen in het bestand /etc/wireguard/private.key
voor toekomstige referentie door het tee
gedeelte van de opdracht. Maak zorgvuldig een notitie van de privésleutel die wordt weergegeven, aangezien je deze later in dit gedeelte aan het configuratiebestand van WireGuard moet toevoegen.
De volgende stap is het maken van de overeenkomstige openbare sleutel, die is afgeleid van de privésleutel. Gebruik de volgende opdracht om het bestand met de openbare sleutel te maken:
Deze opdracht bestaat uit drie afzonderlijke opdrachten die aan elkaar zijn gekoppeld met behulp van de |
(pipe) operator:
sudo cat /etc/wireguard/private.key
: deze opdracht leest het privésleutelbestand en geeft het uit naar de standaarduitvoer-stroom.wg pubkey
: de tweede opdracht neemt de uitvoer van de eerste opdracht als zijn standaardinvoer en verwerkt deze om een openbare sleutel te genereren.sudo tee /etc/wireguard/public.key
: de laatste opdracht neemt de uitvoer van de opdracht voor het genereren van de openbare sleutel en stuurt deze door naar het bestand genaamd/etc/wireguard/public.key
.
Wanneer je de opdracht uitvoert, ontvang je opnieuw een enkele regel met base64
gecodeerde uitvoer, dit is de openbare sleutel voor je WireGuard-server. Kopieer deze ergens als referentie, aangezien je de openbare sleutel moet verspreiden naar elke peer die verbinding maakt met de server.
Stap 2 — Het kiezen van IPv4- en IPv6-adressen
In het vorige gedeelte heb je WireGuard geïnstalleerd en een sleutelpaar gegenereerd dat zal worden gebruikt om verkeer van en naar de server te versleutelen. In dit gedeelte maak je een configuratiebestand voor de server aan en stel je WireGuard in om automatisch op te starten wanneer je server opnieuw wordt opgestart. Je zult ook privé IPv4- en IPv6-adressen definiëren die je met je WireGuard-server en peers kunt gebruiken.
Als u van plan bent zowel IPv4- als IPv6-adressen te gebruiken, volg dan beide van deze secties. Anders volgt u de instructies in de juiste sectie voor de netwerkbehoeften van uw VPN.
Stap 2(a) – Het kiezen van een IPv4-bereik
Als u uw WireGuard-server gebruikt met IPv4-peers, heeft de server een reeks privé-IPv4-adressen nodig om te gebruiken voor cliënten en voor zijn tunnelinterface. U kunt elke reeks IP-adressen kiezen uit de volgende gereserveerde blokken adressen (als u meer wilt weten over hoe deze blokken zijn toegewezen, bezoek dan de RFC 1918-specificatie):
10.0.0.0
tot10.255.255.255
(10/8 prefix)172.16.0.0
tot172.31.255.255
(172.16/12 prefix)192.168.0.0
tot192.168.255.255
(192.168/16 prefix)
Voor de doeleinden van deze handleiding zullen we 10.8.0.0/24
gebruiken als een blok IP-adressen uit het eerste bereik van gereserveerde IP’s. Deze reeks zal tot 255 verschillende peer-verbindingen toestaan, en mag over het algemeen geen overlappende of conflicterende adressen hebben met andere privé-IP-bereiken. Voel u vrij om een reeks adressen te kiezen die werkt met uw netwerkconfiguratie als dit voorbeeldbereik niet compatibel is met uw netwerken.
De WireGuard-server zal een enkel IP-adres uit het bereik gebruiken voor zijn privétunnel IPv4-adres. We zullen hier 10.8.0.1/24
gebruiken, maar elk adres in het bereik van 10.8.0.1
tot 10.8.0.255
kan worden gebruikt. Maak een notitie van het IP-adres dat u kiest als u iets anders gebruikt dan 10.8.0.1/24
. U voegt dit IPv4-adres toe aan het configuratiebestand dat u definieert in Stap 3 — Het maken van een WireGuard-serverconfiguratie.
Stap 2(b) — Het kiezen van een IPv6-bereik
Als u WireGuard gebruikt met IPv6, dan moet u een uniek lokaal IPv6-unicastadres voorvoegsel genereren op basis van het algoritme in RFC 4193. De adressen die u met WireGuard gebruikt, worden geassocieerd met een virtuele tunnelinterface. U moet een aantal stappen voltooien om een willekeurig, uniek IPv6-voorvoegsel te genereren binnen het gereserveerde fd00::/8
-blok van privé-IPv6-adressen.
Volgens de RFC is de aanbevolen manier om een uniek IPv6-voorvoegsel te verkrijgen om de tijd van de dag te combineren met een unieke identificerende waarde van een systeem zoals een serienummer of apparaat-ID. Die waarden worden vervolgens gehasht en afgekapt, resulterend in een set bits die kunnen worden gebruikt als een uniek adres binnen het gereserveerde privé fd00::/8
-blok van IP’s.
Om te beginnen met het genereren van een IPv6-reeks voor uw WireGuard-server, verzamelt u een 64-bits tijdstempel met behulp van het date
-hulpprogramma met de volgende opdracht:
U ontvangt een nummer zoals het volgende, dat het aantal seconden (de %s
in het date
-commando) en nanoseconden (de %N
) sinds 1970-01-01 00:00:00 UTC samengevoegd is:
Output1650301699497770167
Neem de waarde ergens op voor later gebruik in deze sectie. Kopieer vervolgens de machine-id
-waarde voor uw server uit het bestand /var/lib/dbus/machine-id
. Deze identificator is uniek voor uw systeem en mag gedurende de levensduur van de server niet veranderen.
U ontvangt output zoals het volgende:
/var/lib/dbus/machine-id610cef4946ed46da8f71dba9d66c67fb
Nu moet u de tijdstempel combineren met de machine-id
en de resulterende waarde hashen met behulp van het SHA-1 algoritme. Het commando zal het volgende formaat gebruiken:
printf <timestamp><machine-id> | sha1sum
Voer het commando uit met inbegrip van uw tijdstempel- en machine-identiteitswaarden:
U ontvangt een hashwaarde zoals het volgende:
Output442adea1488d96388dae9ab816045b24609a6c18 -
Merk op dat de uitvoer van het sha1sum
-commando in hexadecimale notatie is, dus de uitvoer gebruikt twee tekens om een enkele byte aan gegevens voor te stellen. Bijvoorbeeld 4f
en 26
in de voorbeelduitvoer zijn de eerste twee bytes van de gehashte gegevens.
Het algoritme in de RFC vereist alleen de minst significante (achterste) 40 bits, of 5 bytes, van de gehashte uitvoer. Gebruik het cut
-commando om de laatste 5 hexadecimaal gecodeerde bytes van de hash af te drukken:
Het -c
argument vertelt het cut
commando om alleen een specifieke reeks karakters te selecteren. Het argument 31-
vertelt cut
om alle karakters van positie 31 tot het einde van de invoerregel af te drukken.
Je zou uitvoer moeten ontvangen zoals het volgende:
Output24609a6c18
In deze voorbeelduitvoer is de reeks bytes: 24 60 9a 6c 18
.
Nu kun je je unieke IPv6-netwerkvoorvoegsel construeren door de 5 bytes die je hebt gegenereerd aan de fd
voorvoegsel toe te voegen, waarbij je elke 2 bytes scheidt met een :
colon voor leesbaarheid. Omdat elk subnet in je unieke voorvoegsel in totaal 18.446.744.073.709.551.616 mogelijke IPv6-adressen kan bevatten, kun je het subnet beperken tot een standaardgrootte van /64
voor eenvoud.
Met de bytes die eerder zijn gegenereerd met de /64
subnetgrootte, zal het resulterende voorvoegsel het volgende zijn:
Unique Local IPv6 Address Prefixfd24:609a:6c18::/64
Deze fd24:609a:6c18::/64
reeks is wat je zult gebruiken om individuele IP-adressen toe te wijzen aan je WireGuard-tunnelinterfaces op de server en peers. Om een IP toe te wijzen aan de server, voeg een 1
toe na de laatste ::
karakters. Het resulterende adres zal zijn fd24:609a:6c18::1/64
. Peers kunnen elk IP in het bereik gebruiken, maar meestal verhoog je de waarde telkens met één wanneer je een peer toevoegt, bijvoorbeeld fd24:609a:6c18::2/64
. Maak een aantekening van het IP-adres en ga verder met het configureren van de WireGuard Server in het volgende gedeelte van deze handleiding.
Stap 3 – Het maken van een WireGuard Server Configuratie
Voordat u de configuratie van uw WireGuard-server maakt, heeft u de volgende informatie nodig:
-
Zorg ervoor dat u de privésleutel beschikbaar heeft van Stap 1 – WireGuard installeren en een sleutelpaar genereren.
-
Als u WireGuard gebruikt met IPv4, heeft u het IP-adres nodig dat u voor de server heeft gekozen in Stap 2(a) – Het kiezen van een IPv4-bereik, wat in dit voorbeeld
10.8.0.1/24
is. -
Als u WireGuard gebruikt met IPv6, heeft u het IP-adres voor de server nodig dat u heeft gegenereerd in Stap 2(b) – Het kiezen van een IPv6-bereik. In dit voorbeeld is het IP
fd24:609a:6c18::1/64
.
Zodra u de vereiste privésleutel en IP-adressen heeft, maakt u een nieuw configuratiebestand met nano
of uw voorkeurseditor door het volgende commando uit te voeren:
Voeg de volgende regels toe aan het bestand, waarbij u uw privésleutel vervangt door de gemarkeerde base64_encoded_private_key_goes_here
waarde, en de IP-adressen op de Address
regel. U kunt ook de ListenPort
regel wijzigen als u wilt dat WireGuard beschikbaar is op een ander poort:
/etc/wireguard/wg0.conf[Interface]
PrivateKey = base64_encoded_private_key_goes_here
Address = 10.8.0.1/24, fd24:609a:6c18::1/64
ListenPort = 51820
SaveConfig = true
De SaveConfig
regel zorgt ervoor dat wanneer een WireGuard-interface wordt afgesloten, eventuele wijzigingen worden opgeslagen in het configuratiebestand.
Sla het bestand /etc/wireguard/wg0.conf
op en sluit het af. Als u nano
gebruikt, kunt u dit doen met CTRL+X
, dan Y
en ENTER
om te bevestigen. U heeft nu een initiële serverconfiguratie die u kunt uitbreiden, afhankelijk van hoe u van plan bent uw WireGuard VPN-server te gebruiken.
Stap 4 – Aanpassen van de netwerkconfiguratie van de WireGuard-server
Als u WireGuard gebruikt om een peer te verbinden met de WireGuard-server om alleen toegang te krijgen tot services op de server, dan hoeft u deze sectie niet te voltooien. Als u echter het internetverkeer van uw WireGuard-peer via de WireGuard-server wilt routeren, moet u IP-doorsturing configureren door deze sectie van de tutorial te volgen.
Om doorsturing te configureren, opent u het bestand /etc/sysctl.conf
met nano
of uw voorkeurseditor:
Als u IPv4 gebruikt met WireGuard, voegt u de volgende regel toe aan het einde van het bestand:
net.ipv4.ip_forward=1
Als u IPv6 gebruikt met WireGuard, voegt u deze regel toe aan het einde van het bestand:
net.ipv6.conf.all.forwarding=1
Als u zowel IPv4 als IPv6 gebruikt, zorg er dan voor dat u beide regels opneemt. Sla het bestand op en sluit het af wanneer u klaar bent.
Om het bestand te lezen en de nieuwe waarden voor uw huidige terminalsessie te laden, voert u het volgende uit:
Outputnet.ipv6.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
Nu kan uw WireGuard-server inkomend verkeer van het virtuele VPN-ethernetapparaat doorsturen naar andere apparaten op de server, en vandaar naar het openbare internet. Met deze configuratie kunt u al het webverkeer van uw WireGuard-peer routeren via het IP-adres van uw server, en het publieke IP-adres van uw client wordt effectief verborgen.
Voordat het verkeer echter correct via uw server kan worden gerouteerd, moet u enkele firewallregels configureren. Deze regels zorgen ervoor dat het verkeer naar en van uw WireGuard-server en peers goed verloopt.
Stap 5 — Configuratie van de Firewall van de WireGuard-server
In deze sectie zult u de configuratie van de WireGuard-server bewerken om firewallregels toe te voegen die ervoor zorgen dat het verkeer van en naar de server en de clients correct wordt gerouteerd. Zoals in de vorige sectie, sla deze stap over als u uw WireGuard VPN alleen gebruikt voor een machine-naar-machineverbinding om toegang te krijgen tot bronnen die beperkt zijn tot uw VPN.
Om WireGuard VPN-verkeer door de firewall van de server toe te staan, moet u masquerading inschakelen, wat een iptables-concept is dat dynamische netwerkadresvertaling (NAT) biedt om clientverbindingen correct te routeren.
Zoek eerst de openbare netwerkinterface van uw WireGuard-server met het subcommando ip route
:
De openbare interface is de string die binnen de uitvoer van dit commando volgt op het woord “dev”. Bijvoorbeeld, dit resultaat toont de interface genaamd eth0
, die hieronder is gemarkeerd:
Outputdefault via 203.0.113.1 dev eth0 proto static
Onthoud de naam van uw apparaat, omdat u deze in de volgende stap aan de iptables
-regels zult toevoegen.
Om firewallregels toe te voegen aan uw WireGuard-server, opent u opnieuw het bestand /etc/wireguard/wg0.conf
met nano
of uw voorkeurseditor.
Plak onderaan het bestand, na de regel SaveConfig = true
, de volgende regels:
/etc/wireguard/wg0.conf. . .
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
De regels PostUp
worden uitgevoerd wanneer de WireGuard-server de virtuele VPN-tunnel start. In het voorbeeld hier worden drie ufw
– en iptables
-regels toegevoegd:
ufw route allow in on wg0 uit op eth0
– Deze regel staat het doorsturen van IPv4- en IPv6-verkeer toe dat binnenkomt op dewg0
VPN-interface naar de netwerkinterfaceeth0
op de server. Het werkt in samenwerking met denet.ipv4.ip_forward
ennet.ipv6.conf.all.forwarding
sysctl-waarden die u heeft geconfigureerd in de vorige sectie.iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
– Deze regel configureert masquerading en herschrijft IPv4-verkeer dat binnenkomt op dewg0
VPN-interface zodat het lijkt alsof het rechtstreeks afkomstig is van het openbare IPv4-adres van de WireGuard-server.ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
– Deze regel configureert masquerading en herschrijft IPv6-verkeer dat binnenkomt op dewg0
VPN-interface zodat het lijkt alsof het rechtstreeks afkomstig is van het openbare IPv6-adres van de WireGuard-server.
De regels PreDown
worden uitgevoerd wanneer de WireGuard-server de virtuele VPN-tunnel stopt. Deze regels zijn het tegenovergestelde van de PostUp
-regels en dienen om de doorstuur- en masquerading-regels voor de VPN-interface ongedaan te maken wanneer de VPN wordt gestopt.
In beide gevallen bewerkt u de configuratie om de IPv4- en IPv6-regels toe te voegen of uit te sluiten die geschikt zijn voor uw VPN. Als u bijvoorbeeld alleen IPv4 gebruikt, kunt u de regels met de ip6tables
-opdrachten uitsluiten.
Omgekeerd, als je alleen IPv6 gebruikt, bewerk dan de configuratie om alleen de ip6tables
commando’s op te nemen. De ufw
regels moeten bestaan voor elke combinatie van IPv4- en IPv6-netwerken. Sla het bestand op en sluit het af wanneer je klaar bent.
Het laatste onderdeel van het configureren van de firewall op je WireGuard-server is om verkeer van en naar de WireGuard UDP-poort zelf toe te staan. Als je de poort niet hebt gewijzigd in het bestand /etc/wireguard/wg0.conf
van de server, is de poort die je zult openen 51820
. Als je een andere poort hebt gekozen bij het bewerken van de configuratie, zorg er dan voor dat je deze vervangt in het volgende UFW-commando.
Als je bent vergeten om de SSH-poort te openen bij het volgen van de vereiste tutorial, voeg deze dan hier ook toe:
Opmerking: Als je een andere firewall gebruikt of je UFW-configuratie hebt aangepast, moet je mogelijk aanvullende firewallregels toevoegen. Bijvoorbeeld, als je besluit al het netwerkverkeer via de VPN-verbinding te tunnelen, moet je ervoor zorgen dat poort 53
verkeer is toegestaan voor DNS-verzoeken, en poorten zoals 80
en 443
voor respectievelijk HTTP- en HTTPS-verkeer. Als er andere protocollen zijn die je via de VPN gebruikt, moet je ook regels voor hen toevoegen.
Na het toevoegen van die regels, schakel UFW uit en weer in om het te herstarten en de wijzigingen uit alle bestanden die je hebt gewijzigd te laden:
Je kunt bevestigen dat de regels van kracht zijn door het ufw status
commando uit te voeren. Voer het uit en je zou output moeten ontvangen zoals het volgende:
OutputStatus: active
To Action From
-- ------ ----
51280/udp ALLOW Anywhere
22/tcp ALLOW Anywhere
51280/udp (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
Uw WireGuard-server is nu geconfigureerd om het verkeer van de VPN correct te verwerken, inclusief het doorsturen en maskeren voor peers. Met de firewallregels op hun plaats kunt u de WireGuard-service zelf starten om te luisteren naar peerverbindingen.
Stap 6 — Het starten van de WireGuard-server
WireGuard kan geconfigureerd worden om te draaien als een systemd
-service met behulp van zijn ingebouwde wg-quick
-script. Hoewel u handmatig het wg
-commando zou kunnen gebruiken om de tunnel te maken telkens wanneer u de VPN wilt gebruiken, is dit een handmatig proces dat repetitief en foutgevoelig wordt. In plaats daarvan kunt u systemctl
gebruiken om de tunnel te beheren met behulp van het wg-quick
-script.
Het gebruiken van een systemd
-service betekent dat u WireGuard kunt configureren om op te starten bij het opstarten zodat u op elk moment verbinding kunt maken met uw VPN zolang de server draait. Om dit te doen, schakelt u de wg-quick
-service in voor de wg0
-tunnel die u hebt gedefinieerd door deze toe te voegen aan systemctl
:
Merk op dat het commando de naam van de tunnel specificeert wg0
als onderdeel van de servicenaam. Deze naam komt overeen met het configuratiebestand /etc/wireguard/wg0.conf
. Deze benadering van benoemen betekent dat u zoveel aparte VPN-tunnels kunt maken als u wilt met behulp van uw server.
Bijvoorbeeld, je zou een tunnelapparaat kunnen hebben met de naam prod
en het configuratiebestand zou /etc/wireguard/prod.conf
heten. Elke tunnelconfiguratie kan verschillende IPv4-, IPv6- en clientfirewallinstellingen bevatten. Op deze manier kunt u meerdere verschillende peer-verbindingen ondersteunen, elk met hun eigen unieke IP-adressen en routeringsregels.
Start nu de service:
Controleer dubbel dat de WireGuard-service actief is met het volgende commando. Je zou actief (lopend)
moeten zien in de output:
Output● [email protected] - WireGuard via wg-quick(8) for wg0
Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2022-04-18 17:22:13 UTC; 2s ago
Docs: man:wg-quick(8)
man:wg(8)
https://www.wireguard.com/
https://www.wireguard.com/quickstart/
https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
Process: 98834 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 98834 (code=exited, status=0/SUCCESS)
CPU: 193ms
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] wg setconf wg0 /dev/fd/63
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip -4 address add 10.8.0.1/24 dev wg0
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip -6 address add fd24:609a:6c18::1/64 dev wg0
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip link set mtu 1420 up dev wg0
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ufw route allow in on wg0 out on ens3
Apr 18 17:22:13 thats-my-jam wg-quick[98890]: Rule added
Apr 18 17:22:13 thats-my-jam wg-quick[98890]: Rule added (v6)
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE
Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip6tables -t nat -I POSTROUTING -o ens3 -j MASQUERADE
Apr 18 17:22:13 thats-my-jam systemd[1]: Finished WireGuard via wg-quick(8) for wg0.
De output toont de ip
commando’s die worden gebruikt om het virtuele apparaat wg0
te maken en het de IPv4- en IPv6-adressen toe te wijzen die u aan het configuratiebestand hebt toegevoegd. U kunt deze regels gebruiken om de tunnel te debuggen, of met het wg
commando zelf als u de VPN-interface handmatig wilt configureren.
Met de server geconfigureerd en actief, is de volgende stap om uw clientmachine te configureren als een WireGuard Peer en verbinding te maken met de WireGuard Server.
Stap 7 — Een WireGuard Peer configureren
Het configureren van een WireGuard-peer is vergelijkbaar met het instellen van de WireGuard-server. Zodra u de clientsoftware hebt geïnstalleerd, genereert u een openbare en een privésleutel, beslist u over een IP-adres of adressen voor de peer, definieert u een configuratiebestand voor de peer en start u vervolgens de tunnel met behulp van het wg-quick
script.
U kunt zoveel peers toevoegen als u wilt aan uw VPN door een sleutelpaar en configuratie te genereren met behulp van de volgende stappen. Als u meerdere peers aan de VPN toevoegt, zorg er dan voor dat u hun privé-IP-adressen bijhoudt om botsingen te voorkomen.
Om de WireGuard Peer te configureren, zorg ervoor dat u het WireGuard-pakket hebt geïnstalleerd met behulp van de volgende apt
commando’s. Op de WireGuard-peer voert u het volgende uit:
Het maken van het sleutelpaar van de WireGuard Peer
Vervolgens moet u het sleutelpaar genereren op de peer met dezelfde stappen als op de server. Vanaf uw lokale machine of externe server die als peer zal dienen, gaat u verder en maakt u de privésleutel voor de peer met de volgende commando’s:
Opnieuw ontvangt u een enkele regel met base64
gecodeerde uitvoer, wat de privésleutel is. Een kopie van de uitvoer wordt ook opgeslagen in het bestand /etc/wireguard/private.key
. Maak zorgvuldig een notitie van de privésleutel die wordt weergegeven, aangezien u deze later in dit gedeelte aan het configuratiebestand van WireGuard moet toevoegen.
Gebruik vervolgens het volgende commando om het bestand met de openbare sleutel te maken:
U ontvangt opnieuw een enkele regel met base64
gecodeerde uitvoer, wat de openbare sleutel is voor uw WireGuard Peer. Kopieer het ergens ter referentie, aangezien u de openbare sleutel aan de WireGuard Server moet distribueren om een versleutelde verbinding tot stand te brengen.
Het maken van het configuratiebestand voor de WireGuard-peer
Nu je een sleutelpaar hebt, kun je een configuratiebestand maken voor de peer dat alle informatie bevat die het nodig heeft om een verbinding met de WireGuard-server tot stand te brengen.
Je hebt een paar stukjes informatie nodig voor het configuratiebestand:
-
De privésleutel die je op de peer hebt gegenereerd en gecodeerd in
base64
. -
De IPv4- en IPv6-adresbereiken die je hebt gedefinieerd op de WireGuard-server.
-
De openbare sleutel van de WireGuard-server, gecodeerd in
base64
. -
Het openbare IP-adres en poortnummer van de WireGuard-server. Meestal zal dit het IPv4-adres zijn, maar als je server een IPv6-adres heeft en je clientmachine een IPv6-verbinding met het internet heeft, kun je dit in plaats van IPv4 gebruiken.
Met al deze informatie bij de hand, open een nieuw /etc/wireguard/wg0.conf
bestand op de WireGuard Peer machine met behulp van nano
of uw voorkeurseditor:
Voeg de volgende regels toe aan het bestand, waarbij u de verschillende gegevens vervangt in de gemarkeerde secties zoals vereist:
/etc/wireguard/wg0.conf[Interface]
PrivateKey = base64_encoded_peer_private_key_goes_here
Address = 10.8.0.2/24
Address = fd24:609a:6c18::2/64
[Peer]
PublicKey = U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
AllowedIPs = 10.8.0.0/24, fd24:609a:6c18::/64
Endpoint = 203.0.113.1:51820
Merk op hoe de eerste Address
-regel een IPv4-adres gebruikt van het 10.8.0.0/24
-subnet dat u eerder hebt gekozen. Dit IP-adres kan alles in het subnet zijn, zolang het maar verschilt van het IP van de server. Het is over het algemeen het gemakkelijkst om IP-adressen toe te wijzen door ze telkens met 1 te verhogen wanneer u een peer toevoegt.
Op dezelfde manier, merk op hoe de tweede Address
-regel een IPv6-adres gebruikt uit het subnet dat u eerder hebt gegenereerd, en het adres van de server met één verhoogt. Opnieuw is elk IP in het bereik geldig als u besluit een ander adres te gebruiken.
Het andere opmerkelijke deel van het bestand is de laatste AllowedIPs
-regel. Deze twee IPv4- en IPv6-bereiken geven de peer de opdracht om alleen verkeer via de VPN te verzenden als het doel systeem een IP-adres heeft in een van de bereiken. Met de AllowedIPs
-richtlijn kunt u de VPN op de peer beperken om alleen verbinding te maken met andere peers en services op de VPN, of u kunt de instelling configureren om al het verkeer via de VPN te tunnelen en de WireGuard Server als gateway te gebruiken.
Als u alleen IPv4 gebruikt, laat dan het achtervoegsel fd24:609a:6c18::/64
weg (inclusief de ,
komma). Omgekeerd, als u alleen IPv6 gebruikt, voeg dan alleen het prefix fd24:609a:6c18::/64
toe en laat het IPv4-bereik 10.8.0.0/24
weg.
In beide gevallen, als u al het verkeer van uw peer over de VPN wilt verzenden en de WireGuard-server als gateway voor al het verkeer wilt gebruiken, kunt u 0.0.0.0/0
gebruiken, wat het gehele IPv4-adresbereik vertegenwoordigt, en ::/0
voor het gehele IPv6-adresbereik.
(Optioneel) Het configureren van een peer om al het verkeer over de tunnel te routeren
Als u ervoor heeft gekozen om al het verkeer van de peer over de tunnel te routeren met behulp van de 0.0.0.0/0
of ::/0
routes en de peer een extern systeem is, dan moet u de stappen in deze sectie voltooien. Als uw peer een lokaal systeem is, is het het beste om deze sectie over te slaan.
Voor externe peers die u via SSH of een ander protocol bereikt met behulp van een openbaar IP-adres, moet u enkele extra regels toevoegen aan het wg0.conf
bestand van de peer. Met deze regels zorgt u ervoor dat u nog steeds verbinding kunt maken met het systeem van buiten de tunnel wanneer deze is verbonden. Anders, wanneer de tunnel is opgezet, wordt al het verkeer dat normaal gesproken via de openbare netwerkinterface wordt afgehandeld, niet correct gerouteerd om de wg0
tunnelinterface te omzeilen, wat leidt tot een ontoegankelijk extern systeem.
Ten eerste moet u het IP-adres bepalen dat het systeem gebruikt als zijn standaardgateway. Voer het volgende ip route
commando uit:
U ontvangt output zoals de volgende:
Outputdefault via 203.0.113.1 dev eth0 proto static
Let op het gemarkeerde IP-adres van de gateway 203.0.113.1
voor later gebruik, en het apparaat eth0
. De naam van uw apparaat kan verschillen. Indien dit het geval is, vervang het dan door de naam van uw apparaat in plaats van eth0
in de volgende commando’s.
Vind vervolgens het openbare IP-adres voor het systeem door het apparaat te bekijken met het ip address show
-commando:
U krijgt een uitvoer zoals het volgende:
Outputeth0 UP 203.0.113.5/20 10.20.30.40/16 2604:a880:400:d1::3d3:6001/64 fe80::68d5:beff:feff:974c/64
In dit voorbeeld is het gemarkeerde IP-adres 203.0.113.5
(zonder de achtervoeging /20
) het openbare adres dat is toegewezen aan het eth0
-apparaat dat u aan de WireGuard-configuratie moet toevoegen.
Open nu het configuratiebestand van de WireGuard-peer /etc/wireguard/wg0.conf
met nano
of uw voorkeurseditor.
Voor de [Peer]
-regel, voeg de volgende 4 regels toe:
PostUp = ip rule add table 200 from 203.0.113.5
PostUp = ip route add table 200 default via 203.0.113.1
PreDown = ip rule delete table 200 from 203.0.113.5
PreDown = ip route delete table 200 default via 203.0.113.1
[Peer]
. . .
Deze regels zullen een aangepaste routeringsregel creëren, en een aangepaste route toevoegen om ervoor te zorgen dat openbaar verkeer naar het systeem de standaardgateway gebruikt.
PostUp = ip rule add table 200 from 203.0.113.5
– Dit commando creëert een regel die controleert op eventuele routeringsvermeldingen in de tabel met nummer200
wanneer het IP overeenkomt met het openbare203.0.113.5
-adres van het systeem.PostUp = ip route add table 200 default via 203.0.113.1
– Dit commando zorgt ervoor dat alle verkeer dat wordt verwerkt door de tabel200
de203.0.113.1
-gateway gebruikt voor routering, in plaats van de WireGuard-interface.
De regels PreDown
verwijderen de aangepaste regel en route wanneer de tunnel wordt afgesloten.
Let op: Het tabelnummer 200
is willekeurig bij het opstellen van deze regels. U kunt een waarde tussen 2 en 252 gebruiken, of u kunt een aangepaste naam gebruiken door een label toe te voegen aan het bestand /etc/iproute2/rt_tables
en vervolgens te verwijzen naar de naam in plaats van de numerieke waarde.
Voor meer informatie over hoe routeringstabellen werken in Linux, bezoek de Routeringstabellen Sectie van de Gids voor IP-laag netwerkbeheer met Linux.
Als u al het verkeer van de peer via de VPN routeert, zorg er dan voor dat u de juiste sysctl
en iptables
regels hebt geconfigureerd op de WireGuard-server in Stap 4 — Aanpassen van de netwerkconfiguratie van de WireGuard-server en Stap 5 — Configuratie van de firewall van de WireGuard-server.
(Optioneel) Configuratie van de DNS-resolvers van de WireGuard-peer
Als u de WireGuard-server gebruikt als een VPN-gateway voor al het verkeer van uw peers, moet u een regel toevoegen aan de [Interface]
-sectie die DNS-resolvers specificeert. Als u deze instelling niet toevoegt, kunnen uw DNS-verzoeken mogelijk niet beveiligd zijn door de VPN, of kunnen ze worden blootgesteld aan uw internetprovider of andere derden.
Als u WireGuard alleen gebruikt om toegang te krijgen tot resources op het VPN-netwerk of in een peer-to-peer-configuratie, kunt u dit gedeelte overslaan.
Om DNS-resolvers toe te voegen aan de configuratie van uw peer, bepaalt u eerst welke DNS-servers uw WireGuard-server gebruikt. Voer het volgende commando uit op de WireGuard-server, waarbij u uw ethernethardwarenaam vervangt door eth0
als deze verschilt van dit voorbeeld:
U zou output moeten ontvangen zoals het volgende:
OutputLink 2 (eth0): 67.207.67.2 67.207.67.3 2001:4860:4860::8844 2001:4860:4860::8888
De IP-adressen die worden weergegeven zijn de DNS-resolvers die de server gebruikt. U kunt ervoor kiezen om een of meer van hen te gebruiken, of alleen IPv4 of IPv6, afhankelijk van uw behoeften. Maak een notitie van de resolvers die u zult gebruiken.
Vervolgens moet u uw gekozen resolvers toevoegen aan het configuratiebestand van de WireGuard-peer. Terug op de WireGuard-peer, open het bestand /etc/wireguard/wg0.conf
met behulp van nano
of uw voorkeurseditor:
Vóór de regel [Peer]
, voegt u het volgende toe:
DNS = 67.207.67.2 2001:4860:4860::8844
[Peer]
. . .
Nogmaals, afhankelijk van uw voorkeur of vereisten voor IPv4 en IPv6, kunt u de lijst aanpassen aan uw behoeften.
Zodra je verbonden bent met de VPN in de volgende stap, kun je controleren of je DNS-query’s via de VPN verstuurt door een site zoals DNS leak test.com te gebruiken.
Je kunt ook controleren of je peer de geconfigureerde resolvers gebruikt met het resolvectl dns
commando, net zoals je deed op de server. Je zou output moeten ontvangen zoals het volgende, waarin de DNS-resolvers worden getoond die je geconfigureerd hebt voor de VPN-tunnel:
OutputGlobal: 67.207.67.2 67.207.67.3
. . .
Met al deze DNS-resolverinstellingen op hun plek ben je nu klaar om de publieke sleutel van de peer aan de server toe te voegen, en vervolgens de WireGuard-tunnel op de peer te starten.
Stap 8 — Het Toevoegen van de Publieke Sleutel van de Peer aan de WireGuard Server
Voordat je de peer met de server verbindt, is het belangrijk om de publieke sleutel van de peer aan de WireGuard Server toe te voegen. Deze stap zorgt ervoor dat je in staat zult zijn om verbinding te maken en verkeer via de VPN te routeren. Zonder deze stap zal de WireGuard-server de peer niet toestaan om verkeer over de tunnel te verzenden of ontvangen.
Zorg ervoor dat je een kopie hebt van de base64
gecodeerde publieke sleutel voor de WireGuard Peer door het volgende uit te voeren:
OutputPeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
Log nu in op de WireGuard-server en voer het volgende commando uit:
Let op dat het gedeelte allowed-ips
van de opdracht een lijst met IPv4- en IPv6-adressen gescheiden door komma’s accepteert. U kunt individuele IP-adressen specificeren als u het IP-adres wilt beperken dat een peer kan toewijzen, of een bereik zoals in het voorbeeld als uw peers elk IP-adres in het VPN-bereik kunnen gebruiken. Merk ook op dat geen twee peers dezelfde instelling voor allowed-ips
kunnen hebben.
Als u de allowed-ips
voor een bestaande peer wilt bijwerken, kunt u dezelfde opdracht opnieuw uitvoeren, maar de IP-adressen wijzigen. Meerdere IP-adressen worden ondersteund. Bijvoorbeeld, om de WireGuard Peer die u zojuist hebt toegevoegd een IP als 10.8.0.100
toe te voegen aan de bestaande 10.8.0.2
en fd24:609a:6c18::2
IP’s, zou u het volgende uitvoeren:
Zodra u de opdracht heeft uitgevoerd om de peer toe te voegen, controleert u de status van de tunnel op de server met behulp van de wg
opdracht:
Outputinterface: wg0
public key: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
private key: (hidden)
listening port: 51820
peer: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
allowed ips: 10.8.0.2/32, fd24:609a:6c18::/128
Merk op hoe de peer
-regel de openbare sleutel van de WireGuard Peer toont, en de IP-adressen of reeksen van adressen die het mag gebruiken om zichzelf een IP-adres toe te wijzen.
Nu u de verbindingsparameters van de peer op de server heeft gedefinieerd, is de volgende stap het starten van de tunnel op de peer.
Stap 9 — Verbinding maken van de WireGuard Peer met de Tunnel
Nu je server en peer allebei geconfigureerd zijn om je keuze van IPv4, IPv6, pakketdoorsturing en DNS-resolutie te ondersteunen, is het tijd om de peer aan de VPN-tunnel te verbinden.
Aangezien je de VPN mogelijk alleen voor bepaalde gebruiksscenario’s wilt inschakelen, zullen we het wg-quick
-commando gebruiken om de verbinding handmatig tot stand te brengen. Als je de tunnel automatisch wilt starten zoals je op de server hebt gedaan, volg dan die stappen in de Stap 6 — De WireGuard-server starten-sectie in plaats van het wg-quick
-commando te gebruiken.
Als je al het verkeer via de VPN routeert en DNS-forwarding hebt ingesteld, moet je het resolvconf
-hulpprogramma installeren op de WireGuard-peer voordat je de tunnel start. Voer het volgende commando uit om dit in te stellen:
Om de tunnel te starten, voer je het volgende uit op de WireGuard-peer:
Je ontvangt output zoals het volgende:
Output[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.8.0.2/24 dev wg0
[#] ip -6 address add fd24:609a:6c18::2/64 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
Let op de gemarkeerde IPv4- en IPv6-adressen die je aan de peer hebt toegewezen.
Als je de AllowedIPs
op de peer hebt ingesteld op 0.0.0.0/0
en ::/0
(of om andere bereiken te gebruiken dan degene die je hebt gekozen voor de VPN), dan zal je output er als volgt uitzien:
Output[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.8.0.2/24 dev wg0
[#] ip -6 address add fd24:609a:6c18::2/64 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n
In dit voorbeeld, let op de gemarkeerde routes die het commando heeft toegevoegd, die overeenkomen met de AllowedIPs
in de peerconfiguratie.
Je kunt de status van de tunnel op de peer controleren met het wg
-commando:
Outputinterface: wg0
public key: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
private key: (hidden)
listening port: 49338
fwmark: 0xca6c
peer: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
endpoint: 203.0.113.1:51820
allowed ips: 10.8.0.0/24, fd24:609a:6c18::/64
latest handshake: 1 second ago
transfer: 6.50 KiB received, 15.41 KiB sent
Je kunt ook opnieuw de status op de server controleren, en je ontvangt vergelijkbare output.
Controleer of je peer de VPN gebruikt door de ip route
en ip -6 route
commando’s te gebruiken. Als je de VPN gebruikt als gateway voor al je internetverkeer, controleer dan via welke interface het verkeer bestemd voor de CloudFlare DNS-resolvers 1.1.1.1
en 2606:4700:4700::1111
zal worden gebruikt.
Als je alleen WireGuard gebruikt om toegang te krijgen tot bronnen op de VPN, vervang dan een geldig IPv4- of IPv6-adres zoals de gateway zelf in deze commando’s. Bijvoorbeeld 10.8.0.1
of fd24:609a:6c18::1
.
Output1.1.1.1 dev wg0 table 51820 src 10.8.0.2 uid 1000
cache
Let op het wg0
-apparaat dat wordt gebruikt en het IPv4-adres 10.8.0.2
dat je hebt toegewezen aan de peer. Als je IPv6 gebruikt, voer dan het volgende uit:
Output2606:4700:4700::1111 from :: dev wg0 table 51820 src fd24:609a:6c18::2 metric 1024 pref medium
Nogmaals, let op de wg0
-interface en het IPv6-adres fd24:609a:6c18::2
dat je hebt toegewezen aan de peer.
Als je peer een browser heeft geïnstalleerd, kun je ook ipleak.net en ipv6-test.com bezoeken om te bevestigen dat je peer zijn verkeer via de VPN routeert.
Als je klaar bent om de verbinding met de VPN op de peer te verbreken, gebruik dan het wg-quick
-commando:
Je ontvangt een uitvoer zoals de volgende die aangeeft dat de VPN-tunnel is afgesloten:
Output[#] ip link delete dev wg0
[#] resolvconf -d tun.wg0 -f
Als je de `AllowedIPs` op de peer hebt ingesteld op 0.0.0.0/0
en ::/0
(of om andere reeksen te gebruiken dan degene die je hebt gekozen voor de VPN), dan zal je uitvoer lijken op het volgende:
Output[#] ip rule delete table 200 from 203.0.113.5
[#] ip route delete table 200 default via 203.0.113.1
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip -6 rule delete table 51820
[#] ip -6 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
[#] resolvconf -d tun.wg0 -f
[#] iptables-restore -n
[#] ip6tables-restore -n
Om opnieuw verbinding te maken met de VPN, voer je het commando wg-quick up wg0
opnieuw uit op de peer. Als je de configuratie van een peer volledig wilt verwijderen van de WireGuard-server, kun je het volgende commando uitvoeren. Zorg ervoor dat je de juiste openbare sleutel vervangt voor de peer die je wilt verwijderen:
Meestal hoef je alleen een peerconfiguratie te verwijderen als de peer niet meer bestaat, of als de versleutelingssleutels ervan zijn gecompromitteerd of gewijzigd. Anders is het beter om de configuratie te laten staan, zodat de peer opnieuw verbinding kan maken met de VPN zonder dat je telkens de sleutel en allowed-ips
hoeft toe te voegen.
Conclusie
In deze zelfstudie heb je het WireGuard-pakket en de tools geïnstalleerd op zowel de server- als de clientsystemen met Ubuntu 22.04. Je hebt firewallregels ingesteld voor WireGuard en kernelinstellingen geconfigureerd om pakketdoorsturing toe te staan met behulp van het sysctl
-commando op de server. Je hebt geleerd hoe je privé- en openbare WireGuard-versleutelingssleutels kunt genereren, en hoe je de server en peer (of peers) kunt configureren om met elkaar te verbinden.
Als je netwerk IPv6 gebruikt, heb je ook geleerd hoe je een uniek lokaal adresbereik kunt genereren om te gebruiken bij peer-verbindingen. Ten slotte heb je geleerd hoe je kunt beperken welk verkeer via de VPN moet gaan door de netwerkvoorvoegsels te beperken die de peer kan gebruiken, evenals hoe je de WireGuard-server kunt gebruiken als een VPN-gateway om al het internetverkeer voor peers te verwerken.
Als je meer wilt weten over WireGuard, inclusief hoe je geavanceerdere tunnels kunt configureren, of WireGuard kunt gebruiken met containers, bezoek dan de officiële documentatie van WireGuard.
Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-ubuntu-22-04