WireGuard - En hurtig, moderne og sikker VPN-tunnel til Linux


WireGuard er en moderne, sikker VPN-implementering på tværs af platforme og generelle formål, der bruger avanceret kryptografi. Det sigter mod at være hurtig, enklere, slankere og mere funktionel end IPsec, og den har til hensigt at være mere performant end OpenVPN.

Det er designet til brug under forskellige omstændigheder og kan implementeres på indlejrede grænseflader, fuldt belastede backbone routere og supercomputere ens; og kører på operativsystemerne Linux, Windows, macOS, BSD, iOS og Android.

Anbefalet læsning: 13 bedste VPN-tjenester med Lifetime-abonnement

Det præsenterer en ekstremt grundlæggende, men alligevel kraftfuld grænseflade, der sigter mod at være enkel, så let at konfigurere og implementere som SSH. Dens nøglefunktioner inkluderer en simpel netværksgrænseflade, kryptonøglerute, indbygget roaming og containerstøtte.

Bemærk, at det i skrivende stund er under kraftig udvikling: nogle af dets dele arbejder hen imod en stabil 1.0-frigivelse, mens andre allerede er der (fungerer fint).

I denne artikel lærer du, hvordan du installerer og konfigurerer WireGuard i Linux til at oprette en VPN-tunnel mellem to Linux-værter.

I denne vejledning er vores opsætning (værtsnavn og offentlig IP) som følger:

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

Sådan installeres WireGuard i Linux-distributioner

Log ind på dine begge noder og installer WireGuard ved hjælp af følgende passende kommando til dine Linux-distributioner som følger.

$ 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
$ 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
$ 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
$ sudo dnf install wireguard-tools
# 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
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard
$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
$ sudo zypper install wireguard-kmp-default wireguard-tools

Konfiguration af en WireGuard VPN-tunnel mellem to Linux-værter

Når installationen af wireguard er afsluttet på begge noder, kan du genstarte dine noder eller tilføje wireguard-modulet fra Linux-kernen ved hjælp af følgende kommando på begge noder.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Dernæst genererer base64-kodede offentlige og private nøgler ved hjælp af wg-værktøjet 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

Dernæst skal du oprette en netværksgrænseflade (fx wg0) til wiregaurd på jævnaldrende som vist nedenfor. Derefter tildeles IP-adresser til den nye netværksgrænseflade, der er oprettet (til denne vejledning bruger vi netværket 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

Brug følgende IP-kommando for at se de tilknyttede netværksgrænseflader på peers og deres IP-adresser.

$ ip ad

Dernæst tildel den private nøgle for hver peer til wg0-netværksgrænsefladen, og hent grænsefladen op 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

Nu hvor begge links er ope hver med private nøgler tilknyttet, skal du køre wg-værktøjet uden argumenter for at hente konfigurationen af WireGuard-grænseflader på peers. Opret derefter din wireguard VPN-tunnel som følger.

Peer (offentlig nøgle), tilladt-ips (netværk/subnetmaske) og slutpunkt (offentlig ip: port) er af den modsatte 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

Test af WireGuard VPN-tunnel mellem Linux-systemer

Når wireguard VPN-tunnelen er oprettet, ping den modsatte peer ved hjælp af adressen til wireguard-netværksgrænsefladen. Kør derefter wg-værktøjet igen for at bekræfte et håndtryk mellem jævnaldrende som vist.

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

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

Det er det for nu! WireGuard er en moderne, sikker, enkel, men alligevel kraftfuld og nem at konfigurere VPN-løsning til fremtiden. Det gennemgår en kraftig udvikling og er således i gang. Du kan få mere information især om dens interne indre funktion og andre konfigurationsmuligheder fra WireGuard-hjemmesiden.