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.