Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

VPN AJLSM par WireGuard

De AJLSM
Aller à la navigation Aller à la recherche


Voir aussi : http://mw.ajlsm.com/wiki/Acc%C3%A8s_VPN_au_r%C3%A9seau_du_bureau

Objectif

Ce VPN permet de faire sortir la connexion Internet par le réseau AJLSM.

Une fois le VPN activé, l'adresse IP publique utilisée sur Internet doit être :

109.190.129.96

Il peut notamment être utilisé lorsqu'un accès distant n'est possible que depuis l'adresse IP d'AJLSM.

WireGuard peut rester utilisé en parallèle d'OpenVPN :

  • WireGuard sert à faire sortir le trafic Internet par AJLSM ;
  • OpenVPN continue à fournir l'accès aux réseaux privés et aux VM.

Le serveur WireGuard est :

local.ajlsm.com:51820

1. Principe des clés

Chaque machine doit posséder sa propre paire de clés WireGuard.

Il faut donc créer :

  • une paire de clés pour le Mac ;
  • une autre paire pour le poste Linux.

IMPORTANT : les clés privées ne doivent jamais être transmises.

Seules les clés publiques seront communiquées à l'administrateur.


2. Accès SSH

L'administration du serveur VPN se fait avec le compte :

ajlsm

L'authentification SSH par mot de passe est désactivée. Il faut donc disposer d'une clé SSH.


2.1. Vérifier si une clé SSH existe déjà

Sur le Mac ou Linux :

ls -la ~/.ssh/*.pub

Si une clé ED25519 existe déjà, par exemple :

~/.ssh/id_ed25519.pub

il n'est normalement pas nécessaire d'en créer une nouvelle.

Afficher la clé publique :

cat ~/.ssh/id_ed25519.pub

La ligne obtenue commence par :

ssh-ed25519 ...

C'est uniquement cette clé publique qui doit être transmise à l'administrateur.


2.2. En l'absence de clé SSH

Créer une clé ED25519 :

ssh-keygen -t ed25519

Puis afficher la clé publique :

cat ~/.ssh/id_ed25519.pub

Ne jamais transmettre ~/.ssh/id_ed25519.

Le fichier sans l'extension .pub est la clé privée.


3. Configuration WireGuard sur macOS

3.1. Application

L'application WireGuard pour macOS doit être installée.

Lancer WireGuard puis choisir :

Ajouter un tunnel
→ Ajouter un tunnel vide

WireGuard génère automatiquement une paire de clés.

La fenêtre contient une configuration de ce type :

[Interface]
PrivateKey = ...
Address =

La clé privée reste sur le Mac.


3.2. Récupérer la clé publique

Dans la fenêtre de configuration du tunnel, relever la clé publique affichée par WireGuard.

Transmettre cette clé publique à l'administrateur en précisant qu'il s'agit de :

WireGuard - Mac

Ne pas transmettre la clé privée.


4. Configuration WireGuard sous Linux

4.1. Installation

Sous Debian/Ubuntu :

sudo apt update
sudo apt install wireguard


4.2. Création des clés

Créer un répertoire réservé à WireGuard :

mkdir -p ~/.wireguard
chmod 700 ~/.wireguard

Créer une nouvelle paire de clés :

umask 077
wg genkey | tee ~/.wireguard/private.key | wg pubkey > ~/.wireguard/public.key

Afficher la clé publique :

cat ~/.wireguard/public.key

Transmettre cette clé à l'administrateur en précisant :

WireGuard - Linux

La clé privée reste dans :

~/.wireguard/private.key

Ne jamais transmettre ce fichier.


5. Informations à transmettre à l'administrateur

Transmettre :

  • la clé publique SSH ;
  • la clé publique WireGuard du Mac ;
  • la clé publique WireGuard du poste Linux.

Par exemple :

SSH :
ssh-ed25519 AAAA...
WireGuard Mac :
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
WireGuard Linux :
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=

Ne transmettre aucune clé privée.


6. Attendre la configuration du serveur

L'administrateur doit ensuite déclarer les deux machines sur le serveur VPN.

Les adresses prévues sont :

Mac   : 10.77.0.3
Linux : 10.77.0.4

Une fois les clés publiques enregistrées sur le serveur, terminer la configuration comme indiqué ci-dessous.


7. Finalisation du Mac

Dans l'application WireGuard, éditer le tunnel créé précédemment.

Conserver la ligne PrivateKey créée par WireGuard.

Configuration du tunnel WireGuard sur macOS

La configuration doit être :

[Interface]
PrivateKey = CLE_PRIVEE_WIREGUARD_MAC
Address = 10.77.0.3/32
DNS = 1.1.1.1
[Peer]
PublicKey = 9pRYa0t77+6PInXSc0fD6piEaNmOGL5LnhM2MpGFJRM=
Endpoint = local.ajlsm.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

La ligne :

DNS = 1.1.1.1

est nécessaire sur macOS. Sans elle, lors de l'activation du tunnel complet (AllowedIPs = 0.0.0.0/0), macOS peut conserver uniquement le serveur DNS de sa connexion locale. Le tunnel fonctionne alors, mais la résolution des noms Internet ne fonctionne plus.

Après activation, vérifier :

curl -4 ifconfig.me

Le résultat attendu est :

109.190.129.96

Ne pas remplacer la clé privée par celle d'une autre machine.

Enregistrer le tunnel.

8. Activation / désactivation sur Mac

Dans l'application WireGuard, le tunnel peut être activé ou désactivé immédiatement avec :

Activer / Désactiver

Cela permet de revenir rapidement à la connexion Internet normale en cas de problème.


8.1. Vérification

Une fois WireGuard activé, ouvrir un Terminal :

curl -4 ifconfig.me

Le résultat attendu est :

109.190.129.96

Tester ensuite le serveur VPN :

ping 10.77.0.1

Puis l'accès SSH :

ssh ajlsm@10.77.0.1


9. Finalisation sous Linux

Configuration du tunnel WireGuard sous Linux

Créer :

~/.wireguard/bureau.conf

avec :

[Interface]
PrivateKey = CLE_PRIVEE_WIREGUARD_LINUX
Address = 10.77.0.4/32
DNS = 1.1.1.1
[Peer]
PublicKey = 9pRYa0t77+6PInXSc0fD6piEaNmOGL5LnhM2MpGFJRM=
Endpoint = local.ajlsm.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

La directive DNS = 1.1.1.1 force l'utilisation d'un serveur DNS accessible à travers le tunnel lorsque WireGuard prend en charge l'ensemble du trafic Internet.

Protéger le fichier :

chmod 600 ~/.wireguard/bureau.conf

Activer WireGuard :

sudo wg-quick up ~/.wireguard/bureau.conf

Vérifier :

curl -4 ifconfig.me

Le résultat attendu est :

109.190.129.96

10. Vérifications sous Linux

État du tunnel :

sudo wg show

Un tunnel fonctionnel doit notamment afficher :

latest handshake: ...

ainsi que des données reçues et envoyées.


10.1. Vérifier l'adresse IP publique

curl -4 ifconfig.me

Résultat attendu :

109.190.129.96


10.2. Tester le serveur VPN

ping 10.77.0.1


10.3. Tester SSH

ssh ajlsm@10.77.0.1


11. Utilisation avec OpenVPN

OpenVPN peut rester connecté.

Le principe est :

  • WireGuard prend en charge la sortie Internet ;
  • OpenVPN conserve les routes spécifiques vers les réseaux privés.

Après avoir activé les deux VPN, vérifier d'abord :

curl -4 ifconfig.me

Le résultat doit être :

109.190.129.96

Puis tester l'accès à une VM habituellement accessible par OpenVPN.

Si un comportement anormal apparaît, désactiver immédiatement WireGuard.

Sur Mac :

Désactiver

dans l'application WireGuard.

Sous Linux :

sudo wg-quick down ~/.wireguard/bureau.conf


12. Diagnostic

En cas de problème, procéder dans cet ordre.

1. Vérifier Internet sans WireGuard

Désactiver WireGuard et vérifier que la connexion Internet fonctionne normalement.


2. Vérifier le nom du serveur

nslookup local.ajlsm.com

Il doit être possible de résoudre le nom du serveur.


3. Activer WireGuard

Puis vérifier :

ping 10.77.0.1


4. Vérifier le handshake

Sous Linux :

sudo wg show

Sur Mac, l'application WireGuard permet également de voir l'activité du tunnel.

Un handshake récent indique que la communication avec le serveur WireGuard fonctionne.


5. Vérifier l'IP publique

curl -4 ifconfig.me

Résultat attendu :

109.190.129.96


6. Vérifier OpenVPN

Si WireGuard fonctionne mais qu'une VM privée n'est plus accessible, vérifier séparément l'état d'OpenVPN.


13. Informations techniques

Serveur WireGuard : local.ajlsm.com
Port              : UDP 51820
IP WireGuard      : 10.77.0.1
Réseau VPN         : 10.77.0.0/24
IP publique AJLSM : 109.190.129.96
Clé publique du serveur WireGuard :
9pRYa0t77+6PInXSc0fD6piEaNmOGL5LnhM2MpGFJRM=
Compte SSH :
ajlsm
SSH :
authentification par clé uniquement