GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurez votre propre serveur VPN WireGuard sur Ubuntu 20.04/18.04

Ce tutoriel va vous montrer comment configurer votre propre serveur VPN WireGuard sur Ubuntu. WireGuard est spécialement conçu pour le noyau Linux. Il s'exécute à l'intérieur du noyau Linux et vous permet de créer un tunnel VPN rapide, moderne et sécurisé.

Fonctionnalités VPN WireGuard

  • Léger et super rapide, faisant sauter OpenVPN hors de l'eau.
  • Multiplateforme. WireGuard peut fonctionner sous Linux, BSD, macOS, Windows, Android, iOS et OpenWRT.
  • L'authentification des utilisateurs se fait en échangeant des clés publiques, similaires aux clés SSH.
  • Il attribue des adresses IP de tunnel statiques aux clients VPN. Certaines personnes peuvent ne pas l'aimer, mais cela peut être très utile dans certains cas.
  • Les appareils mobiles peuvent basculer entre le Wi-Fi et le réseau mobile de manière transparente sans perdre de connectivité.
  • Il vise à remplacer OpenVPN et IPSec dans la plupart des cas d'utilisation.

WireGuard est mon protocole VPN de choix pour éliminer le besoin de configurer le cryptage TLS pour mes réseaux privés.

Exigences

Pour suivre ce tutoriel, vous aurez besoin d'un VPS (Virtual Private Server) pouvant accéder librement aux sites bloqués (Hors de votre pays ou système de filtrage Internet). Je recommande Kamatera VPS, qui comprend :

  • 30 jours d'essai gratuit.
  • À partir de 4 $/mois (1 Go de RAM)
  • VPS basé sur KVM hautes performances
  • 9 centres de données dans le monde, dont les États-Unis, le Canada, le Royaume-Uni, l'Allemagne, les Pays-Bas, Hong Kong et Israël

Suivez le tutoriel lié ci-dessous pour créer votre serveur Linux VPS chez Kamatera.

  • Comment créer un serveur VPS Linux sur Kamatera

Une fois que vous avez un VPS exécutant Ubuntu, suivez les instructions ci-dessous.

Ce didacticiel suppose que le serveur VPN et le client VPN exécutent tous deux Ubuntu système d'exploitation.

Étape 1 :Installez WireGuard sur le serveur et le bureau Ubuntu

Connectez-vous à votre serveur Ubuntu, puis exécutez les commandes suivantes pour installer WireGuard.

Ubuntu 20.04

Ubuntu 20.04 est livré avec le noyau Linux 5.4, qui possède un module Wireguard intégré.

sudo apt met à jourudo apt install wireguard wireguard-tools

Ubuntu 18.04

Ubuntu 18.04 est livré avec le noyau Linux 4.15, les utilisateurs doivent donc d'abord installer le noyau d'activation matérielle (HWE), qui installera le noyau 5.4 sur votre système.

sudo apt updatesudo apt install linux-generic-hwe-18.04-edge

Redémarrez votre serveur Ubuntu 18.04 et installez WireGuard.

sudo shutdown -r nowsudo apt install wireguard wireguard-tools wireguard-dkms

Utilisez ensuite les mêmes commandes pour installer WireGuard sur votre ordinateur Ubuntu local (le client VPN). Notez que vous devez également installer le openresolv package sur le client pour configurer le serveur DNS.

sudo apt install openresolv

Étape 2 :Générer une paire de clés publique/privée

Serveur

Exécutez la commande suivante sur le serveur Ubuntu pour créer une paire de clés publique/privée, qui sera enregistrée sous /etc/wireguard/ répertoire.

wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Client

Exécutez la commande suivante pour créer une paire de clés publique/privée sur l'ordinateur Ubuntu local (le client VPN).

wg genkey | sudo tee /etc/wireguard/client_private.key | wg pubkey | sudo tee /etc/wireguard/client_public.key

Étape 3 :Créer un fichier de configuration WireGuard

Serveur

Utilisez un éditeur de texte en ligne de commande comme Nano pour créer un fichier de configuration WireGuard sur le serveur Ubuntu. wg0 sera le nom de l'interface réseau.

sudo nano /etc/wireguard/wg0.conf

Copiez le texte suivant et collez-le dans votre fichier de configuration. Vous devez utiliser votre propre clé privée de serveur et votre clé publique client.

[Interface]Adresse =10.10.10.1/24ListenPort =51820PrivateKey =cD+ZjXiVIX+0iSX1PNijl4a+88lCbDgw7kO78oXXLEc=[Peer]PublicKey =AYQJf6HbkQ0X0Xyt+cTMTuJe3RFwbuCMF46LKgTwzz4=10.pre> 

Où :

  • Adresse :Spécifiez l'adresse IP privée du serveur VPN. Ici, j'utilise la plage de réseau 10.10.10.0/24, donc cela n'entrera pas en conflit avec la plage de votre réseau domestique. (La plupart des routeurs domestiques utilisent 192.168.0.0/24 ou 192.168.1.0/24). 10.10.10.1 est l'adresse IP privée du serveur VPN.
  • Clé privée :La clé privée du serveur VPN, qui se trouve dans le /etc/wireguard/server_private.key fichier sur le serveur.
  • ListenPort  :Le serveur VPN WireGuard écoutera sur le port UDP 51820, qui est le port par défaut.
  • Clé publique :La clé publique du client VPN, qui se trouve dans le /etc/wireguard/client_public.key fichier sur l'ordinateur client.
  • IP autorisées :adresses IP que le client VPN est autorisé à utiliser. Dans cet exemple, le client ne peut utiliser que l'adresse IP 10.10.10.2 à l'intérieur du tunnel VPN.

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Entrée pour confirmer. Appuyez sur Ctrl+X pour quitter.)

Modifiez le mode d'autorisation des fichiers afin que seul l'utilisateur root puisse lire les fichiers.

sudo chmod 600 /etc/wireguard/ -R

Client

Utilisez un éditeur de texte en ligne de commande comme Nano pour créer un fichier de configuration WireGuard sur votre ordinateur Ubuntu local. wg-client0 sera le nom de l'interface réseau.

sudo nano /etc/wireguard/wg-client0.conf

Copiez le texte suivant et collez-le dans votre fichier de configuration. Vous devez utiliser votre propre clé privée client et votre clé publique serveur.

 [Interface] Address =10.10.10.2/24DNS =10.10.10.1PrivateKey =COFA + X5UVHF + A3XJ6Enlatg + DoE3I5PHMGKRMKKUYXI =[Peer] PublicKe 56.78:51820PersistentKeepalive =25

Où :

  • Adresse :Spécifiez l'adresse IP privée du client VPN.
  • DNS :spécifiez 10.10.10.1 (serveur VPN) comme serveur DNS. Il sera configuré via le resolvconf commande. Vous pouvez également spécifier plusieurs serveurs DNS pour la redondance comme ceci :DNS = 10.10.10.1 8.8.8.8
  • Clé privée :La clé privée du client, qui se trouve dans le /etc/wireguard/client_private.key fichier sur l'ordinateur client.
  • Clé publique :La clé publique du serveur, qui se trouve dans le /etc/wireguard/server_public.key fichier sur le serveur.
  • IP autorisées  :0.0.0.0/0 représente l'ensemble d'Internet, ce qui signifie que tout le trafic vers Internet doit être acheminé via le VPN.
  • Point de terminaison :L'adresse IP publique et le numéro de port du serveur VPN. Remplacez 12.34.56.78 par la véritable adresse IP publique de votre serveur.
  • PersistentKeepalive :envoie un paquet vide authentifié au pair toutes les 25 secondes pour maintenir la connexion active. Si PersistentKeepalive n'est pas activé, le serveur VPN peut ne pas être en mesure d'envoyer un ping au client VPN.

Enregistrez et fermez le fichier.

Modifiez le mode de fichier afin que seul l'utilisateur root puisse lire les fichiers.

sudo chmod 600 /etc/wireguard/ -R

Étape 4 :Activer le transfert IP sur le serveur

Pour que le serveur VPN achemine les paquets entre les clients VPN et Internet, nous devons activer le transfert IP. Modifier sysctl.conf fichier.

sudo nano /etc/sysctl.conf

Ajoutez la ligne suivante à la fin de ce fichier.

net.ipv4.ip_forward =1

Enregistrez et fermez le fichier. Appliquez ensuite les modifications avec la commande ci-dessous. Le -p l'option chargera les paramètres sysctl depuis /etc/sysctl.conf dossier. Cette commande conservera nos modifications lors des redémarrages du système.

sudo sysctl -p

Étape 5 : Configurer le masquage d'adresses IP sur le serveur

Nous devons configurer le masquage IP dans le pare-feu du serveur, afin que le serveur devienne un routeur virtuel pour les clients VPN. J'utiliserai UFW, qui est un frontal du pare-feu iptables. Installez UFW sur Ubuntu avec :

sudo apt install ufw

Tout d'abord, vous devez autoriser le trafic SSH.

sudo ufw autorise 22/tcp

Ensuite, recherchez le nom de l'interface réseau principale de votre serveur.

ip -c a

Comme vous pouvez le voir, il s'appelle enp3s0 sur mon serveur Ubuntu.

Pour configurer le masquage IP, nous devons ajouter la commande iptables dans un fichier de configuration UFW.

sudo nano /etc/ufw/before.rules

Par défaut, il existe des règles pour le filter table. Ajoutez les lignes suivantes à la fin de ce fichier. Remplacez enp3s0 avec votre propre nom d'interface réseau.

# NAT table rules*nat:POSTROUTING ACCEPT [0:0]-A POSTROUTING -s 10.10.10.0/24 -o enp3s0 -j ​​MASQUERADE# Terminez chaque table avec la ligne 'COMMIT' ou ces règles ne seront pas traitéCOMMIT

Dans l'éditeur de texte Nano, vous pouvez aller à la fin du fichier en appuyant sur Ctrl+W , puis en appuyant sur Ctrl+V .

Les lignes ci-dessus s'ajouteront (-A ) une règle à la fin de POSTROUTING chaîne dunat table. Il reliera votre réseau privé virtuel à Internet. Et cachez également votre réseau du monde extérieur. Ainsi, Internet ne peut voir que l'IP de votre serveur VPN, mais pas l'IP de votre client VPN, tout comme votre routeur domestique masque votre réseau domestique privé.

Assurez-vous qu'il n'y a pas d'espace au début de chaque ligne.

Par défaut, UFW interdit le transfert de paquets. Nous pouvons autoriser le transfert pour notre réseau privé. Trouvez le ufw-before-forward chain dans ce fichier et ajoutez les 3 lignes suivantes, qui accepteront le transfert de paquets si l'IP source ou l'IP de destination est dans le 10.10.10.0/24 plage.

# autoriser le transfert pour le réseau de confiance-A ufw-before-forward -s 10.10.10.0/24 -j ACCEPT-A ufw-before-forward -d 10.10.10.0/24 -j ACCEPT

Enregistrez et fermez le fichier. Activez ensuite UFW.

activer sudo ufw

Si vous avez déjà activé UFW, vous pouvez utiliser systemctl pour redémarrer UFW.

sudo systemctl redémarrer ufw

Maintenant, si vous listez les règles dans la chaîne POSTROUTING de la table NAT en utilisant la commande suivante :

sudo iptables -t nat -L POSTROUTING

Vous pouvez voir la règle de mascarade.

Le traitement des règles de pare-feu par UFW peut prendre un certain temps. Si la règle de mascarade ne s'affiche pas, redémarrez à nouveau UFW (sudo systemctl restart ufw ).

Étape 6 :Installez un résolveur DNS sur le serveur

Puisque nous spécifions le serveur VPN comme serveur DNS pour le client, nous devons exécuter un résolveur DNS sur le serveur VPN. Nous pouvons installer le serveur DNS bind9.

sudo apt install bind9

Une fois installé, BIND démarrera automatiquement. Vous pouvez vérifier son statut avec :

état systemctl bind9

Exemple de sortie :

● named.service - Serveur de noms de domaine BIND chargé :chargé (/lib/systemd/system/named.service ; activé ; préréglage du fournisseur :activé) Actif :actif (en cours d'exécution) depuis le dim 2020-05-17 08:11 :26 UTC ; Il y a 37 s Docs :man:named(8) PID principal :13820 (nommé) Tâches :5 (limite :1074) Mémoire :14,3 Mo CGroup :/system.slice/named.service └─13820 /usr/sbin/named -f -u lier

S'il ne fonctionne pas, démarrez-le avec :

sudo systemctl start bind9

Modifiez le fichier de configuration du serveur DNS BIND.

sudo nano /etc/bind/named.conf.options

Ajoutez la ligne suivante pour permettre aux clients VPN d'envoyer des requêtes DNS récursives.

allow-recursion { 127.0.0.1; 10.10.10.0/24 ; } ;

Enregistrez et fermez le fichier. Redémarrez BIND9 pour que les modifications prennent effet.

sudo systemctl redémarrer bind9

Ensuite, vous devez exécuter la commande suivante pour autoriser les clients VPN à se connecter au port 53.

sudo ufw insert 1 autoriser à partir de 10.10.10.0/24

Étape 7 :Ouvrir le port WireGuard dans le pare-feu

Exécutez la commande suivante pour ouvrir le port UDP 51820 sur le serveur.

sudo ufw autorise 51820/udp

Étape 8 :Démarrer WireGuard

serveur

Exécutez la commande suivante sur le serveur pour démarrer WireGuard.

sudo systemctl start [email protected]

Activez le démarrage automatique au démarrage du système.

sudo systemctl enable [email protected]

Vérifiez son état avec la commande suivante. Son statut doit être active (exited) .

statut systemctl [protégé par e-mail]

Le serveur WireGuard est maintenant prêt à accepter les connexions client.

Client

Démarrez WireGuard.

sudo systemctl start [email protected]

Activez le démarrage automatique au démarrage du système.

sudo systemctl enable [email protected]

Vérifiez son état :

statut systemctl [protégé par e-mail]

Allez maintenant sur ce site Web :https://icanhazip.com/ pour vérifier votre adresse IP publique. Si tout s'est bien passé, il devrait afficher l'adresse IP publique de votre serveur VPN au lieu de l'adresse IP publique de votre ordinateur client.

Vous pouvez également exécuter la commande suivante pour obtenir l'adresse IP publique actuelle.

boucle https://icanhazip.com

Conseils de dépannage

Ping impossible

Vous pouvez envoyer un ping du serveur VPN au client VPN (ping 10.10.10.2 ) pour voir si le tunnel fonctionne. Si vous voyez le message d'erreur suivant dans le ping,

ping :sendmsg :clé requise non disponible

il se peut que les AllowedIPs paramètre est erroné, comme une faute de frappe. Après avoir corrigé la faute de frappe, redémarrez le serveur VPN et le client VPN.

Une autre raison peut être que vous avez oublié d'ajouter ListenPort = 51820 dans le fichier de configuration du serveur.

L'adresse IP publique ne change pas

Si le tunnel VPN est établi avec succès, mais que l'adresse IP publique du client ne change pas, c'est parce que la règle de masquage ou de transfert dans votre fichier de configuration UFW ne fonctionne pas. J'ai eu une fois une faute de frappe dans le /etc/ufw/before.rules fichier, ce qui a empêché mon ordinateur de naviguer sur Internet.

Notez que je ne recommande pas d'utiliser SaveConfig=true dans l'[Interface] section du fichier de configuration WireGuard. SaveConfig indique à WireGuard d'enregistrer la configuration d'exécution à l'arrêt. Donc, si vous ajoutez des [Peer] supplémentaires dans le fichier de configuration, puis redémarrez WireGuard, vos configurations nouvellement ajoutées seront écrasées.

Activer la journalisation du débogage dans le noyau Linux

Si vous utilisez le noyau Linux 5.6+, vous pouvez activer la journalisation de débogage pour WireGuard avec la commande suivante.

sudo su -echo module wireguard +p>
 /sys/kernel/debug/dynamic_debug/control

Ensuite, vous pouvez afficher les journaux de débogage avec

sudo dmesg -wH

ou

sudo journalctl -kf

Redémarrer

Si votre VPN ne fonctionne toujours pas, essayez de redémarrer le serveur VPN.

sudo systemctl restart [email protected]

Arrêtez ensuite le client VPN.

sudo systemctl stop [email protected]

Et mettre à niveau les packages logiciels sur le client VPN.

mise à jour sudo apt ; mise à niveau sudo apt

Ensuite, redémarrez le client VPN.

sudo shutdown -r nowsudo systemctl start [email protected]

Si votre VPN WireGuard ne peut fonctionner qu'après un redémarrage, envisagez d'ajouter une tâche cron pour redémarrer automatiquement le service.

sudo crontab -e

Ajoutez la ligne suivante dans ce fichier.

@daily systemctl redémarrer [email protected]

Comparaison de vitesse entre WireGuard et OpenConnect

Sur l'un de mes serveurs VPS, j'ai installé à la fois le serveur VPN WireGuard et OpenConnect. Le test de vitesse est le suivant. Cela peut ne pas vous sembler rapide, car la connexion entre mon ordinateur et le serveur VPN est très mauvaise. La vitesse à laquelle vous pouvez obtenir dépend de la latence et du taux de perte de paquets entre le client VPN et le serveur VPN.

  • WireGuard est le gagnant. C'est presque 3 fois plus rapide qu'OpenConnect.
  • OpenConnect sur TCP est plus rapide qu'OpenConnect sur UDP. Surpris ?

WireGuard est capable d'atteindre 52296 Kbps (environ 51 Mbit/s) lors de la lecture de vidéos YouTube.

OpenConnect (TLS avec algorithme TCP BBR) est capable d'atteindre 16504 Kbps (environ 16 Mbit/s) lors de la lecture de vidéos YouTube.

OpenConnect (TLS sur UDP) est capable d'atteindre 12997 Kbps (environ 12,7 Mbit/s) lors de la lecture de vidéos YouTube.

Ajout de clients VPN supplémentaires

WireGuard est conçu pour associer une adresse IP à un client VPN. Pour ajouter plus de clients VPN, vous devez créer une paire de clés privée/publique unique pour chaque client, puis ajouter la clé publique de chaque client VPN dans le fichier de configuration du serveur (/etc/wireguard/wg0.conf ) comme ceci :

 [Interface] Adresse =10.10.10.1/24PrivateKey =UIFH + xxjj0g0uAzj6vpqsbb / o68Syvqdmyjpy / flgfa =écouter =51820 [peer] publicy =75Vnv7hqfh + 3qit5ohzkcjfbjx8tc6ck62. 1Z/3rtl0i7cJorcinB7T4UOIzScifPNEIESFD8=IP autorisées =10.10.10.3/32[Peer]PublicKey =EVstHZc6QamzPgefDGPLFEjGyedJk6SZbCJttpzcvC8=IP autorisées =10.10.10.4/32

Chaque client VPN aura une adresse IP privée statique (10.10.10.2, 10.10.10.3, 10.10.10.4, etc.). Redémarrez le serveur WireGuard pour que les modifications prennent effet.

sudo systemctl restart [email protected]

Ajoutez ensuite la configuration WireGuard sur chaque client VPN comme d'habitude.

Redémarrage automatique lorsque la connexion VPN est interrompue

Parfois, la connexion VPN s'interrompait pour diverses raisons. Vous pouvez exécuter la commande suivante pour vérifier si le client VPN peut envoyer un ping à l'adresse IP privée du serveur VPN (10.10.10.1). Si le ping échoue, la commande de droite sera exécutée pour redémarrer le client VPN. || est l'opérateur OR de Bash. Il exécute la commande de droite uniquement si la commande de gauche a renvoyé une erreur.

ping -c9 10.10.10.1> /dev/null || systemctl redémarrer [protégé par e-mail]

Le ping sera effectué 9 fois, soit 9 secondes. Vous pouvez utiliser une boucle for dans le shell Bash pour exécuter la commande entière 6 fois, c'est-à-dire 54 secondes.

pour ((i=1 ; i<=6 ; i++)) faire (ping -c9 10.10.10.1> /dev/null || systemctl restart [email protected]) fait 

Nous pouvons maintenant créer une tâche Cron pour automatiser cette tâche. Modifiez le fichier crontab de l'utilisateur root sur le client VPN.

sudo crontab -e

Frapper n'est pas le shell par défaut dans Cron. Vous pouvez ajouter la ligne suivante au début du fichier Crontab pour en faire la valeur par défaut.

SHELL=/bin/bash

Ajoutez ensuite la ligne suivante à la fin de ce fichier.

* * * * * pour ((i=1 ; i<=6 ; i++)) faire (ping -c9 10.10.10.1> /dev/null || systemctl restart [email protected]) fait 

Cette tâche Cron s'exécutera toutes les minutes et il y aura 6 vérifications toutes les minutes. Enregistrez et fermez le fichier.

Utilisation avancée

Je vais maintenant vous montrer comment utiliser le routage des règles , tunneling fractionné , et interrupteur d'arrêt VPN avec WireGuard VPN. Remarque qu'il n'est pas recommandé de les utiliser conjointement les uns avec les autres. Si vous utilisez le routage de stratégie, vous ne devez pas activer le split tunneling ou le kill switch VPN, et vice versa. Cette section est destinée aux utilisateurs avancés. Si vous êtes un débutant WireGuard et que vous ne savez pas à quoi ils servent, n'appliquez pas les instructions de cette section.

Routage des règles

Par défaut, tout le trafic sur le client VPN sera acheminé via le serveur VPN. Parfois, vous souhaiterez acheminer uniquement un type de trafic spécifique, en fonction du protocole de la couche transport et du port de destination. C'est ce qu'on appelle le routage de stratégie.

Le routage de stratégie est configuré sur l'ordinateur client et nous devons d'abord arrêter la connexion VPN.

sudo systemctl stop [email protected]

Modifiez ensuite le fichier de configuration du client.

sudo nano /etc/wireguard/wg-client0.conf

Par exemple, si vous ajoutez les 3 lignes suivantes dans le [interface] section, alors WireGuard créera une table de routage nommée "1234" et ajoutera la règle IP dans la table de routage. Dans cet exemple, le trafic sera acheminé via le serveur VPN uniquement lorsque TCP est utilisé comme protocole de couche de transport et que le port de destination est 25, c'est-à-dire lorsque l'ordinateur client envoie des e-mails.

Table =1234PostUp =ip rule add ipproto tcp dport 25 table 1234PreDown =ip rule delete ipproto tcp dport 25 table 1234

Remarque :Le client doit exécuter Ubuntu 20.04 ou supérieur afin de configurer le routage de la politique. L'ip l'utilitaire sur Ubuntu 18.04 ne prend pas en charge le ipproto et dport arguments.

Enregistrez et fermez le fichier. Démarrez ensuite le client WireGuard.

sudo systemctl start [email protected]

Si vous souhaitez acheminer le trafic pour les ports TCP 80 et 443, utilisez la syntaxe suivante.

Table =1234PostUp =ip rule add ipproto tcp dport 80 table 1234; règle IP ajouter ipproto tcp dport 443 table 1234PreDown =ip rule supprimer ipproto tcp dport 80 table 1234 ; ip rule delete ipproto tcp dport 443 table 1234

N'oubliez pas que vous devez arrêter la connexion VPN WireGuard avant de modifier les règles de routage de la politique.

Vous pouvez également spécifier une plage de ports comme ci-dessous (port TCP 26 au port TCP 10240).

Table =1234PostUp =ip rule add ipproto tcp dport 26-10240 table 1234PreDown =ip rule delete ipproto tcp dport 26-10240 table 1234

Si vous souhaitez spécifier à la fois les ports TCP et UDP, supprimez ipproto tcp .

Table =1234PostUp =ip rule add dport 26-10240 table 1234PreDown =ip rule delete dport 26-10240 table 1234

Vous souhaiterez peut-être configurer le client VPN pour utiliser le tunnel VPN uniquement lorsque le trafic est destiné à certaines adresses IP. Vous pouvez le faire avec le to option.

Table =1234PostUp =règle IP ajouter à 10.0.0.0/24 table 1234PreDown =supprimer règle IP à 10.0.0.0/24 table 1234

Tunneling fractionné

Par défaut, tout le trafic sur le client VPN sera acheminé via le serveur VPN. Voici comment activer le split tunneling, donc uniquement le trafic vers le 10.10.10.0/24 La plage IP sera tunnellisée via WireGuard VPN. Ceci est utile lorsque vous souhaitez créer un réseau privé pour plusieurs serveurs cloud, car les clients VPN s'exécuteront sur des serveurs cloud et si vous utilisez un tunnel VPN complet, vous perdrez probablement la connexion aux serveurs cloud.

Modifiez le fichier de configuration du client.

sudo nano /etc/wireguard/wg-client0.conf

Modifier

IP autorisées =0.0.0.0/0

À

IP autorisées =10.10.10.0/24

Ainsi, le trafic sera acheminé via VPN uniquement lorsque l'adresse de destination se trouve dans la plage IP 10.10.10.0/24. Enregistrez et fermez le fichier. Redémarrez ensuite le client WireGuard.

sudo systemctl restart [email protected]

Vous pouvez également autoriser plusieurs plages d'adresses IP. Disons que le serveur VPN gère également le 10.10.20.0/24 réseau, vous pouvez alors configurer AllowedIPs sur le client VPN comme ceci :

IP autorisées =10.10.10.0/24, 10.10.20.0/24

Ainsi, le client VPN peut atteindre le 10.10.20.0/24 réseau via le serveur VPN, et vice versa.

Pour ajouter une seule adresse IP, utilisez la syntaxe suivante.

IP autorisées =10.10.10.0/24, 10.10.20.0/24, 8.8.8.8/32

Cela indique au client d'utiliser le serveur VPN lors de la communication avec 8.8.8.8.

Commutateur d'arrêt VPN

Par défaut, votre ordinateur peut accéder à Internet via la passerelle normale lorsque la connexion VPN est interrompue. Vous pouvez activer la fonction kill switch, qui empêche le flux de paquets non chiffrés via des interfaces non-WireGuard.

Arrêtez le processus client WireGuard.

sudo systemctl stop [email protected]

Modifiez le fichier de configuration du client.

sudo nano /etc/wireguard/wg-client0.conf

Ajoutez les deux lignes suivantes dans le [interface] rubrique.

PostUp =iptables -I SORTIE ! -o %i -m marque ! --mark $(wg show %i fwmark) -m type_adresse ! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m marque ! --mark $(wg show %i fwmark) -m type_adresse ! --dst-type LOCAL -j REJETER

Comme ceci :

[Interface]Adresse =10.10.10.2/24DNS =10.10.10.1PrivateKey =cOFA+x5UvHF+a3xJ6enLatG+DoE3I5PhMgKrMKkUyXI=PostUp =iptables -I SORTIE ! -o %i -m marque ! --mark $(wg show %i fwmark) -m type_adresse ! --dst-type LOCAL -j REJECTPreDown =iptables -D OUTPUT ! -o %i -m marque ! --mark $(wg show %i fwmark) -m type_adresse ! --dst-type LOCAL -j REJECT[Peer]PublicKey =RaoAdsIEIwgV9DHNSubxWVG+nZ1GP/c3OU6A/efBJ0I=AllowedIPs =0.0.0.0/0Endpoint =12.34.56.78:51820PersistentKeepalive =25

Enregistrez et fermez le fichier. Démarrez ensuite le client WireGuard.

sudo systemctl start [email protected]

Plusieurs adresses dans l'interface WireGuard

Une interface WireGuard peut avoir plusieurs adresses IP. Par exemple, vous pouvez avoir deux adresses IP sur le client VPN.

[Interface]Adresse =10.10.10.2/24Adresse =10.10.10.3/24....

Dans ce cas, vous devez autoriser plusieurs adresses IP sur le serveur VPN pour ce client particulier, sinon le client VPN risque de ne pas pouvoir se connecter au serveur VPN.

[Peer]...IP autorisées =10.10.10.2/32, 10.10.10.3/32

Vous pouvez utiliser la commande suivante pour vérifier que les adresses IP appartiennent à une interface réseau.

ip -c a

Remarque

  • Le ifconfig La commande ne peut afficher que l'adresse IP d'une interface réseau.
  • Si vous configurez une autre interface WireGuard dans un nouveau .conf fichier, alors il doit se lier à un port autre que 51820, ou vous verrez l'erreur "Adresse déjà utilisée".

Ubuntu
  1. Configurez un serveur VPN sur votre PC Linux

  2. Comment configurer un serveur OpenVPN sur Ubuntu 18.04

  3. Comment configurer WireGuard VPN sur Ubuntu 20.04

  4. Comment configurer WireGuard VPN sur Ubuntu (un guide étape par étape)

  5. Comment configurer WireGuard sur Ubuntu 22.04

Installez OpenLiteSpeed, MariaDB, PHP8.0 sur le serveur Ubuntu 20.04/18.04

Comment installer le bureau GNOME sur le serveur Linux Ubuntu 20.04/18.04

Comment installer FileZilla Server sur Ubuntu 20.04/18.04 Linux

Comment installer Plex Media Server sur Ubuntu 20.04/18.04

Comment créer votre propre serveur VPN IPsec sous Linux

Comment configurer un Vpn Pptp sur le propre serveur Ubuntu ?