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

« VPN AJLSM par WireGuard » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
 
(2 versions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :


== Objectif ==
== Objectif ==
 
[[category:VPN]]
Ce VPN permet de faire sortir la connexion Internet par le réseau AJLSM.
Ce VPN permet de faire sortir la connexion Internet par le réseau AJLSM.


Ligne 424 : Ligne 424 :
  SSH :
  SSH :
  authentification par clé uniquement
  authentification par clé uniquement
= 14. Résumé des opérations avec un exemple =
1 - AJLSM : autorisation de l'accès SSH de mdia
Ajouter la clé SSH publique de mdia dans :
    /home/ajlsm/.ssh/authorized_keys
sur vpn1.
La clé privée SSH de mdia reste sur son MacBook et ne doit jamais être transmise.
2 - MDIA : installation et configuration de WireGuard sur son MacBook
2-1 - Vérifier si les outils WireGuard sont installés
    wg --version
Si la commande fonctionne, passer au point 2-2.
Sinon, installer les outils WireGuard avec Homebrew :
    brew install wireguard-tools
Puis vérifier :
    wg --version
2-2 - Création des clés WireGuard
Créer un répertoire protégé :
    mkdir -p ~/.wireguard
    chmod 700 ~/.wireguard
Créer la paire de clés :
    umask 077
    wg genkey | tee ~/.wireguard/private.key | wg pubkey > ~/.wireguard/public.key
Deux fichiers sont alors créés :
    ~/.wireguard/private.key
    ~/.wireguard/public.key
La clé PRIVÉE reste exclusivement sur le MacBook de mdia.
Elle ne doit jamais être transmise.
2-3 - MDIA : transmission de la clé publique WireGuard à AJLSM
Afficher la clé publique :
    cat ~/.wireguard/public.key
Mdia transmet uniquement cette valeur à AJLSM.
2-4 - AJLSM : ajout du MacBook de mdia sur vpn1
Après réception de la clé publique WireGuard de mdia, éditer sur vpn1 :
    sudo nano /etc/wireguard/wg0.conf
Ajouter :
    # mdia - MacBook
    [Peer]
    PublicKey = CLE_PUBLIQUE_WIREGUARD_DE_MDIA
    AllowedIPs = 10.77.0.3/32
Recharger ensuite la configuration WireGuard du serveur sans interrompre
les connexions existantes.
[Cette opération sera faite ensemble lors de la réception de la clé.]
2-5 - MDIA : création de la configuration WireGuard sur son MacBook
Créer le fichier :
    ~/.wireguard/bureau.conf
avec :
    [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
IMPORTANT :
La valeur de PrivateKey est la clé PRIVÉE du MacBook de mdia.
Pour l'afficher :
    cat ~/.wireguard/private.key
Cette valeur doit être copiée dans :
    PrivateKey = ...
Elle ne doit pas être envoyée à AJLSM.
Protéger ensuite le fichier bureau.conf :
    chmod 600 ~/.wireguard/bureau.conf
Vérifier :
    ls -l ~/.wireguard/bureau.conf
On doit obtenir des droits équivalents à :
    -rw-------
2-6 - Test de WireGuard en ligne de commande
Démarrer le tunnel :
    sudo wg-quick up ~/.wireguard/bureau.conf
Le tunnel WireGuard doit maintenant être actif.
2-7 - Tests
2-7-1 - Test du serveur VPN :
    ping 10.77.0.1
Le Raspberry doit répondre.
2-7-2 - Vérification de l'adresse IP publique :
    curl -4 ifconfig.me
La valeur renvoyée doit être :
    109.190.129.96
Cela confirme que le trafic Internet du MacBook passe bien par :
    MacBook mdia
        → WireGuard
        → vpn1
        → OverTheBox AJLSM
        → Internet
2-7-3 - Test de l'accès SSH :
    ssh ajlsm@10.77.0.1
Si tout va bien, la connexion doit être directe sans demander le mot de
passe du compte ajlsm.
L'authentification est réalisée avec la clé SSH de mdia.
2-7-4 - Test réel
Ouvrir normalement le navigateur du MacBook et accéder à l'URL du serveur
Proxmox posant problème.
Aucune configuration particulière du navigateur n'est nécessaire.
Le serveur distant doit voir la connexion comme provenant de :
    109.190.129.96
2-8 - Arrêt et redémarrage de WireGuard en ligne de commande
Démarrage :
    sudo wg-quick up ~/.wireguard/bureau.conf
Arrêt :
    sudo wg-quick down ~/.wireguard/bureau.conf
IMPORTANT :
Avec :
    AllowedIPs = 0.0.0.0/0
WireGuard transporte l'ensemble du trafic Internet IPv4.
Si vpn1 ou le tunnel devient indisponible, la connexion Internet du MacBook
peut donc sembler coupée.
Dans ce cas, arrêter WireGuard :
    sudo wg-quick down ~/.wireguard/bureau.conf
La connexion Internet normale est alors immédiatement rétablie.
2-9 - Intégration dans l'application WireGuard Mac
Une fois le fonctionnement validé en ligne de commande :
1. Arrêter d'abord le tunnel lancé en ligne de commande :
    sudo wg-quick down ~/.wireguard/bureau.conf
2. Lancer l'application WireGuard.
3. Cliquer sur + pour ajouter/importer un tunnel.
4. Importer :
    ~/.wireguard/bureau.conf
Si le fichier n'est pas accessible dans le sélecteur de fichiers parce que
le répertoire .wireguard est caché, faire temporairement une copie sur le
Bureau :
    cp ~/.wireguard/bureau.conf ~/Desktop/bureau.conf
Importer cette copie dans WireGuard.
Une fois l'import effectué, supprimer la copie :
    rm ~/Desktop/bureau.conf
Cette suppression est importante car bureau.conf contient la clé privée
WireGuard.
5. Activer ou désactiver ensuite WireGuard depuis l'application ou depuis
l'icône WireGuard de la barre des menus.
IMPORTANT :
Ne pas lancer simultanément le même tunnel avec l'application WireGuard
et avec wg-quick.
Utiliser soit l'application, soit :
    sudo wg-quick up ~/.wireguard/bureau.conf

Dernière version du 8 septembre 2026 à 13:21


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

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

[modifier | modifier le wikicode]

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.


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à

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

3.1. Application

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

4.1. Installation

[modifier | modifier le wikicode]

Sous Debian/Ubuntu :

sudo apt update
sudo apt install wireguard


4.2. Création des clés

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

Configuration du tunnel WireGuard sous Linux

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

É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

[modifier | modifier le wikicode]
curl -4 ifconfig.me

Résultat attendu :

109.190.129.96


10.2. Tester le serveur VPN

[modifier | modifier le wikicode]
ping 10.77.0.1


10.3. Tester SSH

[modifier | modifier le wikicode]
ssh ajlsm@10.77.0.1


11. Utilisation avec OpenVPN

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]

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

1. Vérifier Internet sans WireGuard

[modifier | modifier le wikicode]

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


2. Vérifier le nom du serveur

[modifier | modifier le wikicode]
nslookup local.ajlsm.com

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


3. Activer WireGuard

[modifier | modifier le wikicode]

Puis vérifier :

ping 10.77.0.1


4. Vérifier le handshake

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]
curl -4 ifconfig.me

Résultat attendu :

109.190.129.96


6. Vérifier OpenVPN

[modifier | modifier le wikicode]

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

[modifier | modifier le wikicode]
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

14. Résumé des opérations avec un exemple

[modifier | modifier le wikicode]

1 - AJLSM : autorisation de l'accès SSH de mdia

Ajouter la clé SSH publique de mdia dans :

   /home/ajlsm/.ssh/authorized_keys

sur vpn1.

La clé privée SSH de mdia reste sur son MacBook et ne doit jamais être transmise.


2 - MDIA : installation et configuration de WireGuard sur son MacBook


2-1 - Vérifier si les outils WireGuard sont installés

   wg --version

Si la commande fonctionne, passer au point 2-2.

Sinon, installer les outils WireGuard avec Homebrew :

   brew install wireguard-tools

Puis vérifier :

   wg --version


2-2 - Création des clés WireGuard

Créer un répertoire protégé :

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

Créer la paire de clés :

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

Deux fichiers sont alors créés :

   ~/.wireguard/private.key
   ~/.wireguard/public.key

La clé PRIVÉE reste exclusivement sur le MacBook de mdia.

Elle ne doit jamais être transmise.


2-3 - MDIA : transmission de la clé publique WireGuard à AJLSM

Afficher la clé publique :

   cat ~/.wireguard/public.key

Mdia transmet uniquement cette valeur à AJLSM.


2-4 - AJLSM : ajout du MacBook de mdia sur vpn1

Après réception de la clé publique WireGuard de mdia, éditer sur vpn1 :

   sudo nano /etc/wireguard/wg0.conf

Ajouter :

   # mdia - MacBook
   [Peer]
   PublicKey = CLE_PUBLIQUE_WIREGUARD_DE_MDIA
   AllowedIPs = 10.77.0.3/32

Recharger ensuite la configuration WireGuard du serveur sans interrompre les connexions existantes.

[Cette opération sera faite ensemble lors de la réception de la clé.]


2-5 - MDIA : création de la configuration WireGuard sur son MacBook

Créer le fichier :

   ~/.wireguard/bureau.conf

avec :

   [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

IMPORTANT :

La valeur de PrivateKey est la clé PRIVÉE du MacBook de mdia.

Pour l'afficher :

   cat ~/.wireguard/private.key

Cette valeur doit être copiée dans :

   PrivateKey = ...

Elle ne doit pas être envoyée à AJLSM.

Protéger ensuite le fichier bureau.conf :

   chmod 600 ~/.wireguard/bureau.conf

Vérifier :

   ls -l ~/.wireguard/bureau.conf

On doit obtenir des droits équivalents à :

   -rw-------


2-6 - Test de WireGuard en ligne de commande

Démarrer le tunnel :

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

Le tunnel WireGuard doit maintenant être actif.


2-7 - Tests

2-7-1 - Test du serveur VPN :

   ping 10.77.0.1

Le Raspberry doit répondre.


2-7-2 - Vérification de l'adresse IP publique :

   curl -4 ifconfig.me

La valeur renvoyée doit être :

   109.190.129.96

Cela confirme que le trafic Internet du MacBook passe bien par :

   MacBook mdia
       → WireGuard
       → vpn1
       → OverTheBox AJLSM
       → Internet


2-7-3 - Test de l'accès SSH :

   ssh ajlsm@10.77.0.1

Si tout va bien, la connexion doit être directe sans demander le mot de passe du compte ajlsm.

L'authentification est réalisée avec la clé SSH de mdia.


2-7-4 - Test réel

Ouvrir normalement le navigateur du MacBook et accéder à l'URL du serveur Proxmox posant problème.

Aucune configuration particulière du navigateur n'est nécessaire.

Le serveur distant doit voir la connexion comme provenant de :

   109.190.129.96


2-8 - Arrêt et redémarrage de WireGuard en ligne de commande

Démarrage :

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

Arrêt :

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

IMPORTANT :

Avec :

   AllowedIPs = 0.0.0.0/0

WireGuard transporte l'ensemble du trafic Internet IPv4.

Si vpn1 ou le tunnel devient indisponible, la connexion Internet du MacBook peut donc sembler coupée.

Dans ce cas, arrêter WireGuard :

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

La connexion Internet normale est alors immédiatement rétablie.


2-9 - Intégration dans l'application WireGuard Mac

Une fois le fonctionnement validé en ligne de commande :

1. Arrêter d'abord le tunnel lancé en ligne de commande :

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

2. Lancer l'application WireGuard.

3. Cliquer sur + pour ajouter/importer un tunnel.

4. Importer :

   ~/.wireguard/bureau.conf

Si le fichier n'est pas accessible dans le sélecteur de fichiers parce que le répertoire .wireguard est caché, faire temporairement une copie sur le Bureau :

   cp ~/.wireguard/bureau.conf ~/Desktop/bureau.conf

Importer cette copie dans WireGuard.

Une fois l'import effectué, supprimer la copie :

   rm ~/Desktop/bureau.conf

Cette suppression est importante car bureau.conf contient la clé privée WireGuard.

5. Activer ou désactiver ensuite WireGuard depuis l'application ou depuis l'icône WireGuard de la barre des menus.


IMPORTANT :

Ne pas lancer simultanément le même tunnel avec l'application WireGuard et avec wg-quick.

Utiliser soit l'application, soit :

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