WireGuard – Un tunnel VPN rapide, moderne et sécurisé pour Linux

WireGuard est une implémentation de VPN moderne, sécurisée, multiplateforme et polyvalente qui utilise une cryptographie de pointe. Il vise à être rapide, plus simple, plus épuré et plus fonctionnel que IPsec, et il a l’intention d’être plus performant que OpenVPN.

Il est conçu pour être utilisé dans diverses circonstances et peut être déployé sur des interfaces embarquées, des routeurs dorsaux entièrement chargés et des superordinateurs; il fonctionne sous les systèmes d’exploitation Linux, Windows, macOS, BSD, iOS et Android.

Lecture recommandée : 13 meilleurs services VPN avec abonnement à vie

Il présente une interface extrêmement basique mais puissante qui vise à être simple, aussi facile à configurer et à déployer que SSH. Ses principales caractéristiques incluent une interface réseau simple, le routage de clés cryptographiques, le roaming intégré et le support des conteneurs.

Notez qu’au moment de la rédaction, il est en plein développement : certaines de ses parties travaillent vers une sortie stable de la version 1.0, tandis que d’autres y sont déjà (fonctionnant bien).

Dans cet article, vous apprendrez comment installer et configurer WireGuard sur Linux pour créer un tunnel VPN entre deux hôtes Linux.

Environnement de test

Pour ce guide, notre configuration (nom d’hôte et IP publique) est la suivante :

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

Comment installer WireGuard sur les distributions Linux

Connectez-vous à vos deux nœuds et installez WireGuard en utilisant la commande appropriée pour vos distributions Linux comme suit.

Installer WireGuard dans 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 dans 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 dans 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 dans Fedora

$ sudo dnf install wireguard-tools

Installer WireGuard dans 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 dans Ubuntu

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

Installer WireGuard dans OpenSUSE

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

Configurer un tunnel VPN WireGuard entre deux hôtes Linux

Lorsque l’installation de WireGuard est terminée sur les deux nœuds, vous pouvez redémarrer vos nœuds ou ajouter le module WireGuard du noyau Linux en utilisant la commande suivante sur les deux nœuds.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Ensuite, générez des clés publiques et privées encodées en base64 en utilisant l’utilitaire wg sur les deux nœuds comme indiqué.

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

Ensuite, vous devez créer une interface réseau (par exemple wg0) pour WireGuard sur les pairs comme indiqué ci-dessous. Ensuite, attribuez des adresses IP à la nouvelle interface réseau créée (pour ce guide, nous utiliserons le réseau 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

Pour afficher les interfaces réseau attachées sur les pairs et leurs adresses IP, utilisez la commande IP suivante.

$ ip ad
View Network Interfaces with IP Addresses

Ensuite, attribuez la clé privée de chaque pair à l’interface réseau wg0 et activez l’interface comme indiqué.

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

Maintenant que les deux liens sont actifs, chacun avec des clés privées qui leur sont associées, exécutez l’utilitaire wg sans aucun argument pour récupérer la configuration des interfaces WireGuard sur les pairs. Ensuite, créez votre tunnel VPN WireGuard comme suit.

Le pair (clé publique), allowed-ips (réseau/masque de sous-réseau) et endpoint (ip publique:port) appartiennent au pair opposé.

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

Tester le tunnel VPN WireGuard entre les systèmes Linux

Une fois que le tunnel VPN WireGuard a été créé, pinguez le pair opposé en utilisant l’adresse de l’interface réseau WireGuard. Ensuite, exécutez à nouveau l’utilitaire wg pour confirmer un handshake entre les pairs comme indiqué.

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

C’est tout pour le moment ! WireGuard est une solution VPN moderne, sécurisée, simple mais puissante et facile à configurer pour l’avenir. Il est en cours de développement intensif donc en constante évolution. Vous pouvez obtenir plus d’informations, en particulier sur son fonctionnement interne et d’autres options de configuration, sur la page d’accueil de WireGuard.

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