Linux

Comment configurer WireGuard VPN sur Debian 10

Comment configurer WireGuard VPN sur Debian 10

WireGuard est un VPN à usage général (réseau privé virtuel) qui utilise une cryptographie de pointe. Comparé à d'autres solutions VPN populaires, telles que IPsec et OpenVPN, WireGuard est généralement plus rapide, plus facile à configurer et a un encombrement réduit. Il est multiplateforme et peut fonctionner presque n'importe où, y compris Linux, Windows, Android et macOS.

Wireguard est un VPN peer-to-peer ; il n'utilise pas le modèle client-serveur. Selon la configuration, un pair peut agir comme un serveur ou un client traditionnel. Il fonctionne en créant une interface réseau sur chaque appareil pair qui agit comme un tunnel. Les pairs s'authentifient en échangeant et en validant des clés publiques, imitant le modèle SSH. Les clés publiques sont mappées avec une liste d'adresses IP autorisées dans le tunnel. Le trafic VPN est encapsulé en UDP.

Cet article explique comment installer et configurer WireGuard sur Debian 10 qui agira comme un serveur VPN. Nous vous montrerons également comment configurer WireGuard en tant que client sous Linux, Windows et macOS. Le trafic du client sera acheminé via le serveur Debian 10.

Cette configuration peut être utilisée comme une protection contre les attaques de l'homme du milieu, la navigation anonyme sur le Web, le contournement du contenu géo-restreint ou la possibilité pour vos collègues travaillant à domicile de se connecter en toute sécurité au réseau de l'entreprise.

Conditions préalables #

Pour suivre ce guide, vous aurez besoin d'une machine sur laquelle Debian 10 est installé. Vous avez également besoin de root ou [accès sudo](https://linuxize.com/post/how-to-create-a-sudo-user-on-debian/ pour installer des paquets et apporter des modifications au système.

Configuration du serveur WireGuard #

Nous allons commencer par installer le package WireGuard sur la machine Debian et le configurer pour agir en tant que serveur. Nous allons également configurer le système pour acheminer le trafic des clients à travers celui-ci.

Installer WireGuard sur Debian 10 #

WireGuard est disponible dans les dépôts de rétroportage Debian. Pour ajouter le référentiel à votre système, exécutez :

echo 'deb http://ftp.debian.org/debian buster-backports main' | sudo tee /etc/apt/sources.liste.d/buster-backports.liste

Une fois le référentiel activé, mettez à jour le cache apt et installez le module et les outils WireGuard :

mise à jour sudo aptsudo apt installer wireguard
WireGuard fonctionne comme un module de noyau.

Configuration de WireGuard #

Vous pouvez configurer et gérer les interfaces WireGuard avec le wg et wg-rapide outils de ligne de commande.

Chaque appareil du réseau VPN WireGuard doit avoir une clé privée et publique. Exécutez la commande suivante pour générer la paire de clés :

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Les fichiers sont générés dans le /etc/wireguard annuaire. Utilisez le chat ou alors moins commandes pour afficher le contenu des fichiers. La clé privée ne doit jamais être partagée avec qui que ce soit et doit toujours être sécurisée.

Wireguard prend également en charge une clé pré-partagée, qui ajoute une couche supplémentaire de cryptographie à clé symétrique. Cette clé est facultative et doit être unique pour chaque paire de pairs.

L'étape suivante consiste à configurer le périphérique du tunnel qui acheminera le trafic VPN.

L'appareil peut être configuré soit à partir de la ligne de commande en utilisant le ip et wg commandes, ou en créant manuellement le fichier de configuration. Nous allons créer la configuration avec un éditeur de texte.

Ouvrez votre éditeur et créez un nouveau fichier nommé wg0.conf avec le contenu suivant :

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface] Adresse = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE 

Vous pouvez nommer l'interface comme vous le souhaitez. Cependant, il est recommandé d'utiliser quelque chose comme wg0 ou alors wgvpn0.

Les paramètres de la section interface ont la signification suivante :

le wg0.conf et Clé privée les fichiers ne doivent pas être lisibles par les utilisateurs normaux. Utiliser chmod pour définir les autorisations de fichiers sur 600:

sudo chmod 600 /etc/wireguard/privatekey,wg0.conf

Une fois terminé, apportez le wg0 interface en utilisant les attributs spécifiés dans le fichier de configuration :

sudo wg-quick up wg0

La sortie ressemblera à ceci :

[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT ; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE 

Pour vérifier l'état et la configuration de l'interface, exécutez :

sudo wg montrer wg0
interface : wg0 clé publique : +Vpyku+gjVJuXGR/OXXt6cmBKPdc06Qnm3hpRhMBtxs= clé privée : (caché) port d'écoute : 51820 

Vous pouvez également vérifier l'état de l'interface avec ip un spectacle wg0:

ip un spectacle wg0
4 : wg0 :  mtu 1420 qdisc noqueue state UNKNOWN groupe par défaut qlen 1000 lien/aucun inet 10.0.0.1/24 portée globale wg0 valid_lft pour toujours prefer_lft pour toujours 

WireGuard peut être géré avec Systemd. Pour amener l'interface WireGuard au démarrage, exécutez la commande suivante :

sudo systemctl activer wg-quick@wg0

Mise en réseau du serveur et configuration du pare-feu #

Le transfert IP doit être activé pour que le NAT fonctionne. Ouvrez le /etc/sysctl.conf fichier et ajoutez ou décommentez la ligne suivante :

sudo nano /etc/sysctl.conf
/etc/sysctl.conf
rapporter.ipv4.ip_forward=1

Enregistrez le fichier et appliquez la modification :

sudo sysctl -p
rapporter.ipv4.ip_forward = 1 

Si vous utilisez UFW pour gérer votre pare-feu, vous devez ouvrir le trafic UDP sur le port 51820:

sudo ufw autoriser 51820/udp

C'est ça. L'homologue Debian qui fera office de serveur a été configuré.

Configuration des clients Linux et macOS #

Les instructions d'installation pour toutes les plates-formes prises en charge sont disponibles sur https://wireguard.fr/installer/ . Sur les systèmes Linux, vous pouvez installer le package à l'aide du gestionnaire de packages de distribution et sur macOS avec brasser.

Une fois installé, suivez les étapes ci-dessous pour configurer le périphérique client.

Le processus de configuration d'un client Linux et macOS est à peu près le même que pour le serveur. Tout d'abord, générez les clés publiques et privées :

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Créer le fichier wg0.conf et ajoutez le contenu suivant :

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Point de terminaison = SERVER_IP_ADDRESS:51820 AllowedIPs = 0.0.0.0/0 

Les paramètres de la section interface ont la même signification que lors de la configuration du serveur :

La section homologue contient les champs suivants :

Si vous devez configurer des clients supplémentaires, répétez simplement les mêmes étapes en utilisant une adresse IP privée différente.

Configuration des clients Windows #

Téléchargez et installez le package Windows msi à partir du site Web de WireGuard .

Une fois installé, ouvrez l'application WireGuard et cliquez sur « Ajouter un tunnel » -> « Ajouter un tunnel vide… » comme indiqué sur l'image ci-dessous :

Une paire de clés publiques est automatiquement créée et affichée à l'écran.

Saisissez un nom pour le tunnel et modifiez la configuration comme suit :

[Interface] PrivateKey = CLIENT_PRIVATE_KEY Adresse = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Point de terminaison = SERVER_IP_ADDRESS:51820 AllowedIPs = 0.0.0.0/0 

Dans la section interface, ajoutez une nouvelle ligne pour définir l'adresse du tunnel client.

Dans la section homologue, ajoutez les champs suivants :

Une fois terminé, cliquez sur le bouton « Enregistrer ».

Ajouter le pair client au serveur #

La dernière étape consiste à ajouter la clé publique et l'adresse IP du client au serveur. Pour ce faire, exécutez la commande suivante sur le serveur Debian :

sudo wg set wg0 pair CLIENT_PUBLIC_KEY allow-ips 10.0.0.2

Assurez-vous de changer le CLIENT_PUBLIC_KEY avec la clé publique que vous avez générée sur la machine cliente (sudo cat /etc/wireguard/publickey) et ajustez l'adresse IP du client si elle est différente. Les utilisateurs Windows peuvent copier la clé publique à partir de l'application WireGuard.

Une fois cela fait, retournez sur la machine cliente et affichez l'interface de tunneling.

Clients Linux et macOS #

Exécutez la commande suivante pour afficher l'interface :

sudo wg-quick up wg0

Vous devez maintenant être connecté au serveur Debian et le trafic de votre machine client doit être acheminé à travers celui-ci. Vous pouvez vérifier la connexion avec :

sudo wg
interface : wg0 clé publique : gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo= clé privée : (caché) port d'écoute : 53527 fwmark : 0xca6c pair : r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/=PGq8.XXX.XXX.XXX : 51820 ips autorisé : 0.0.0.0/0 dernière poignée de main : il y a 53 secondes transfert : 3.23 Kio reçus, 3.50 Kio envoyés 

Vous pouvez également ouvrir votre navigateur, taper « quelle est mon adresse IP », et vous devriez voir l'adresse IP de votre serveur Debian.

Pour arrêter le tunnel, abaissez le wg0 interface:

sudo wg-rapide wg0

Clients Windows #

Si vous avez installé WireGuard sous Windows, cliquez sur le bouton « Activer ». Une fois les pairs connectés, l'état du tunnel passe à Actif :

Conclusion #

Nous vous avons montré comment installer WireGuard sur Debian 10 et le configurer en tant que serveur VPN. Cette configuration vous permet de surfer sur le Web de manière anonyme en gardant vos données de trafic privées.

Si vous rencontrez des problèmes, n'hésitez pas à laisser un commentaire.

Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...
5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...
Bataille pour Wesnoth 1.13.6 Développement publié
Bataille pour Wesnoth 1.13.6 publiée le mois dernier, est la sixième version de développement de la 1.13.x series et il apporte un certain nombre d'am...