WireGuard – Un tunnel VPN veloce, moderno e sicuro per Linux

WireGuard è un’implementazione moderna, sicura, multi-piattaforma e generica di VPN che utilizza la crittografia all’avanguardia. Si propone di essere veloce, più semplice, più snella e più funzionale rispetto a IPsec e mira a essere più performante di OpenVPN.

È progettata per essere utilizzata in varie circostanze e può essere implementata su interfacce incorporate, router di backbone completamente carichi e supercomputer allo stesso modo; e funziona su sistemi operativi Linux, Windows, macOS, BSD, iOS e Android.

Lettura consigliata: 13 Migliori Servizi VPN con Sottoscrizione a Vita

Presenta un’interfaccia estremamente basilare ma potente che mira a essere semplice, facile da configurare e implementare come SSH. Le sue caratteristiche principali includono un’interfaccia di rete semplice, instradamento delle chiavi crittografiche, roaming integrato e supporto dei container.

Si noti che al momento della stesura, è in fase di sviluppo intenso: alcune delle sue parti stanno lavorando verso un rilascio stabile 1.0, mentre altre sono già lì (funzionano bene).

In questo articolo, imparerai come installare e configurare WireGuard in Linux per creare un tunnel VPN tra due host Linux.

Ambiente di Test

Per questa guida, la nostra configurazione (nome host e IP pubblico) è la seguente:

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

Come Installare WireGuard nelle Distribuzioni Linux

Accedi ai tuoi due nodi e installa WireGuard utilizzando il seguente comando appropriato per le tue distribuzioni Linux come segue.

Installare WireGuard in 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

Installare WireGuard in 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

Installare WireGuard in 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

Installare WireGuard in Fedora

$ sudo dnf install wireguard-tools

Installare WireGuard in 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

Installare WireGuard in Ubuntu

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

Installare WireGuard in OpenSUSE

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

Configurare un tunnel VPN WireGuard tra due host Linux

Quando l’installazione di wireguard è completa su entrambi i nodi, puoi riavviare i tuoi nodi o aggiungere il modulo wireguard dal kernel Linux utilizzando il seguente comando su entrambi i nodi.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Successivamente, genera chiavi pubbliche e private codificate in base64 utilizzando l’utilità wg su entrambi i nodi come mostrato.

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

---------- On Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1
Generate Keys on Both Nodes

Successivamente, è necessario creare un’interfaccia di rete (ad esempio wg0) per wireguard sui peer come mostrato di seguito. Quindi assegnare gli indirizzi IP alla nuova interfaccia di rete creata (per questa guida, utilizzeremo la rete 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

Per visualizzare le interfacce di rete collegate sui peer e i loro indirizzi IP, utilizzare il seguente comando IP.

$ ip ad
View Network Interfaces with IP Addresses

Successivamente, assegna la chiave privata per ogni peer all’interfaccia di rete wg0 e attiva l’interfaccia come mostrato.

---------- 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

Ora che entrambi i collegamenti sono attivi, ciascuno con chiavi private associate, esegui l’utilità wg senza argomenti per recuperare la configurazione delle interfacce WireGuard sui peer. Quindi crea il tuo tunnel VPN WireGuard come segue.

Il peer (chiave pubblica), allowed-ips (rete/maschera di sottorete) e endpoint (indirizzo IP pubblico:porta) sono del peer opposto.

----------  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
Create Wireguard VPN Tunnel Between Linux Machines

Test del Tunnel VPN WireGuard tra Sistemi Linux

Una volta creato il tunnel VPN WireGuard, fai ping al peer opposto utilizzando l’indirizzo dell’interfaccia di rete WireGuard. Quindi esegui nuovamente l’utilità wg per confermare un handshake tra i peer come mostrato.

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

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg
Test Wireguard VPN Tunnel Between Linux Machines

E questo è tutto per ora! WireGuard è una soluzione VPN moderna, sicura, semplice ma potente e facile da configurare per il futuro. È in fase di sviluppo intenso, quindi è un lavoro in corso. Puoi ottenere ulteriori informazioni, in particolare sui suoi meccanismi interni e altre opzioni di configurazione, dalla homepage di WireGuard.

Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/