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
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| 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 425 : | Ligne 425 : | ||
authentification par clé uniquement | authentification par clé uniquement | ||
= 14. Résumé des opérations avec un exemple | = 14. Résumé des opérations avec un exemple = | ||
1 - AJLSM : autorisation de l'accès SSH de mdia | 1 - AJLSM : autorisation de l'accès SSH de mdia | ||
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
Objectif
[modifier | modifier le wikicode]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.
2. Accès SSH
[modifier | modifier le wikicode]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