Test de wireguard

Installation

Debian

Disponible en unstable, package wireguard
Pour Jessie et Stretch:

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

wiki debian

Ubuntu

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

Fedora

dnf install wireguard

Les paquets suivant sont installés: wireguard, wireguard-dkms, wireguard-tools

Configuration rapide en mode serveur

On va utiliser la méthode avec wg-quick, on choisit 192.168.100.0 comme réseau pour le vpn.

Configuration du serveur

Dans le répertoire /etc/wireguard, on génère une paire de clefs:

wg genkey | tee wg-private.key | wg pubkey > wg-public.key

Créer le fichier /etc/wireguard/wg0.conf:

[Interface]
#server
Address = 192.168.100.254
PrivateKey = <CONTENU DU FICHIER wg-private.key>
ListenPort = 4820

[Peer]
#client 1
PublicKey = <CLEF PUBLIQUE DU CLIENT 1>
AllowedIPs = 192.168.100.1

Sur le client 1

Dans le répertoire /etc/wireguard, on génère une paire de clefs:

wg genkey | tee wg-private.key | wg pubkey > wg-public.key

Créer le fichier /etc/wireguard/wg0.conf:

[Interface]
#client 1
Address = 192.168.100.1
PrivateKey = <CONTENU DU FICHIER wg-private.key>
ListenPort = 4820

[Peer]
#client 1
PublicKey = <CLEF PUBLIQUE DU SERVEUR>
AllowedIPs = 192.168.100.0/24 (si 0.0.0.0/0 alors tout le traffic est routé dans le vpn)

On peut répéter l’opération sur autant de clients qu’on veut. Il suffit d’ajouter un bloc peer correspondant dans le fichier de configuration du serveur.

Démarrer le vpn

Sur le serveur puis sur le client

wg-quick up wg0

Pour voir l’état du vpn

wg show

Ajouter un client android

On peut utiliser n’importe quelle machine ou wireguard est installé
Installer le programme qrencode (dispos sous debian fedora)
Créer un configuration comme n’importe quel autre client.

qrencode -t ansiutf8 < client.conf

Sur android dans f-droid installer wireguard et ajouter un vpn, choisir “create from qrcode”.

J’ai fait les tests avec un serveur debian arm64 et des clients ubuntu bionic, fedora 29, debian arm64, android.
On peut joindre chacun des clients depuis un autre client. J’ai ouvert un serveur nginx sur une machine du vpn et j’ai visisonné une vidéo sur mon téléphone avec vlc :)