WireGuard - En rask, moderne og sikker VPN-tunnel for Linux


WireGuard er en moderne, sikker, tverrplattform og generell VPN-implementering som bruker toppmoderne kryptografi. Den har som mål å være rask, enklere, slankere og mer funksjonell enn IPsec, og den har til hensikt å være mer ytelsessterk enn OpenVPN.

Den er designet for bruk under forskjellige omstendigheter og kan distribueres på innebygde grensesnitt, fulllastede ryggradsrutere og superdatamaskiner; og kjører på operativsystemene Linux, Windows, macOS, BSD, iOS og Android.

Anbefalt lesing: 13 beste VPN-tjenester med livstidsabonnement

Den presenterer et ekstremt grunnleggende, men kraftig grensesnitt som har som mål å være enkelt, like enkelt å konfigurere og distribuere som SSH. Nøkkelfunksjonene inkluderer et enkelt nettverksgrensesnitt, kryptonøkkelruting, innebygd roaming og containerstøtte.

Merk at i skrivende stund er den under tung utvikling: noen av delene jobber mot en stabil 1.0-utgivelse, mens andre allerede er der (fungerer fint).

I denne artikkelen vil du lære hvordan du installerer og konfigurerer WireGuard i Linux for å lage en VPN-tunnel mellom to Linux-verter.

Testmiljø

For denne veiledningen er oppsettet vårt (vertsnavn og offentlig IP) som følger:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Hvordan installere WireGuard i Linux-distribusjoner

Logg inn på begge noder og installer WireGuard ved å bruke følgende passende kommando for Linux-distribusjonene som følger.

Installer WireGuard i RHEL 8

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Installer WireGuard i CentOS 8

sudo yum install epel-release
sudo yum config-manager --set-enabled PowerTools
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Installer WireGuard i RHEL/CentOS 7

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install wireguard-dkms wireguard-tools

Installer WireGuard i Fedora

sudo dnf install wireguard-tools

Installer WireGuard i Debian

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Installer WireGuard i Ubuntu

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

Installer WireGuard i OpenSUSE

sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
sudo zypper install wireguard-kmp-default wireguard-tools

Konfigurere en WireGuard VPN-tunnel mellom to Linux-verter

Når installasjonen av wireguard er fullført på begge nodene, kan du starte nodene på nytt eller legge til wireguard-modulen fra Linux-kjernen ved å bruke følgende kommando på begge nodene.

sudo modprobe wireguard
OR
modprobe wireguard

Deretter genererer du base64-kodede offentlige og private nøkler ved å bruke wg-verktøyet på begge noder som vist.

---------- On Node 1 ---------- 
umask 077
wg genkey >private_appserver1

---------- On Node 2 ----------
umask 077
wg genkey >private_dbserver1
wg pubkey < private_dbserver1

Deretter må du opprette et nettverksgrensesnitt (f.eks. wg0) for wiregaurd på jevnaldrende som vist nedenfor. Deretter tildeler vi IP-adresser til det nye nettverksgrensesnittet som er opprettet (for denne veiledningen vil vi bruke nettverket 192.168.10.0/24).

---------- On Node 1 ---------- 
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.2/24 dev wg0

For å se de vedlagte nettverksgrensesnittene på peers og deres IP-adresser, bruk følgende IP-kommando.

ip ad

Deretter tilordner du den private nøkkelen for hver peer til wg0-nettverksgrensesnittet og viser grensesnittet som vist.

---------- On Node 1 ---------- 
sudo wg set wg0 private-key ./private_appserver1
sudo ip link set wg0 up

---------- On Node 2 ----------
sudo wg set wg0 private-key ./private_dbserver1
sudo ip link set wg0 up

Nå som begge koblingene er oppe, hver med private nøkler knyttet til dem, kjører du wg-verktøyet uten noen argumenter for å hente konfigurasjonen av WireGuard-grensesnitt på peers. Deretter oppretter du din wireguard VPN-tunnel som følger.

Peer (offentlig nøkkel), allowed-ips (nettverk/subnettmaske) og endepunkt (offentlig ip:port) er av den motsatte peer .

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
sudo wg
sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
sudo wg
sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

Tester WireGuard VPN-tunnel mellom Linux-systemer

Når wireguard VPN-tunnelen er opprettet, ping den motsatte peeren ved å bruke adressen til wireguard-nettverksgrensesnittet. Kjør deretter wg-verktøyet igjen for å bekrefte et håndtrykk mellom jevnaldrende som vist.

---------- On Node 1 ----------
ping 192.168.10.2
sudo wg

---------- On Node 2 ----------
ping 192.168.10.1
sudo wg

Det var det for nå! WireGuard er en moderne, sikker, enkel, men kraftig og lett-å-konfigurere VPN-løsning for fremtiden. Det er under kraftig utvikling, og det pågår derfor et arbeid. Du kan få mer informasjon spesielt om dens interne indre funksjoner og andre konfigurasjonsalternativer fra WireGuard-hjemmesiden.