Présentation du projet
Ce projet consiste à configurer un profil VPN sur un routeur Ubiquiti pour permettre un accès sécurisé au réseau local depuis l’extérieur. Les protocoles supportés incluent WireGuard (moderne et performant) et OpenVPN (compatible universal).
Objectifs
- Configurer WireGuard ou OpenVPN sur un routeur Ubiquiti
- Générer les clés et certificats nécessaires
- Créer et exporter des profils clients
- Tester la connexion VPN depuis un client externe
- Vérifier la sécurité et l’isolation du réseau
Contexte technique
Problématique
- Accès distant : nécessité d’accéder au réseau local de l’entreprise depuis n’importe où
- Sécurité : les données en transit doivent être chiffrées
- Performance : la solution doit être légère et efficace sur un routeur
- Facilité d’utilisation : doit pouvoir supporter plusieurs clients
Solution mise en œuvre
WireGuard sur Ubiquiti offre :
- Configuration simple et légère
- Chiffrement moderne (ChaCha20-Poly1305)
- Meilleure performance qu’OpenVPN
- Gestion facile des clients
- UDP pour une meilleure traversée NAT
Réalisation technique
Prérequis
- Accès administrateur au routeur Ubiquiti
- Interface web accessible
- Ubiquiti OS supportant WireGuard (version récente)
- Client VPN compatible sur les appareils qui se connecteront
Configuration WireGuard sur Ubiquiti
1. Accéder à l’interface web
URL: https://192.168.1.1 (ou IP du routeur)
Identifiants: admin / [mot de passe configuré]2. Naviguer vers la configuration VPN
Accès : Settings > VPN > VPN Server3. Créer un serveur WireGuard
VPN Server Type: WireGuard
Serveur Name: "Work-VPN" (exemple)
Port: 51820 (port UDP standard WireGuard)
Subnet: 10.0.0.0/24 (réseau VPN séparé)
Save4. Générer les clés serveur
Les clés sont générées automatiquement :
- Private Key (Privée - serveur) - à ne pas partager
- Public Key (Publique - à envoyer aux clients)
Vérifier ces clés dans :
Settings > VPN > WireGuard Status5. Créer des profils clients
Pour chaque client, créer un profil :
VPN Server > Clients > Add Client
Nom du client: "user-laptop" (exemple)
Generated automatiquement :
- Client Private Key
- Client Public Key
- Client VPN IP: 10.0.0.2 (attribuée automatiquement)6. Exporter la configuration client
Bouton "Generate QR Code" pour scan mobile
OU
Bouton "Download Config" pour importer sur un client (Linux, Windows, macOS)Format du fichier de configuration (wg0.conf) :
[Interface]
Address = 10.0.0.2/32
PrivateKey = [CLIENT_PRIVATE_KEY]
DNS = 8.8.8.8, 8.8.4.4
[Peer]
PublicKey = [SERVER_PUBLIC_KEY]
Endpoint = [SERVER_PUBLIC_IP]:51820
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25Configuration des routes et firewall
1. Permettre le trafic VPN → Réseau local
VPN Server Settings:
✓ "Allow VPN clients to access local network"2. Rules du firewall pour VPN
Settings > Firewall > Rules
Ajouter règle :
In: eth0 (ou WAN)
Action: Accept
Protocol: UDP
Port Destination: 51820Installation d’un client WireGuard
Linux (Debian/Ubuntu)
# Installation
sudo apt install wireguard wireguard-tools
# Placer le fichier wg0.conf dans /etc/wireguard/
sudo cp wg0.conf /etc/wireguard/
# Démarrer la connexion
sudo wg-quick up wg0
# Vérifier la connexion
sudo wg show
ip addr show wg0
# Arrêter
sudo wg-quick down wg0
# Optionnel : démarrer automatiquement
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0Windows
Télécharger: https://www.wireguard.com/install/
Importer le fichier .conf
Cliquer "Activate"macOS
App Store: WireGuard
Importer le fichier .conf
ConnecterMobile (Android/iOS)
WireGuard (application officielle)
Scanner le QR code généré par Ubiquiti
ConnecterVérification et test
# Depuis le client, vérifier la connexion VPN
ping 10.0.0.1 # Gateway VPN
ping 192.168.1.1 # Accès réseau local
# Depuis le routeur, voir les clients connectés
sudo wg show
# Monitorer le trafic
wg show wg0 transfer
# Test de latence
mtr -4 192.168.1.1Sécurisé supplémentaires
1. Authentification supplémentaire (optionnel)
Ajouter un 2FA pour accès au routeur:
Settings > System > User Management2. Limiter les IPs autorisées
VPN Server > Clients > Edit
AllowedIPs: 10.0.0.0/24, 192.168.1.0/24 (restriction à ces réseaux seuls)3. Désactiver les clients inutilisés
VPN Server > Clients > Client
Toggle: OFF4. Monitorer les connexions
Settings > VPN > Connected Clients
Voir:
- Adresse IP du client (réelle)
- Adresse VPN (tunnelisée)
- Durée de connexion
- Trafic envoyé/reçuRésultats obtenus
✅ Serveur VPN WireGuard configuré sur Ubiquiti ✅ Profils clients générés et exportés ✅ Clients connectés au VPN avec succès ✅ Accès au réseau local depuis l’extérieur ✅ Trafic chiffré en transit ✅ Latence acceptable (< 50ms généralement)
Compétences développées
- Configuration VPN sur équipement réseau commercial
- Protocole WireGuard et gestion des clés
- Sécurité réseau et isolation de trafic
- Configuration du firewall pour VPN
- Support et déploiement client
- Troubleshooting de connectivité VPN
Commandes utiles (Ubiquiti CLI)
# Se connecter en SSH
ssh admin@192.168.1.1
# Voir les interfaces WireGuard
show interfaces
show interfaces wireguard
# Tester la connectivité
ping 10.0.0.2
# Voir les statistiques
show interfaces wireguard wg0 statistics
# Redémarrer le VPN
restart wireguard-serverTroubleshooting
Impossible de se connecter au VPN
1. Vérifier que le port 51820 UDP est ouvert (firewall routeur)
2. Vérifier l'IP publique du serveur dans la config client
3. Vérifier clés publiques/privées correctes
4. Tester: telnet [IP] 51820 (doit timeout, pas refusé)Connexion établie mais pas accès au réseau
1. Vérifier AllowedIPs dans config client
2. Vérifier "Allow VPN clients to access local network"
3. Vérifier firewall ne bloque pas le trafic VPN
4. Tester ping 10.0.0.1 d'abordLatence élevée
1. Vérifier bande passante disponible
2. Réduire chiffrement (WireGuard est déjà très léger)
3. Vérifier pas de saturation CPU du routeur
4. Essayer différent serveur VPN géographiquePerspectives d’amélioration
- Mise en place d’une seconde clé privée serveur pour rotation
- Configuration de MultiVPN (plusieurs protocoles)
- Intégration avec RADIUS pour authentification centralisée
- Monitoring détaillé avec Prometheus/Telegraf
- Failover automatique vers connexion cellulaire
- Configuration de split-tunneling pour performances
Points clés d’apprentissage
- WireGuard vs OpenVPN : WireGuard est plus moderne et performant
- Clés symétriques pour chaque client pour une meilleure isolation
- AllowedIPs définit quels réseaux sont accessibles via le VPN
- Port UDP 51820 doit être ouvert sur firewall WAN
- Certificats x509 pas nécessaires avec WireGuard (contrairement à OpenVPN)
- PersistentKeepalive important pour réveiller connexions dormantes NAT
Cas d’usage supportés
✅ Télétravail sécurisé ✅ Accès aux serveurs internes ✅ Déploiement distant ✅ Support technique distant ✅ Synchronisation de données sensibles ✅ Contournement de réseau corporate restrictif
Configuration avec OpenVPN (alternative)
Si OpenVPN est préféré pour compatibilité accrue :
VPN Server Type: OpenVPN
Port: 1194 (UDP) ou 443 (TCP)
Protocol: UDP (préféré) ou TCP
Encryption: AES-256-CBC
Auth: SHA256Les étapes sont similaires mais génération de certificats x509 requise.
