stel je WireGuard VPN in op Ubuntu 20.04
WireGuard is een open-source en op beveiliging gericht virtueel privénetwerk, ontworpen voor eenvoud en gebruiksgemak. Het ondersteunt verschillende besturingssystemen, waaronder, Linux, macOS, Windows, BSD en Android. Het is een eenvoudige en algemeen bruikbare VPN die gemakkelijk kan worden ingezet op kleine toestellen tot high-end servers. Het is een point to point VPN server in plaats van client-server model. Het gebruikt een publiek sleuteluitwisselingsmechanisme om cliënten te authenticeren.
Als je een lichtgewicht en snelle VPN zoekt, dan is de WireGuard VPN de beste keuze voor jou. In deze handleiding laten we je zien hoe je de WireGuard VPN server en client op Ubuntu 20.04 installeert.
Vereisten
- Twee server draaien op Ubuntu 20.04 server.
- Op beide servers is een root wachtwoord ingesteld.
Aan de slag
Eerst is het aan te bevelen je systeempakketten bij te werken tot de nieuwste versie. Je kunt ze bijwerken met het volgende commando:
apt-get update -y
Als alle pakketten bijgewerkt zijn, moet je de Iptables in je systeem installeren. Je kunt het installeren met het volgende commando:
apt-get install iptables -y
Als de installatie klaar is, kun je verder gaan met de volgende stap.
Installeer WireGuard VPN Server
Standaard is het WireGuard pakket beschikbaar in de Ubuntu 20.04 standaard repository. Je kunt het installeren door het volgende commando uit te voeren:
apt-get install wireguard -y
Als het WireGuard pakket geïnstalleerd is, kun je verder gaan met de volgende stap.
Configureer WireGuard server
WireGuard werkt door het uitwisselen van publieke sleutels tussen elk apparaat in het WireGuard netwerk. Je zult dus een publieke en private sleutel in de server moeten aanmaken.
WireGuard biedt het wg en wg-quick command-line hulpprogramma om een sleutel te maken en de interfaces te beheren.
Je kunt zowel een publieke als een private sleutel aanmaken met het volgende commando:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Als beide sleutels zijn aangemaakt, kun je ze controleren met het volgende commando:
ls /etc/wireguard
Je zou de volgende uitvoer moeten zien:
privatekey publickey
Je kunt de inhoud van de private sleutel weergeven met het volgende commando:
cat /etc/wireguard/privatekey
Je zou de volgende uitvoer moeten zien:
4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=
Je kunt de inhoud van de publieke sleutel weergeven met het volgende commando:
cat /etc/wireguard/publickey
Je zou de volgende uitvoer moeten zien:
00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
Vervolgens moet je een netwerk interface voor WireGuard maken. Je kunt die aanmaken met het volgende commando:
nano /etc/wireguard/wg0.conf
Voeg de volgende regels toe:
[Interface] Address = 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 eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Sla het bestand op en sluit het als je klaar bent.
Waar:
- Address : Een privé IP adres voor de wg0 interface.
- ListenPort : Specificeer de luisterpoort van WireGuard.
- PrivateKey : Een privatekey opgeslagen in het bestand /etc/wireguard/privatekey.
- PostUp : Specificeer het commando dat verkeer toelaat de server te verlaten en de VPN clients toegang tot het Internet te geven. Vervang ook de eth0 door de naam van je netwerkinterface.
Stel vervolgens de juiste rechten in op het privatekey en wg0 bestand.
chmod 600 /etc/wireguard/{privatekey,wg0.conf}
Schakel vervolgens de wg0 interface in door het volgende commando uit te voeren:
wg-quick up wg0
Je zou de volgende uitvoer moeten krijgen:
[#] 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 eth0 -j MASQUERADE
Je kunt de WireGuard dienst ook starten met systemd zoals hieronder:
systemctl start [email protected]
Schakel vervolgens de WireGuard dienst in om te starten bij het herstarten van het systeem met het volgende commando:
systemctl enable [email protected]
Controleer vervolgens de status van de WireGuard dienst met het volgende commando:
systemctl status [email protected]
Je zou de volgende uitvoer moeten krijgen:
? [email protected] - WireGuard via wg-quick(8) for wg0 Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled) Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s 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: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS) Main PID: 2173 (code=exited, status=0/SUCCESS) Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0... Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0 Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.
Je kunt ook de status van de wg0 interface controleren met het volgende commando:
wg show wg0
Je zou de volgende uitvoer moeten krijgen:
interface: wg0 public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= private key: (hidden) listening port: 51820
Je kunt de IP adres status van de wg0 interface opvragen met het volgende commando:
ip a show wg0
Je zou de volgende uitvoer moeten krijgen:
13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.1/24 scope global wg0 valid_lft forever preferred_lft forever
Als je klaar bent, kun je verder gaan met de volgende stap.
Schakel IP doorsturen in
Vervolgens moet je de IP forwarding in je server inschakelen om pakketten tussen VPN clients en het Internet te routeren. Je kunt dit inschakelen door het bestand /etc/sysctl.conf te bewerken:
nano /etc/sysctl.conf
Verander de volgende regel:
net.ipv4.ip_forward=1
Bewaar en sluit het bestand en voer dan het volgende commando uit om de configuratiewijzigingen toe te passen:
sysctl -p
Als je klaar bent, kun je verder gaan met de volgende stap.
Installeer en configureer WireGuard Client
Eerst moet je het WireGuard pakket op de client machine installeren. Je kunt het installeren met het volgende commando:
apt-get install wireguard -y
Na de installatie van het WireGuard pakket maak je een privatekey en publickey met het volgende commando:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Als beide sleutels gemaakt zijn, moet je een nieuw configuratiebestand maken.
Je kunt het maken met het volgende commando:
nano /etc/wireguard/wg0.conf
Voeg de volgende regels toe:
[Interface] PrivateKey = client-private-key Address = 10.0.0.2/24 [Peer] PublicKey = server-public-key Endpoint = server-ip-address:51820 AllowedIPs = 0.0.0.0/0
Sla het bestand op en sluit het als je klaar bent.
Waar:
- Address : Een privé IP adres voor de wg0 interface.
- PrivateKey : Specificeer de private sleutel op de cliënt machine.
- PublicKey : Specificeer de publieke sleutel op de server machine.
- Eindpunt : Specificeer het IP adres van de server.
- Toegestane IP’s : Specificeer de lijst van toegestane IP adressen.
Vervolgens moet je de public key en het IP adres van de client op de server machine toevoegen.
Voer op de server machine het volgende commando uit om beide toe te voegen:
wg set wg0 peer client-public-key allowed-ips 10.0.0.2
Vervolgens moet je op de client machine de interface wg0 oproepen.
Voer op de client machine het volgende commando uit om de interface op te starten:
wg-quick up wg0
Je zou de volgende uitvoer moeten krijgen:
[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.2/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] wg set wg0 fwmark 51820
Op dit punt is je cliënt machine verbonden met de WireGuard VPN server. Je kunt de verbindingsstatus controleren met het volgende commando:
wg
Je zou de volgende uitvoer moeten krijgen:
interface: wg0 public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4= private key: (hidden) listening port: 38830 fwmark: 0xca6c peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4= endpoint: 69.87.216.36:51820 allowed ips: 0.0.0.0/0 latest handshake: 41 seconds ago transfer: 5.27 KiB received, 12.97 KiB sent
Conclusie
Gefeliciteerd! Je hebt de WireGuard VPN server en client met succes geïnstalleerd en ingesteld op Ubuntu 20.04 server. Nu zou het verkeer van je cliënt machine door je server machine moeten worden geleid. Je kunt nu anoniem over het internet surfen en je gegevens privé houden.