Wireguard
- 01 - Présentation
- 02 - Architecture réseau
- 03 - Installation des prérequis
- 04 - Préparation de l'environnement
- 05 - Configuration du serveur WireGuard
- 06 - Démarrage et validation du serveur
- 07 - Création d'un client WireGuard
- 08.1 - Configuration d'un client Windows 11
- 08.2 - Configuration d'un client Ubuntu
- 08.3 - Configuration d'un client Fedora
- 08.4 - Configuration d'un client Android
- 08.5 - Configuration d'un client iPhone / iPad
- 08.6 - Configuration d'un client macOS
- 09 - Mise à jour de WireGuard
- 10 - Dépannage
- 11 - Annexe : Utilisation du Full Tunnel
01 - Présentation
Cette documentation décrit la mise en place du serveur VPN WireGuard utilisé sur l'infrastructure personnelle Numericare.
L'objectif est de disposer d'un accès distant sécurisé au réseau domestique tout en conservant une navigation Internet performante depuis les appareils mobiles et les ordinateurs portables.
Objectifs
- Accéder au réseau domestique depuis Internet.
- Accéder aux serveurs Linux en SSH.
- Accéder aux machines Windows en RDP.
- Administrer Proxmox.
- Administrer Kubernetes.
- Accéder au NAS Synology.
- Accéder à Home Assistant.
- Accéder aux applications hébergées derrière le reverse proxy.
- Bénéficier du filtrage DNS d'AdGuard Home même en déplacement.
Architecture logique
Client VPN
(iPhone, Windows, Linux, macOS)
│
▼
WireGuard
│
├────────────► Réseau local
│ │
│ ├── Proxmox
│ ├── Kubernetes
│ ├── Synology
│ ├── Home Assistant
│ └── Serveurs Linux
│
▼
AdGuard Home
│
▼
Cloudflare / Quad9
Choix d'architecture
Deux modes de fonctionnement sont possibles avec WireGuard.
| Mode | Description | Choix |
|---|---|---|
| Full Tunnel | L'intégralité du trafic Internet passe par la maison. | ❌ Non retenu |
| Split Tunnel | Seul le trafic destiné au réseau domestique passe dans le VPN. | ✅ Retenu |
Le mode Split Tunnel permet de conserver les performances de la connexion Internet locale (5G, Fibre, Wi-Fi public...) tout en ayant accès à l'ensemble de l'infrastructure personnelle.
Fonctionnement DNS
Tous les clients VPN utilisent AdGuard Home comme serveur DNS.
Client VPN
│
▼
WireGuard
10.152.152.1
│
▼
AdGuard Home
│
▼
Cloudflare / Quad9
Cette architecture permet de bénéficier du blocage des publicités, des domaines malveillants et des trackers même lorsque l'appareil est connecté en 5G ou sur un réseau Wi-Fi externe.
Plan d'adressage
| Équipement | Adresse |
|---|---|
| Serveur WireGuard | 10.152.152.1/24 |
| Clients VPN | 10.152.152.0/24 |
| LXC NETWORK | 10.151.151.40 |
| DNS VPN | 10.152.152.1 |
Principe de fonctionnement
Navigation Internet
───────────────────
Téléphone
│
├────────► DNS
│
▼
WireGuard
│
▼
AdGuard Home
│
▼
Cloudflare / Quad9
Trafic Web
──────────
Téléphone
│
▼
5G / Fibre / Wi-Fi
(Le trafic Internet ne transite pas par le VPN)
Avantages de cette architecture
- Très faibles latences.
- Excellentes performances.
- Consommation de bande passante minimale à domicile.
- Accès sécurisé à l'ensemble du réseau personnel.
- Filtrage DNS AdGuard Home disponible partout.
- Configuration simple des nouveaux clients VPN.
Cette documentation décrit l'architecture actuellement utilisée sur l'infrastructure Numericare. Les exemples de configuration, les adresses IP et les commandes sont directement issus de l'environnement de production personnel.
02 - Architecture réseau
Cette page présente l'architecture réseau utilisée pour le serveur VPN WireGuard ainsi que les différents flux réseau entre les clients distants, le serveur VPN et l'infrastructure domestique.
Vue d'ensemble
Internet
│
│
▼
adguard.numericare.fr
│
│
Routeur ASUS RT-AC88U
Redirection UDP 51820
│
▼
LXC NETWORK (Debian 12)
10.151.151.40
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
│ │ │
WireGuard AdGuard Home DDNS Updater
10.152.152.1 Docker Docker
│
▼
Réseau VPN
10.152.152.0/24
│
▼
Réseau domestique
192.168.150.0/24
Plan d'adressage IP
| Équipement | Adresse IP | Description |
|---|---|---|
| Routeur ASUS | 192.168.150.254 | Passerelle Internet |
| LXC NETWORK | 10.151.151.40 | Serveur Debian hébergeant les services réseau |
| WireGuard | 10.152.152.1/24 | Serveur VPN |
| Clients VPN | 10.152.152.0/24 | Téléphones et ordinateurs |
| AdGuard Home | 10.152.152.1:53 | Serveur DNS utilisé par les clients VPN |
Services hébergés dans le LXC NETWORK
| Service | Mode | Description |
|---|---|---|
| WireGuard | Installation native | Serveur VPN |
| AdGuard Home | Docker (network_mode: host) | Serveur DNS avec filtrage |
| ISC DHCP | Docker (network_mode: host) | Serveur DHCP |
| DDNS Updater | Docker (network_mode: host) | Mise à jour automatique du DNS OVH |
Flux réseau
Connexion VPN
Client VPN
│
│ UDP 51820
▼
Routeur ASUS
│
▼
LXC NETWORK
│
▼
WireGuard
Accès aux serveurs internes
WireGuard
Résolution DNS
Client VPN
│
▼
10.152.152.1
(WireGuard)
│
▼
AdGuard Home
│
▼
Cloudflare
Google
Quad9
Mode Split Tunnel
L'infrastructure utilise un fonctionnement Split Tunnel.
Seuls les flux destinés aux réseaux internes transitent par le VPN. Le reste du trafic Internet continue d'utiliser la connexion locale (5G, Fibre ou Wi-Fi).
| Destination | Passe dans le VPN |
|---|---|
| 192.168.150.0/24 | ✅ Oui |
| 10.151.151.0/24 | ✅ Oui |
| 10.152.152.0/24 | ✅ Oui |
| Internet | ❌ Non |
Résolution DNS
Tous les clients WireGuard utilisent le serveur DNS interne de WireGuard.
DNS = 10.152.152.1
Cette configuration permet :
- le filtrage des publicités ;
- le blocage des trackers ;
- le blocage des domaines malveillants ;
- l'utilisation d'AdGuard Home quel que soit le réseau utilisé.
Pourquoi utiliser l'adresse 10.152.152.1 comme DNS ?
Bien que le conteneur AdGuard Home soit installé sur le LXC 10.151.151.40, les clients VPN utilisent l'adresse 10.152.152.1.
Cette adresse correspond à l'interface WireGuard du serveur et présente plusieurs avantages :
- elle est toujours accessible dès que le tunnel VPN est établi ;
- elle reste identique même si l'adresse LAN du serveur change ;
- elle simplifie la configuration des clients ;
- elle évite les problèmes de routage observés avec certains systèmes d'exploitation mobiles.
Bonnes pratiques
- Installer WireGuard directement sur Debian et non dans Docker.
- Installer AdGuard Home en Docker avec
network_mode: host.- Utiliser le mode Split Tunnel.
- Utiliser
10.152.152.1comme serveur DNS des clients VPN.- Conserver un plan d'adressage dédié au réseau VPN.
03 - Installation des prérequis
Cette page décrit l'installation des composants nécessaires au fonctionnement du serveur WireGuard sur le LXC NETWORK.
À l'issue de cette étape, le serveur disposera de tous les outils nécessaires pour créer le VPN, générer les clés cryptographiques et assurer le routage des paquets.
Prérequis
| Élément | Valeur |
|---|---|
| Système d'exploitation | Debian 12 (Bookworm) |
| Serveur | LXC NETWORK |
| Adresse IP | 10.151.151.40 |
| Accès | Compte sudo ou root |
| Connexion Internet | Requise |
Architecture concernée
Internet
│
▼
Freebox
192.168.150.0/24
│
▼
Routeur ASUS
10.151.151.0/24
│
▼
LXC NETWORK (Debian 12)
10.151.151.40
│
Installation de
WireGuard
Installation des paquets
Mettre à jour les dépôts puis installer les différents composants nécessaires.
sudo apt update
sudo apt install wireguard qrencode iptables-persistent -y
Description des paquets
| Paquet | Description |
|---|---|
| wireguard | Serveur VPN WireGuard et outils de gestion. |
| qrencode | Permet de générer des QR Codes pour les clients mobiles. |
| iptables-persistent | Sauvegarde automatiquement les règles NAT après un redémarrage. |
Vérification de l'installation
Contrôler que WireGuard est correctement installé.
wg --version
Résultat attendu
wireguard-tools v1.x.x
La version peut varier selon les mises à jour de Debian.
Vérification du module WireGuard
Contrôler que le noyau Linux dispose bien du support WireGuard.
sudo modprobe wireguard
lsmod | grep wireguard
Résultat attendu
wireguard XXXXX X
Vérification des outils installés
which wg
which wg-quick
which qrencode
Résultat attendu
/usr/bin/wg
/usr/bin/wg-quick
/usr/bin/qrencode
Versions installées
Il peut être utile de conserver les versions des composants installés afin de faciliter un futur dépannage.
dpkg -l | grep wireguard
dpkg -l | grep qrencode
Bonnes pratiques
Recommandations
- Installer WireGuard directement sur Debian plutôt que dans un conteneur Docker.
- Conserver AdGuard Home dans Docker avec
network_mode: host.- Toujours mettre à jour les dépôts avant l'installation.
- Éviter de mélanger plusieurs méthodes d'installation (APT, Snap, compilation).
Dépannage
Commande "wg" introuvable
Vérifier que le paquet est bien installé.
dpkg -l | grep wireguard
Le module WireGuard ne se charge pas
Vérifier la version du noyau Linux.
uname -r
Debian 12 intègre nativement le support WireGuard dans son noyau.
Résumé de cette étape
| Élément | Statut |
|---|---|
| Paquets installés | ✅ |
| WireGuard disponible | ✅ |
| Module noyau chargé | ✅ |
| QR Code disponible | ✅ |
| iptables-persistent installé | ✅ |
À l'issue de cette étape, le serveur possède tous les outils nécessaires pour mettre en place le VPN WireGuard. La prochaine page sera consacrée à la préparation de l'environnement, à la création de l'arborescence de travail et à la génération des clés cryptographiques du serveur.
04 - Préparation de l'environnement
Cette étape consiste à préparer l'environnement de travail du serveur WireGuard.
Les clés cryptographiques du serveur seront générées puis stockées dans un répertoire dédié afin de faciliter la maintenance et les sauvegardes.
Pourquoi stocker les clés dans /opt/network ?
Par défaut, WireGuard ne fournit aucune arborescence permettant d'organiser les clés des différents clients.
L'infrastructure Numericare utilise donc un répertoire dédié afin de centraliser toutes les informations liées au VPN.
Avantages
- Organisation claire des fichiers.
- Sauvegarde facilitée.
- Séparation entre la configuration système et les données.
- Stockage des QR Codes des clients.
- Gestion simplifiée des futurs clients VPN.
Arborescence retenue
/opt/network/
└── wireguard
├── server
│ ├── server.key
│ └── server.pub
│
├── clients
│ ├── iphone/
│ ├── windows/
│ ├── ubuntu/
│ └── ...
│
└── qr
├── iphone.png
├── windows.png
└── ...
Création de l'arborescence
sudo mkdir -p /opt/network/wireguard/server
sudo mkdir -p /opt/network/wireguard/clients
sudo mkdir -p /opt/network/wireguard/qr
Vérification
tree /opt/network
Résultat attendu
/opt/network
└── wireguard
├── clients
├── qr
└── server
Création des clés du serveur
Les clés WireGuard utilisent la cryptographie à clé publique.
- Une clé privée reste exclusivement sur le serveur.
- Une clé publique sera communiquée à tous les clients.
Se placer dans le répertoire du serveur
cd /opt/network/wireguard/server
Sécuriser les permissions par défaut
Avant de générer les clés, il est recommandé de limiter automatiquement les droits des nouveaux fichiers.
umask 077
Les fichiers créés seront uniquement accessibles au propriétaire.
Génération des clés
wg genkey | tee server.key | wg pubkey > server.pub
Contenu du répertoire
ls -lh
Résultat attendu
server.key
server.pub
Afficher les clés
cat server.key
cat server.pub
Important
- La clé privée (
server.key) ne doit jamais être transmise.- La clé publique (
server.pub) pourra être utilisée dans la configuration des clients VPN.
Vérification des permissions
ls -l
Résultat attendu
-rw------- server.key
-rw------- server.pub
Sauvegarde recommandée
Les clés du serveur sont les éléments les plus importants de l'infrastructure WireGuard.
Une copie hors du serveur est fortement recommandée.
Bonnes pratiques
- Copie sur le NAS Synology.
- Sauvegarde chiffrée.
- Ne jamais envoyer la clé privée par e-mail ou messagerie.
- Conserver une copie hors site.
Vérifications complémentaires
Calculer l'empreinte SHA256 des clés permet de vérifier ultérieurement leur intégrité.
sha256sum server.key
sha256sum server.pub
Résumé de cette étape
| Élément | Statut |
|---|---|
| Arborescence créée | ✅ |
| Répertoire serveur | ✅ |
| Répertoire clients | ✅ |
| Répertoire QR Codes | ✅ |
| Clé privée générée | ✅ |
| Clé publique générée | ✅ |
| Permissions vérifiées | ✅ |
À l'issue de cette étape, le serveur possède désormais son identité cryptographique. La page suivante sera consacrée à l'activation du routage IP et à la création de l'interface WireGuard (
wg0).
05 - Configuration du serveur WireGuard
Cette étape consiste à configurer le serveur WireGuard afin qu'il puisse accepter les connexions des futurs clients VPN.
À l'issue de cette page, l'interface wg0 sera entièrement configurée.
Architecture
Clients VPN
10.152.152.0/24
│
│
Interface wg0
10.152.152.1
│
LXC NETWORK
10.151.151.40
│
▼
Réseau ASUS
10.151.151.0/24
Activation du routage IPv4
Le serveur doit être capable de transférer les paquets entre le réseau VPN et le réseau local.
Éditer le fichier :
sudo nano /etc/sysctl.conf
Décommenter ou ajouter la ligne suivante :
net.ipv4.ip_forward=1
Appliquer immédiatement la configuration :
sudo sysctl -p
Vérifier :
cat /proc/sys/net/ipv4/ip_forward
Résultat attendu
1
Pourquoi activer le routage ?
Sans cette option, Linux reçoit les paquets provenant du VPN mais refuse de les transmettre vers le réseau local.
Le serveur WireGuard joue le rôle de routeur entre :
- le réseau VPN (10.152.152.0/24)
- le réseau ASUS (10.151.151.0/24)
Création du fichier de configuration
sudo nano /etc/wireguard/wg0.conf
Configuration complète
[Interface]
Address = 10.152.152.1/24
ListenPort = 51820
PrivateKey = <CONTENU_DE_SERVER.KEY>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -A FORWARD -o wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -o wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Comprendre chaque paramètre
| Paramètre | Description |
|---|---|
| Address | Adresse IP du serveur sur le réseau VPN. |
| ListenPort | Port UDP utilisé par WireGuard. |
| PrivateKey | Clé privée du serveur générée à l'étape précédente. |
| PostUp | Commandes exécutées automatiquement au démarrage de l'interface. |
| PostDown | Suppression automatique des règles lors de l'arrêt. |
Pourquoi utiliser MASQUERADE ?
Les équipements du réseau ASUS ne connaissent pas le réseau VPN 10.152.152.0/24.
Le NAT permet donc de masquer les clients VPN derrière l'adresse IP du serveur 10.151.151.40.
Client VPN
10.152.152.2
│
▼
WireGuard
10.152.152.1
│
NAT (MASQUERADE)
│
▼
10.151.151.40
│
▼
Serveur NAS
Serveur Linux
Home Assistant
Kubernetes
Pourquoi utiliser l'interface eth0 ?
Le LXC NETWORK possède une seule interface réseau reliée au LAN ASUS.
Les paquets quittent donc naturellement le serveur via eth0.
Vérification :
ip addr
Sécurisation du fichier
Le fichier contient la clé privée du serveur.
sudo chmod 600 /etc/wireguard/wg0.conf
Vérifier :
ls -l /etc/wireguard/wg0.conf
Résultat attendu
-rw------- root root
Contrôle de la configuration
Avant de démarrer WireGuard, vérifier que le fichier est correctement rempli.
sudo cat /etc/wireguard/wg0.conf
Les éléments suivants doivent être présents :
- Adresse 10.152.152.1/24
- Port 51820
- Clé privée
- Règles PostUp
- Règles PostDown
Résumé de cette étape
| Élément | Statut |
|---|---|
| Routage IPv4 activé | ✅ |
| Configuration WireGuard créée | ✅ |
| Interface wg0 configurée | ✅ |
| NAT configuré | ✅ |
| Permissions sécurisées | ✅ |
À ce stade, le serveur WireGuard est entièrement configuré mais n'est pas encore démarré. La prochaine page décrira le démarrage du service, l'ouverture du port UDP 51820 sur le routeur ASUS ainsi que les vérifications permettant de s'assurer que le serveur est opérationnel.
06 - Démarrage et validation du serveur
Après avoir installé WireGuard, généré les clés cryptographiques et créé le fichier de configuration, il est temps de démarrer le service et de vérifier son bon fonctionnement.
À la fin de cette étape, le serveur WireGuard sera opérationnel et en attente de connexions VPN.
Architecture
Internet
│
▼
Routeur ASUS
│
▼
LXC NETWORK (10.151.151.40)
│
WireGuard (wg0)
10.152.152.1/24
│
▼
En attente des clients VPN
Activer le démarrage automatique
Configurer WireGuard afin que le service démarre automatiquement à chaque redémarrage du serveur.
sudo systemctl enable wg-quick@wg0
Résultat attendu
Created symlink ...
Démarrer le service
sudo systemctl start wg-quick@wg0
Vérifier l'état du service
sudo systemctl status wg-quick@wg0
Résultat attendu
Active: active (exited)
Le service wg-quick configure l'interface réseau puis termine son exécution. L'état active (exited) est donc parfaitement normal.
Afficher la configuration WireGuard
sudo wg
Résultat attendu
interface: wg0
public key: xxxxxxxxxxxxxxxxxxxxxxxxx
listening port: 51820
À ce stade, aucun client n'est encore configuré. Il est donc normal que la commande n'affiche aucun peer.
Afficher l'adresse IP de l'interface
ip addr show wg0
Résultat attendu
inet 10.152.152.1/24
Contrôler le port d'écoute
Vérifier que WireGuard écoute bien sur le port UDP 51820.
sudo ss -lunp | grep 51820
Résultat attendu
udp UNCONN 0 0 0.0.0.0:51820
Contrôler les règles NAT
Les règles PostUp doivent avoir été ajoutées automatiquement au démarrage de l'interface.
sudo iptables -L FORWARD
sudo iptables -t nat -L POSTROUTING
Les règles autorisant le transfert entre wg0 et eth0 ainsi que la règle MASQUERADE doivent être présentes.
Vérifier le routage IPv4
cat /proc/sys/net/ipv4/ip_forward
Résultat attendu
1
Consulter les journaux système
En cas de problème lors du démarrage, consulter les journaux de systemd.
sudo journalctl -u wg-quick@wg0
Pour afficher uniquement les derniers événements :
sudo journalctl -u wg-quick@wg0 -n 50
Redémarrer le service
Après toute modification du fichier /etc/wireguard/wg0.conf, redémarrer WireGuard.
sudo systemctl restart wg-quick@wg0
Arrêter le service
sudo systemctl stop wg-quick@wg0
Les règles PostDown supprimeront automatiquement les règles iptables ajoutées au démarrage.
Commandes utiles
| Commande | Description |
|---|---|
sudo wg |
Afficher l'état du serveur WireGuard. |
ip addr show wg0 |
Afficher l'adresse IP de l'interface VPN. |
sudo wg show |
Afficher les statistiques détaillées. |
sudo systemctl restart wg-quick@wg0 |
Redémarrer le service. |
sudo systemctl status wg-quick@wg0 |
Afficher l'état du service. |
sudo journalctl -u wg-quick@wg0 |
Afficher les journaux système. |
Dépannage
L'interface wg0 n'existe pas
ip link show wg0
Si l'interface n'apparaît pas, vérifier le contenu du fichier /etc/wireguard/wg0.conf ainsi que les journaux systemd.
Le port 51820 n'est pas ouvert
Contrôler que le service est bien démarré :
sudo systemctl status wg-quick@wg0
Puis vérifier la présence de l'interface :
sudo wg
Erreur de syntaxe dans le fichier wg0.conf
Une erreur dans le fichier de configuration empêche le démarrage de WireGuard.
Les journaux systemd indiquent généralement la ligne concernée.
sudo journalctl -u wg-quick@wg0
Résumé de cette étape
| Élément | Statut |
|---|---|
| Service activé au démarrage | ✅ |
| Interface wg0 créée | ✅ |
| Serveur à l'écoute sur UDP 51820 | ✅ |
| Règles NAT chargées | ✅ |
| Routage IPv4 opérationnel | ✅ |
| Serveur prêt à recevoir des clients | ✅ |
Le serveur WireGuard est désormais pleinement opérationnel. La prochaine partie de cette documentation sera consacrée à la configuration du routeur ASUS (redirection du port UDP 51820, DNS dynamique et validation de l'accès depuis Internet), avant de passer à la création du premier client VPN.
07 - Création d'un client WireGuard
Cette page décrit la procédure permettant d'ajouter un nouveau client au serveur WireGuard.
Chaque client possède sa propre paire de clés cryptographiques ainsi qu'une adresse IP dédiée sur le réseau VPN.
Architecture
Serveur WireGuard
10.152.152.1
│
──────────────┼──────────────
│
Réseau VPN 10.152.152.0/24
│
┌─────────────┼─────────────┐
│ │ │
Windows iPhone Ubuntu
10.152.152.2 10.152.152.3 10.152.152.4
1. Créer le dossier du client
Chaque client possède son propre répertoire contenant ses clés, sa configuration et, si nécessaire, son QR Code.
cd /opt/network/wireguard/clients
mkdir -p windows
cd windows
2. Générer les clés cryptographiques
Limiter les permissions des fichiers générés.
umask 077
Créer ensuite la paire de clés.
wg genkey | tee windows.key | wg pubkey > windows.pub
3. Vérifier les fichiers générés
ls -l
Résultat attendu
windows.key
windows.pub
4. Afficher les clés
cat windows.key
cat windows.pub
Important
- La clé privée reste exclusivement sur le client.
- La clé publique sera ajoutée au serveur WireGuard.
5. Déclarer le client sur le serveur
Éditer le fichier de configuration du serveur.
sudo nano /etc/wireguard/wg0.conf
Ajouter à la fin du fichier :
[Peer]
PublicKey = <CONTENU_DE_WINDOWS.PUB>
AllowedIPs = 10.152.152.2/32
Chaque client doit disposer d'une adresse IP unique.
| Client | Adresse VPN |
|---|---|
| Windows | 10.152.152.2 |
| iPhone | 10.152.152.3 |
| Ubuntu | 10.152.152.4 |
| Android | 10.152.152.5 |
6. Créer le fichier de configuration du client
nano windows.conf
Configuration du client
[Interface]
PrivateKey = <CONTENU_DE_WINDOWS.KEY>
Address = 10.152.152.2/32
DNS = 10.152.152.1
[Peer]
PublicKey = bdo5MJaEb+NSEk9x5I2yStIDUjvgvgAoZkeQDksSMT4=
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
PersistentKeepalive = 25
Comprendre les paramètres
| Paramètre | Description |
|---|---|
| PrivateKey | Clé privée du client. |
| Address | Adresse IP du client sur le VPN. |
| DNS | Serveur AdGuard Home accessible via le VPN. |
| Endpoint | Nom DNS public du serveur WireGuard. |
| AllowedIPs | Détermine les réseaux qui transitent dans le VPN. |
| PersistentKeepalive | Maintient la connexion active derrière un NAT. |
Pourquoi utiliser ces AllowedIPs ?
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
Cette configuration met en œuvre un Split Tunnel.
- Le réseau domestique (10.151.151.0/24) passe dans le VPN.
- Le réseau VPN (10.152.152.0/24) passe également dans le tunnel.
- La navigation Internet continue d'utiliser la connexion locale du client.
Pourquoi utiliser DNS = 10.152.152.1 ?
Le serveur WireGuard héberge également AdGuard Home.
Les requêtes DNS transitent donc dans le VPN vers l'adresse du serveur WireGuard.
DNS = 10.152.152.1
Cette configuration permet de bénéficier du filtrage AdGuard même lorsque le client est connecté depuis Internet.
7. Recharger WireGuard
sudo systemctl restart wg-quick@wg0
8. Vérifier que le client est enregistré
sudo wg
Le nouveau Peer doit apparaître.
9. Générer un QR Code (Android / iPhone)
qrencode -o /opt/network/wireguard/qr/windows.png < windows.conf
Ou directement dans le terminal :
qrencode -t ansiutf8 < windows.conf
10. Importer la configuration
| Plateforme | Méthode |
|---|---|
| Windows | Importer le fichier windows.conf dans le client WireGuard. |
| Linux | Copier le fichier dans /etc/wireguard/wg0.conf puis démarrer wg-quick. |
| Android | Scanner le QR Code. |
| iPhone / iPad | Scanner le QR Code. |
11. Vérifications
Une fois connecté :
ping 10.151.151.40
Puis :
nslookup google.fr
Le serveur DNS utilisé doit être :
10.152.152.1
Enfin, sur le serveur :
sudo wg
Le client doit apparaître avec :
- Latest Handshake
- Transfer RX
- Transfer TX
Bonnes pratiques
- Une paire de clés par client.
- Ne jamais réutiliser une clé privée.
- Attribuer une adresse VPN unique à chaque client.
- Conserver le fichier .conf avec les clés dans le dossier du client.
- Redémarrer WireGuard après l'ajout d'un nouveau Peer.
- Supprimer un Peer inutilisé afin de limiter la surface d'exposition.
Résumé
| Élément | Statut |
|---|---|
| Clés générées | ✅ |
| Peer ajouté au serveur | ✅ |
| Configuration client créée | ✅ |
| QR Code généré | ✅ |
| Connexion prête | ✅ |
Le client WireGuard est maintenant prêt à être utilisé. Les chapitres suivants détaillent la configuration spécifique de chaque plateforme (Windows, Ubuntu, Fedora, Android, iPhone et macOS).
08.1 - Configuration d'un client Windows 11
Cette page explique comment installer et configurer le client WireGuard sous Windows 11 afin d'accéder au réseau privé via le serveur VPN.
À l'issue de cette procédure, l'ordinateur pourra se connecter au réseau domestique en toute sécurité et utiliser AdGuard Home comme serveur DNS.
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client Windows a été créé sur le serveur (voir chapitre 07).
- Le fichier windows.conf est disponible.
- Une connexion Internet est disponible.
Architecture
Internet
│
▼
adguard.numericare.fr
│
UDP 51820
│
▼
Serveur WireGuard
10.152.152.1
│
───────────────
│
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
Télécharger puis installer le client officiel WireGuard pour Windows.
Conserver les options d'installation par défaut.
2. Lancer WireGuard
Au premier lancement, la liste des tunnels est vide.
No tunnels configured.
3. Importer la configuration
Cliquer sur :
Import tunnel(s) from file...
Sélectionner le fichier :
windows.conf
Le tunnel apparaît immédiatement dans la liste.
4. Vérifier la configuration
Le contenu doit être similaire à celui-ci :
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.152.152.2/32
DNS = 10.152.152.1
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
PersistentKeepalive = 25
Comprendre les paramètres
| Paramètre | Description |
|---|---|
| Address | Adresse VPN attribuée au poste Windows. |
| DNS | Utilisation d'AdGuard Home via le VPN. |
| Endpoint | Adresse publique du serveur WireGuard. |
| AllowedIPs | Réseaux accessibles via le VPN (Split Tunnel). |
| PersistentKeepalive | Maintient la connexion ouverte derrière un NAT. |
5. Établir la connexion
Cliquer sur :
Activate
L'état du tunnel devient :
Active
6. Vérifier l'adresse IP VPN
Ouvrir PowerShell :
ipconfig
Une nouvelle interface WireGuard doit apparaître.
Résultat attendu
Adresse IPv4 : 10.152.152.2
7. Tester la connectivité
Tester le serveur WireGuard :
ping 10.152.152.1
Tester ensuite le serveur Docker / AdGuard :
ping 10.151.151.40
Les deux réponses doivent être positives.
8. Vérifier le DNS
Exécuter :
nslookup google.fr
Le serveur DNS utilisé doit être :
10.152.152.1
Cela confirme que toutes les requêtes DNS transitent par AdGuard Home.
9. Vérifier le serveur
Depuis le serveur Debian :
sudo wg
Le client Windows doit apparaître.
Exemple
peer: xxxxxxxxxxxxxxxxx
latest handshake: 25 seconds ago
transfer: 48 KiB received
transfer: 120 KiB sent
10. Déconnecter le VPN
Dans WireGuard, cliquer sur :
Deactivate
La connexion VPN est immédiatement interrompue.
Dépannage
Le tunnel reste inactif
- Vérifier la connexion Internet.
- Vérifier le port UDP 51820 sur le routeur.
- Contrôler l'adresse Endpoint.
- Vérifier la clé publique du serveur.
Aucun Handshake
Sur le serveur :
sudo wg
Si aucun Latest Handshake n'apparaît :
- vérifier la redirection UDP 51820 ;
- contrôler le pare-feu Windows ;
- vérifier que le domaine DNS pointe vers l'adresse IP publique correcte ;
- contrôler les clés publiques et privées.
Impossible d'accéder au réseau domestique
- Vérifier les AllowedIPs.
- Vérifier que le routage IPv4 est activé sur le serveur.
- Contrôler les règles NAT (iptables).
Les publicités ne sont pas bloquées
- Contrôler que le DNS est bien 10.152.152.1.
- Tester avec :
nslookup google.fr
Le serveur interrogé doit être WireGuard / AdGuard Home.
Bonnes pratiques
- Conserver le fichier windows.conf dans un emplacement sécurisé.
- Ne jamais partager la clé privée.
- Installer les mises à jour du client WireGuard.
- Désactiver le tunnel lorsqu'il n'est plus nécessaire.
- Contrôler régulièrement le nombre de Peers autorisés sur le serveur.
Résumé
| Élément | Statut |
|---|---|
| Client WireGuard installé | ✅ |
| Configuration importée | ✅ |
| Tunnel établi | ✅ |
| Connexion au réseau domestique | ✅ |
| DNS AdGuard fonctionnel | ✅ |
Le client Windows est désormais entièrement configuré. Les chapitres suivants présentent la configuration des autres plateformes (Ubuntu, Fedora, Android, iPhone/iPad et macOS), dont la logique est similaire mais avec des méthodes d'installation propres à chaque système.
08.2 - Configuration d'un client Ubuntu
Cette page explique comment installer et configurer un client WireGuard sous Ubuntu afin d'accéder au réseau privé via le serveur VPN.
La configuration s'appuie sur le fichier ubuntu.conf généré lors de la création du client (voir chapitre 07).
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client Ubuntu a été créé sur le serveur.
- Le fichier ubuntu.conf est disponible.
- Une connexion Internet est disponible.
Architecture
Ubuntu
10.152.152.4
│
│
Tunnel WireGuard
│
▼
adguard.numericare.fr
│
▼
Serveur WireGuard
10.152.152.1
│
▼
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
sudo apt update
sudo apt install wireguard -y
2. Vérifier l'installation
wg --version
Résultat attendu
wireguard-tools v1.x.x
3. Copier le fichier de configuration
Copier le fichier généré sur le serveur dans le répertoire système :
sudo cp ubuntu.conf /etc/wireguard/wg0.conf
4. Sécuriser les permissions
Le fichier contient la clé privée du client.
sudo chmod 600 /etc/wireguard/wg0.conf
Vérification :
ls -l /etc/wireguard/wg0.conf
Résultat attendu
-rw------- root root
5. Vérifier la configuration
sudo cat /etc/wireguard/wg0.conf
Le fichier doit contenir notamment :
[Interface]
Address = 10.152.152.4/32
DNS = 10.152.152.1
[Peer]
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
6. Démarrer le tunnel
sudo wg-quick up wg0
Résultat attendu :
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 ...
[#] ip address add ...
[#] ip link set up dev wg0
7. Vérifier l'interface VPN
ip addr show wg0
Résultat attendu
inet 10.152.152.4/32
8. Vérifier le tunnel
sudo wg
La sortie doit afficher :
- la clé publique du serveur ;
- un Latest Handshake récent ;
- les compteurs RX/TX.
9. Tester la connectivité
Tester le serveur VPN :
ping 10.152.152.1
Tester ensuite le réseau local :
ping 10.151.151.40
10. Vérifier le DNS
nslookup google.fr
Le serveur interrogé doit être :
10.152.152.1
11. Arrêter le tunnel
sudo wg-quick down wg0
12. Démarrage automatique (optionnel)
Pour établir automatiquement le VPN au démarrage :
sudo systemctl enable wg-quick@wg0
Pour le désactiver :
sudo systemctl disable wg-quick@wg0
Commandes utiles
| Commande | Description |
|---|---|
sudo wg |
Afficher l'état du tunnel. |
ip addr show wg0 |
Afficher l'interface VPN. |
sudo wg-quick up wg0 |
Démarrer le tunnel. |
sudo wg-quick down wg0 |
Arrêter le tunnel. |
systemctl status wg-quick@wg0 |
Afficher l'état du service. |
Dépannage
L'interface wg0 n'existe pas
ip link show wg0
Vérifier que le fichier /etc/wireguard/wg0.conf est présent et correctement nommé.
Aucun Handshake
- Vérifier l'accès Internet.
- Contrôler le domaine adguard.numericare.fr.
- Vérifier le port UDP 51820.
- Contrôler les clés publiques.
Impossible d'accéder au LAN
- Contrôler les AllowedIPs.
- Vérifier que le serveur WireGuard est actif.
- Contrôler le routage IPv4 sur le serveur.
Le DNS ne fonctionne pas
resolvectl status
Le serveur DNS doit être :
10.152.152.1
Bonnes pratiques
- Conserver le fichier ubuntu.conf dans un emplacement sécurisé.
- Limiter les permissions du fichier de configuration.
- Utiliser une paire de clés unique par machine.
- Mettre régulièrement WireGuard à jour.
- Désactiver le tunnel lorsqu'il n'est plus utilisé.
Résumé
| Élément | Statut |
|---|---|
| WireGuard installé | ✅ |
| Configuration copiée | ✅ |
| Tunnel opérationnel | ✅ |
| Connexion au réseau domestique | ✅ |
| DNS AdGuard fonctionnel | ✅ |
Le client Ubuntu est maintenant entièrement configuré et peut accéder de manière sécurisée au réseau domestique via WireGuard. La procédure pour Fedora est très proche, avec quelques différences liées au gestionnaire de paquets et aux outils d'administration.
08.3 - Configuration d'un client Fedora
Cette page explique comment installer et configurer un client WireGuard sous Fedora afin d'accéder au réseau privé via le serveur VPN.
Le client utilisera la configuration générée lors du chapitre 07 (fedora.conf).
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client Fedora a été créé sur le serveur.
- Le fichier fedora.conf est disponible.
- Une connexion Internet est disponible.
Architecture
Fedora
10.152.152.5
│
▼
Tunnel WireGuard
│
▼
adguard.numericare.fr
│
▼
Serveur WireGuard
10.152.152.1
│
▼
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
sudo dnf install wireguard-tools -y
2. Vérifier l'installation
wg --version
Résultat attendu
wireguard-tools v1.x.x
3. Copier le fichier de configuration
sudo cp fedora.conf /etc/wireguard/wg0.conf
4. Sécuriser le fichier
sudo chmod 600 /etc/wireguard/wg0.conf
Vérifier :
ls -l /etc/wireguard/wg0.conf
Résultat attendu
-rw------- root root
5. Vérifier la configuration
sudo cat /etc/wireguard/wg0.conf
Le fichier doit notamment contenir :
[Interface]
Address = 10.152.152.5/32
DNS = 10.152.152.1
[Peer]
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
6. Démarrer le tunnel
sudo wg-quick up wg0
Résultat attendu
[#] ip link add wg0 type wireguard
[#] wg setconf wg0
[#] ip address add
[#] ip link set up dev wg0
7. Vérifier l'état du tunnel
sudo wg
La sortie doit afficher :
- le Peer du serveur ;
- un Latest Handshake récent ;
- les compteurs RX/TX.
8. Vérifier l'adresse IP
ip addr show wg0
Résultat attendu
inet 10.152.152.5/32
9. Tester la connectivité
ping 10.152.152.1
Puis :
ping 10.151.151.40
Les deux commandes doivent répondre.
10. Vérifier le DNS
nslookup google.fr
Le serveur DNS doit être :
10.152.152.1
Pour afficher la configuration DNS complète :
resolvectl status
11. Activer le démarrage automatique (optionnel)
sudo systemctl enable wg-quick@wg0
Démarrer immédiatement :
sudo systemctl start wg-quick@wg0
Vérifier :
systemctl status wg-quick@wg0
12. Arrêter le tunnel
sudo wg-quick down wg0
Utilisation quotidienne
| Commande | Description |
|---|---|
sudo wg-quick up wg0 |
Démarrer le VPN. |
sudo wg-quick down wg0 |
Arrêter le VPN. |
sudo wg |
Afficher l'état du tunnel. |
sudo wg show |
Afficher les statistiques détaillées. |
systemctl status wg-quick@wg0 |
Afficher l'état du service. |
journalctl -u wg-quick@wg0 |
Consulter les journaux. |
Dépannage
Le tunnel ne démarre pas
journalctl -u wg-quick@wg0
Consulter les derniers messages d'erreur.
Aucun Handshake
- Vérifier l'accès Internet.
- Contrôler le domaine adguard.numericare.fr.
- Vérifier la redirection UDP 51820.
- Contrôler les clés publiques.
Impossible d'accéder au réseau local
- Vérifier les AllowedIPs.
- Contrôler que le serveur WireGuard fonctionne.
- Vérifier le routage IPv4.
Le DNS n'utilise pas AdGuard Home
resolvectl status
Le serveur DNS actif doit être :
10.152.152.1
Bonnes pratiques
- Conserver le fichier fedora.conf dans un emplacement sécurisé.
- Limiter les permissions du fichier de configuration.
- Mettre régulièrement Fedora et WireGuard à jour.
- Utiliser une paire de clés unique par poste.
- Désactiver le VPN lorsqu'il n'est plus utilisé.
Résumé
| Élément | Statut |
|---|---|
| WireGuard installé | ✅ |
| Configuration importée | ✅ |
| Tunnel établi | ✅ |
| Connexion au réseau domestique | ✅ |
| DNS AdGuard opérationnel | ✅ |
Le client Fedora est maintenant entièrement configuré et peut accéder au réseau domestique de manière sécurisée. Les chapitres suivants présentent la configuration des clients Android, iPhone/iPad et macOS.
08.4 - Configuration d'un client Android
Cette page explique comment installer et configurer WireGuard sur un smartphone ou une tablette Android afin d'accéder au réseau domestique de manière sécurisée.
Deux méthodes d'import sont possibles :
- Import via un QR Code (méthode recommandée).
- Import du fichier android.conf.
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client Android a été créé (voir chapitre 07).
- Le QR Code ou le fichier android.conf est disponible.
- Une connexion Internet est disponible.
Architecture
Android
10.152.152.5
│
Tunnel WireGuard
│
▼
adguard.numericare.fr
│
▼
Serveur WireGuard
10.152.152.1
│
▼
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
Installer l'application officielle WireGuard depuis le Google Play Store.
2. Ouvrir l'application
Au premier lancement, aucun tunnel n'est configuré.
3. Ajouter un tunnel
Appuyer sur le bouton :
+
Deux méthodes sont proposées :
- Scanner un QR Code.
- Importer depuis un fichier.
4. Import via QR Code (recommandé)
Sélectionner :
Scanner depuis un QR Code
Scanner le QR Code généré sur le serveur.
Le tunnel est automatiquement créé.
5. Import via un fichier
Si le QR Code n'est pas disponible :
Importer depuis un fichier
Sélectionner :
android.conf
6. Vérifier la configuration
Le tunnel doit contenir une configuration similaire à celle-ci :
[Interface]
Address = 10.152.152.5/32
DNS = 10.152.152.1
[Peer]
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
PersistentKeepalive = 25
7. Activer le tunnel
Appuyer sur l'interrupteur situé à droite du tunnel.
Android demande l'autorisation de créer un VPN.
Accepter la demande.
8. Vérifier la connexion
Une icône VPN apparaît dans la barre d'état Android.
Le tunnel est maintenant actif.
9. Vérifier le serveur
Depuis le serveur Debian :
sudo wg
Le client Android doit apparaître avec :
- Latest Handshake
- Transfer RX
- Transfer TX
10. Tester la connectivité
Par exemple :
- Home Assistant
- BookStack
- Grafana
- NAS Synology
Si les applications sont accessibles, le tunnel fonctionne correctement.
11. Vérifier le DNS
Les requêtes DNS doivent être résolues par :
10.152.152.1
Le filtrage AdGuard Home est alors actif même en dehors du domicile.
12. Désactiver le VPN
Dans WireGuard, désactiver simplement l'interrupteur du tunnel.
Dépannage
Le tunnel ne se connecte pas
- Vérifier l'accès Internet.
- Contrôler le domaine adguard.numericare.fr.
- Vérifier le port UDP 51820.
- Contrôler les clés du client.
Aucun Handshake
Sur le serveur :
sudo wg
Si aucun Latest Handshake n'apparaît, vérifier la configuration du client et la redirection du port UDP 51820.
Impossible d'accéder au réseau domestique
- Vérifier les AllowedIPs.
- Contrôler le routage IPv4 du serveur.
- Vérifier les règles NAT.
Les publicités ne sont pas bloquées
- Vérifier que le champ DNS est configuré avec 10.152.152.1.
- Contrôler qu'aucun DNS privé Android n'est activé.
Bonnes pratiques
- Utiliser un tunnel différent pour chaque appareil Android.
- Ne jamais partager le QR Code avec une autre personne.
- Supprimer le tunnel si le téléphone est remplacé.
- Protéger le smartphone avec un code ou une authentification biométrique.
- Maintenir l'application WireGuard à jour.
Résumé
| Élément | Statut |
|---|---|
| Application WireGuard installée | ✅ |
| Tunnel importé | ✅ |
| Connexion VPN établie | ✅ |
| Accès au réseau domestique | ✅ |
| DNS AdGuard opérationnel | ✅ |
Le client Android est maintenant entièrement configuré. Le chapitre suivant présente la procédure équivalente pour un iPhone ou un iPad.
08.5 - Configuration d'un client iPhone / iPad
Cette page explique comment installer et configurer WireGuard sur un iPhone ou un iPad afin d'accéder au réseau domestique de manière sécurisée.
Deux méthodes d'import sont possibles :
- Scanner un QR Code (méthode recommandée).
- Importer un fichier de configuration.
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client iPhone / iPad a été créé (voir chapitre 07).
- Le QR Code ou le fichier iphone.conf est disponible.
- Une connexion Internet est disponible.
Architecture
iPhone / iPad
10.152.152.3
│
Tunnel WireGuard
│
▼
adguard.numericare.fr
│
▼
Serveur WireGuard
10.152.152.1
│
▼
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
Installer l'application officielle WireGuard depuis l'App Store.
2. Ouvrir l'application
Au premier lancement, aucun tunnel n'est encore configuré.
3. Ajouter un tunnel
Appuyer sur :
Ajouter un tunnel
Deux méthodes sont disponibles :
- Scanner un QR Code.
- Créer ou importer depuis un fichier.
4. Import via QR Code (recommandé)
Choisir :
Scanner un QR Code
Scanner ensuite le QR Code généré sur le serveur.
Le tunnel est créé automatiquement.
5. Import via un fichier
Si le QR Code n'est pas disponible :
- Transférer le fichier iphone.conf sur l'iPhone (AirDrop, Mail, iCloud Drive, etc.).
- Ouvrir le fichier et choisir WireGuard comme application d'import.
6. Vérifier la configuration
Le tunnel doit contenir une configuration similaire à :
[Interface]
Address = 10.152.152.3/32
DNS = 10.152.152.1
[Peer]
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
PersistentKeepalive = 25
7. Activer le tunnel
Basculer l'interrupteur du tunnel sur Activé.
iOS demande l'autorisation d'ajouter une configuration VPN.
Valider la demande puis s'authentifier avec Face ID, Touch ID ou le code de l'appareil.
8. Vérifier la connexion
Une icône VPN apparaît dans la barre d'état (ou dans le Centre de contrôle selon le modèle d'iPhone/iPad).
Le tunnel est maintenant actif.
9. Vérifier le serveur
Depuis le serveur Debian :
sudo wg
Le client iPhone/iPad doit apparaître avec :
- Latest Handshake
- Transfer RX
- Transfer TX
10. Tester l'accès au réseau domestique
Ouvrir Safari puis accéder à un service hébergé sur le réseau domestique, par exemple :
- Home Assistant
- BookStack
- Grafana
- NAS Synology
Si les services sont accessibles, le tunnel fonctionne correctement.
11. Vérifier le DNS
Les requêtes DNS doivent être résolues par :
10.152.152.1
Le filtrage AdGuard Home est alors appliqué, même lorsque l'appareil est connecté à un réseau Wi-Fi public ou au réseau mobile.
12. Désactiver le VPN
Ouvrir WireGuard puis désactiver simplement l'interrupteur du tunnel.
VPN à la demande (optionnel)
WireGuard permet d'activer automatiquement le VPN dans certaines situations, par exemple lors de la connexion à un réseau Wi-Fi public.
Cette fonctionnalité peut être configurée dans les paramètres du tunnel afin d'améliorer la sécurité sans intervention manuelle.
Dépannage
Le tunnel ne se connecte pas
- Vérifier la connexion Internet.
- Contrôler que adguard.numericare.fr est joignable.
- Vérifier la redirection du port UDP 51820.
- Contrôler les clés publiques et privées.
Aucun Handshake
Depuis le serveur :
sudo wg
Si aucun Latest Handshake n'apparaît, vérifier la configuration du client et l'ouverture du port UDP 51820.
Impossible d'accéder au réseau domestique
- Vérifier les AllowedIPs.
- Contrôler le routage IPv4 sur le serveur.
- Vérifier les règles NAT.
Les publicités ne sont pas bloquées
- Vérifier que le DNS configuré est 10.152.152.1.
- Contrôler qu'aucun profil DNS ou VPN tiers n'est actif sur l'appareil.
Bonnes pratiques
- Utiliser un tunnel distinct pour chaque appareil Apple.
- Ne jamais partager le QR Code.
- Supprimer le tunnel si l'appareil est remplacé ou perdu.
- Maintenir iOS/iPadOS et l'application WireGuard à jour.
- Activer le VPN à la demande si l'appareil est fréquemment utilisé sur des réseaux publics.
Résumé
| Élément | Statut |
|---|---|
| Application WireGuard installée | ✅ |
| Tunnel importé | ✅ |
| Connexion VPN établie | ✅ |
| Accès au réseau domestique | ✅ |
| DNS AdGuard opérationnel | ✅ |
Le client iPhone / iPad est maintenant entièrement configuré et peut accéder au réseau domestique de manière sécurisée. Le dernier chapitre présente la configuration du client macOS.
08.6 - Configuration d'un client macOS
Cette page explique comment installer et configurer WireGuard sur macOS afin d'accéder au réseau domestique via le serveur VPN.
La méthode recommandée consiste à utiliser l'application officielle WireGuard disponible sur l'App Store.
Prérequis
- Le serveur WireGuard est opérationnel.
- Le client macOS a été créé sur le serveur (voir chapitre 07).
- Le fichier macos.conf ou son QR Code est disponible.
- Une connexion Internet est disponible.
Architecture
macOS
10.152.152.6
│
Tunnel WireGuard
│
▼
adguard.numericare.fr
│
▼
Serveur WireGuard
10.152.152.1
│
▼
Réseau ASUS
10.151.151.0/24
1. Installer WireGuard
Installer l'application officielle WireGuard depuis l'App Store.
2. Ouvrir l'application
Au premier lancement, aucune configuration VPN n'est présente.
3. Importer un tunnel
Cliquer sur :
Import tunnel(s) from file...
Puis sélectionner le fichier :
macos.conf
Le tunnel est automatiquement ajouté.
4. Vérifier la configuration
La configuration doit être similaire à :
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.152.152.6/32
DNS = 10.152.152.1
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxx
Endpoint = adguard.numericare.fr:51820
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
PersistentKeepalive = 25
Comprendre les paramètres
| Paramètre | Description |
|---|---|
| Address | Adresse VPN attribuée au Mac. |
| DNS | Utilisation d'AdGuard Home via le tunnel VPN. |
| Endpoint | Nom DNS public du serveur WireGuard. |
| AllowedIPs | Réseaux accessibles via le VPN (Split Tunnel). |
| PersistentKeepalive | Maintient la connexion active derrière un routeur NAT. |
5. Activer le tunnel
Cliquer sur :
Activate
Lors de la première connexion, macOS demande l'autorisation d'ajouter une configuration VPN.
Valider la demande puis s'authentifier avec Touch ID ou le mot de passe de la session.
6. Vérifier la connexion
Une icône VPN apparaît dans la barre de menus de macOS.
Le tunnel est maintenant actif.
7. Vérifier le serveur
Depuis le serveur Debian :
sudo wg
Le client macOS doit apparaître avec :
- Latest Handshake
- Transfer RX
- Transfer TX
8. Tester la connectivité
Ouvrir le Terminal puis exécuter :
ping 10.152.152.1
Puis :
ping 10.151.151.40
Les deux commandes doivent répondre.
9. Vérifier le DNS
Afficher la configuration DNS active :
scutil --dns
Le serveur DNS utilisé par le tunnel doit être :
10.152.152.1
Le filtrage AdGuard Home est alors appliqué aux requêtes DNS transitant par le VPN.
10. Désactiver le VPN
Dans WireGuard, cliquer sur :
Deactivate
Le tunnel est immédiatement fermé.
Utilisation avancée (Terminal)
Les utilisateurs avancés peuvent également gérer le tunnel en ligne de commande à l'aide de wg-quick (si les outils WireGuard sont installés).
sudo wg-quick up wg0
sudo wg
sudo wg-quick down wg0
Dépannage
Le tunnel ne se connecte pas
- Vérifier la connexion Internet.
- Contrôler que adguard.numericare.fr est résolu correctement.
- Vérifier l'ouverture du port UDP 51820.
- Contrôler les clés publiques et privées.
Aucun Handshake
Depuis le serveur :
sudo wg
Si aucun Latest Handshake n'apparaît, vérifier la configuration du client et la redirection du port UDP 51820.
Impossible d'accéder au réseau domestique
- Vérifier les AllowedIPs.
- Contrôler le routage IPv4 sur le serveur.
- Vérifier les règles NAT.
Les publicités ne sont pas bloquées
- Vérifier que le DNS du tunnel est bien 10.152.152.1.
- Contrôler qu'aucun autre logiciel VPN ou DNS n'est actif.
Bonnes pratiques
- Conserver le fichier macos.conf dans un emplacement sécurisé.
- Ne jamais partager la clé privée.
- Mettre régulièrement macOS et WireGuard à jour.
- Utiliser un tunnel distinct pour chaque Mac.
- Désactiver le VPN lorsqu'il n'est plus nécessaire.
Résumé
| Élément | Statut |
|---|---|
| Application WireGuard installée | ✅ |
| Configuration importée | ✅ |
| Tunnel établi | ✅ |
| Accès au réseau domestique | ✅ |
| DNS AdGuard opérationnel | ✅ |
Le client macOS est désormais entièrement configuré et peut accéder au réseau domestique de manière sécurisée via WireGuard. Vous disposez maintenant d'une procédure complète pour les principales plateformes : Windows, Ubuntu, Fedora, Android, iPhone/iPad et macOS.
09 - Mise à jour de WireGuard
Cette page décrit la procédure recommandée pour mettre à jour WireGuard et ses composants sur le serveur Debian hébergeant le service VPN.
L'objectif est de bénéficier des dernières corrections de sécurité, des améliorations de stabilité et des nouvelles fonctionnalités tout en garantissant la continuité du service.
Prérequis
- Disposer d'un accès SSH au serveur.
- Être connecté avec un compte disposant des privilèges sudo.
- Vérifier qu'aucune opération de maintenance n'est en cours.
1. Vérifier la version installée
Afficher la version des outils WireGuard :
wg --version
Exemple :
wireguard-tools v1.0.20210914
2. Vérifier les mises à jour disponibles
sudo apt update
Puis afficher les paquets pouvant être mis à jour :
apt list --upgradable
Si une nouvelle version de wireguard ou wireguard-tools apparaît dans la liste, une mise à jour est disponible.
3. Mettre à jour le système
sudo apt upgrade -y
Cette commande met à jour l'ensemble des paquets installés, y compris WireGuard si une nouvelle version est disponible.
4. Vérifier que le service est toujours actif
sudo systemctl status wg-quick@wg0
Le résultat attendu est similaire à :
Active: active (exited)
5. Vérifier le fonctionnement du tunnel
sudo wg
Contrôler notamment les informations suivantes :
- Présence de l'interface wg0.
- Liste des clients configurés.
- Derniers Handshake.
- Compteurs RX/TX.
6. Vérifier l'écoute du port UDP
sudo ss -lunp | grep 51820
Le serveur doit toujours être à l'écoute sur le port UDP 51820.
7. Tester la connectivité
Depuis un client WireGuard :
- Établir le tunnel VPN.
- Accéder au réseau 10.151.151.0/24.
- Vérifier la résolution DNS via AdGuard Home.
8. Redémarrer le service (si nécessaire)
Dans la majorité des cas, aucun redémarrage n'est nécessaire. Si toutefois la mise à jour le requiert, exécuter :
sudo systemctl restart wg-quick@wg0
Vérifier ensuite le statut du service :
sudo systemctl status wg-quick@wg0
9. Consulter les journaux
En cas d'anomalie après la mise à jour :
journalctl -u wg-quick@wg0
Ou uniquement les derniers événements :
journalctl -u wg-quick@wg0 -n 50
Bonnes pratiques
- Mettre régulièrement le système Debian à jour.
- Effectuer les mises à jour durant une période de faible utilisation.
- Vérifier le bon fonctionnement des clients après chaque mise à jour.
- Contrôler les journaux système en cas d'anomalie.
- Maintenir le système d'exploitation également à jour afin de bénéficier des derniers correctifs de sécurité.
Résumé
| Étape | Validation |
|---|---|
| Version vérifiée | ✅ |
| Paquets mis à jour | ✅ |
| Service WireGuard opérationnel | ✅ |
| Port UDP 51820 à l'écoute | ✅ |
| Tests de connexion validés | ✅ |
La mise à jour de WireGuard est terminée. Le serveur bénéficie des dernières corrections tout en conservant sa configuration existante. Il est recommandé de vérifier le bon fonctionnement des clients après chaque mise à jour afin de garantir la disponibilité du service VPN.
10 - Dépannage
Cette page regroupe les principaux problèmes pouvant être rencontrés lors de l'utilisation de WireGuard ainsi que les procédures de diagnostic permettant d'identifier rapidement leur origine.
Les vérifications sont présentées du cas le plus fréquent au plus spécifique.
Vérifier l'état général du serveur
Avant toute investigation, contrôler que le serveur WireGuard fonctionne correctement.
sudo systemctl status wg-quick@wg0
Le résultat attendu est :
Active: active (exited)
Puis vérifier l'interface WireGuard :
sudo wg
Le client ne parvient pas à se connecter
Cause possible
- Le serveur n'est pas démarré.
- Le port UDP 51820 n'est pas accessible.
- Le domaine DNS est incorrect.
- Une erreur est présente dans la configuration du client.
Vérifications
sudo systemctl status wg-quick@wg0
sudo ss -lunp | grep 51820
sudo wg
Vérifier également :
- Le nom DNS adguard.numericare.fr.
- La redirection UDP 51820 sur le routeur.
- La configuration du client.
Aucun Handshake
Symptômes
sudo wg
Le champ Latest Handshake est absent ou indique Never.
Causes possibles
- Clés publiques incorrectes.
- Port UDP fermé.
- Nom DNS incorrect.
- Connexion Internet indisponible.
Vérifications
- Contrôler les clés publique et privée.
- Tester le domaine adguard.numericare.fr.
- Vérifier la redirection UDP 51820.
- Contrôler le pare-feu.
Le tunnel est établi mais le réseau domestique est inaccessible
Symptômes
- Le Handshake est présent.
- Impossible de joindre les équipements du réseau 10.151.151.0/24.
Vérifications
Contrôler les réseaux autorisés :
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
Puis vérifier le routage IPv4 :
cat /proc/sys/net/ipv4/ip_forward
Le résultat attendu est :
1
Le DNS ne fonctionne pas
Symptômes
- Les noms de domaine ne sont pas résolus.
- Les publicités ne sont plus filtrées.
Vérifications
Contrôler la configuration du client :
DNS = 10.152.152.1
Puis vérifier qu'AdGuard Home est actif :
docker ps
Le conteneur AdGuard Home doit être en état Up.
Impossible d'accéder à Internet
Cause possible
Ce problème apparaît généralement lorsque le client est configuré en Full Tunnel et que le routage ou le NAT du serveur est incorrect.
Vérifications
sudo iptables -t nat -L
Contrôler la présence de la règle MASQUERADE.
Le client se connecte puis se déconnecte régulièrement
Cause possible
- Connexion mobile instable.
- NAT du routeur.
- Absence du paramètre PersistentKeepalive.
Vérification
Le client doit contenir :
PersistentKeepalive = 25
Le serveur écoute sur un mauvais port
Vérifier la configuration :
sudo cat /etc/wireguard/wg0.conf
Le paramètre attendu est :
ListenPort = 51820
Vérifier les journaux
Afficher les derniers événements :
journalctl -u wg-quick@wg0 -n 50
Afficher les journaux en temps réel :
journalctl -fu wg-quick@wg0
Commandes de diagnostic
| Commande | Description |
|---|---|
sudo wg |
Afficher les tunnels et les Handshakes. |
ip addr show wg0 |
Afficher l'interface WireGuard. |
systemctl status wg-quick@wg0 |
Vérifier le service. |
ss -lunp | grep 51820 |
Vérifier l'écoute du port UDP. |
journalctl -u wg-quick@wg0 |
Consulter les journaux. |
docker ps |
Vérifier qu'AdGuard Home est démarré. |
iptables -t nat -L |
Contrôler les règles NAT. |
cat /proc/sys/net/ipv4/ip_forward |
Vérifier l'activation du routage IPv4. |
Résumé
| Problème | Premier contrôle à effectuer |
|---|---|
| Aucune connexion | Vérifier le service WireGuard. |
| Aucun Handshake | Contrôler les clés, le DNS et le port UDP 51820. |
| Réseau domestique inaccessible | Vérifier les AllowedIPs et le routage IPv4. |
| DNS inopérant | Vérifier AdGuard Home et le paramètre DNS. |
| Pas d'accès Internet | Contrôler les règles NAT et la configuration Full Tunnel. |
| Déconnexions fréquentes | Vérifier le paramètre PersistentKeepalive. |
La majorité des incidents WireGuard proviennent d'une configuration incorrecte des clés, des paramètres AllowedIPs, de la résolution DNS ou de la redirection du port UDP 51820. En suivant les vérifications de cette page dans l'ordre, il est généralement possible d'identifier rapidement l'origine du problème.
11 - Annexe : Utilisation du Full Tunnel
Cette documentation est basée sur une architecture Split Tunnel, dans laquelle seul le trafic destiné au réseau domestique transite par le VPN.
Dans certains cas, il peut être souhaitable de faire transiter l'ensemble du trafic Internet par le serveur WireGuard. Ce mode de fonctionnement est appelé Full Tunnel.
Split Tunnel (configuration actuelle)
Dans cette documentation, les clients utilisent la configuration suivante :
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
Cela signifie que seuls les réseaux suivants sont envoyés dans le tunnel VPN :
- Le réseau domestique : 10.151.151.0/24.
- Le réseau WireGuard : 10.152.152.0/24.
Tout le reste du trafic Internet continue de sortir directement par la connexion réseau du client.
Internet
▲
│
Connexion locale
▲
│
Client
│
──────────────┼──────────────
▼
Tunnel WireGuard
▼
Réseau domestique
10.151.151.0/24
Passer en Full Tunnel
Pour faire transiter l'intégralité du trafic réseau dans le tunnel VPN, remplacer la directive AllowedIPs du client par :
AllowedIPs = 0.0.0.0/0
Pour une prise en charge complète d'IPv4 et d'IPv6 :
AllowedIPs = 0.0.0.0/0,::/0
Fonctionnement
Lorsque le Full Tunnel est activé, l'ensemble des communications du client passe par le serveur WireGuard avant d'accéder à Internet.
Client
│
▼
Tunnel WireGuard
│
▼
Serveur WireGuard
│
▼
AdGuard Home
│
▼
Routeur ASUS
│
▼
Internet
Avantages
- L'ensemble du trafic est chiffré entre le client et le domicile.
- Les requêtes DNS sont systématiquement filtrées par AdGuard Home.
- Les services Internet voient l'adresse IP publique du domicile.
- Les réseaux Wi-Fi publics deviennent beaucoup plus sûrs.
- Les règles de filtrage AdGuard sont appliquées quel que soit le réseau utilisé.
Inconvénients
Configuration DNS
Aucune modification supplémentaire n'est nécessaire concernant le DNS si le client utilise déjà la configuration recommandée :
DNS = 10.152.152.1
Les requêtes DNS continueront d'être résolues par AdGuard Home via le tunnel VPN.
Quand utiliser le Full Tunnel ?
| Situation | Recommandation |
|---|---|
| Accès au réseau domestique uniquement | Conserver le Split Tunnel. |
| Utilisation sur un Wi-Fi public | Utiliser le Full Tunnel. |
| Bénéficier du filtrage AdGuard partout | Utiliser le Full Tunnel. |
| Masquer son adresse IP publique | Utiliser le Full Tunnel. |
| Optimiser les performances réseau | Conserver le Split Tunnel. |
Revenir au Split Tunnel
Pour retrouver le comportement décrit dans cette documentation, rétablir la configuration d'origine :
AllowedIPs = 10.151.151.0/24,10.152.152.0/24
Le client utilisera alors le VPN uniquement pour accéder au réseau domestique, tandis que le trafic Internet continuera d'emprunter la connexion locale.
Résumé
| Mode | Trafic VPN | Utilisation recommandée |
|---|---|---|
| Split Tunnel | Uniquement le réseau domestique | Usage quotidien |
| Full Tunnel | Tout le trafic Internet | Réseaux publics, confidentialité renforcée |
Le Split Tunnel constitue le mode de fonctionnement recommandé pour cette infrastructure, car il offre un excellent compromis entre performances et accès sécurisé au réseau domestique. Le Full Tunnel reste une option intéressante lorsque l'on souhaite protéger l'ensemble de son trafic Internet ou bénéficier du filtrage AdGuard Home sur tous les réseaux.