Wireguard

WireGuard er en moderne, minimalistisk og svært effektiv VPN-protokoll som er designet for å skape sikre tilkoblinger på en enkel og rask måte. Wireguard er bygd inn i linux-kjernen siden versjon 5.6. For å benytte seg av Wireguard trengs wireguard-tools (wg og wg-quick).

Installasjon på openSUSE

zypper refresh
zypper update
zypper install wireguard-tools

Bruk modprobe for å sjekke om kernel-modulen er lastet inn. Hvis den ikke finnes eller ikke er lastet inn returneres en feilmelding.

modprobe wireguard

Etter installasjon, for at Wireguard skal starte automatisk ved opptart:

systemctl enable wg-quick@wg0

Wireguard kan også startes og stoppes manuelt med wg-quick:

wg-quick down wg0
wg-quick up wg0

Konfigurasjon av server og klient

Konfigurasjon av Wireguard på server-siden skjer vanligvis i denne filen:

/etc/wireguard/wg0.conf

En typisk konfigurasjon på server-siden:

[Interface]
PrivateKey = <server_privatekey>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <client1_publickey>
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = <client2_publickey>
AllowedIPs = 10.0.0.3/32

En typisk konfigurasjon på klient-siden:

[Interface]
PrivateKey = <client1_privatekey>
Address = 10.0.0.2/24
DNS = 1.1.1.1, 1.0.0.1

[Peer]
PublicKey = <server_publickey>
Endpoint = <server_ip>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Generer nøkkelpar

Disse nøkkelparene brukes for å kryptere VPN forbindelsen.
Eksempel på oppsett av server og 2 klienter:

# Generer nøkkelpar for server og 2 klienter
wg genkey | tee server_privatekey
wg pubkey < server_privatekey | tee server_publickey
wg genkey | tee client1_privatekey
wg pubkey < client1_privatekey | tee client1_publickey
wg genkey | tee client2_privatekey
wg pubkey < client2_privatekey | tee client2_publickey