Création d'un profil VPN sur un routeur Ubiquiti

Création d'un profil VPN sur un routeur Ubiquiti

Mise en place d'une connexion VPN sur routeur Ubiquiti pour accès sécurisé au réseau local depuis l'extérieur.
Publié le
Statut
Terminé

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

PLAINTEXT
URL: https://192.168.1.1 (ou IP du routeur)
Identifiants: admin / [mot de passe configuré]
Cliquez pour développer et voir plus

2. Naviguer vers la configuration VPN

PLAINTEXT
Accès : Settings > VPN > VPN Server
Cliquez pour développer et voir plus

3. Créer un serveur WireGuard

PLAINTEXT
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é)
Save
Cliquez pour développer et voir plus

4. 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 :

PLAINTEXT
Settings > VPN > WireGuard Status
Cliquez pour développer et voir plus

5. Créer des profils clients

Pour chaque client, créer un profil :

PLAINTEXT
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)
Cliquez pour développer et voir plus

6. Exporter la configuration client

PLAINTEXT
Bouton "Generate QR Code" pour scan mobile
OU
Bouton "Download Config" pour importer sur un client (Linux, Windows, macOS)
Cliquez pour développer et voir plus

Format du fichier de configuration (wg0.conf) :

INI
[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 = 25
Cliquez pour développer et voir plus

Configuration des routes et firewall

1. Permettre le trafic VPN → Réseau local

PLAINTEXT
VPN Server Settings:
  ✓ "Allow VPN clients to access local network"
Cliquez pour développer et voir plus

2. Rules du firewall pour VPN

PLAINTEXT
Settings > Firewall > Rules
Ajouter règle :
  In: eth0 (ou WAN)
  Action: Accept
  Protocol: UDP
  Port Destination: 51820
Cliquez pour développer et voir plus

Installation d’un client WireGuard

Linux (Debian/Ubuntu)

BASH
# 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@wg0
Cliquez pour développer et voir plus

Windows

PLAINTEXT
Télécharger: https://www.wireguard.com/install/
Importer le fichier .conf
Cliquer "Activate"
Cliquez pour développer et voir plus

macOS

PLAINTEXT
App Store: WireGuard
Importer le fichier .conf
Connecter
Cliquez pour développer et voir plus

Mobile (Android/iOS)

PLAINTEXT
WireGuard (application officielle)
Scanner le QR code généré par Ubiquiti
Connecter
Cliquez pour développer et voir plus

Vérification et test

BASH
# 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.1
Cliquez pour développer et voir plus

Sécurisé supplémentaires

1. Authentification supplémentaire (optionnel)

PLAINTEXT
Ajouter un 2FA pour accès au routeur:
Settings > System > User Management
Cliquez pour développer et voir plus

2. Limiter les IPs autorisées

PLAINTEXT
VPN Server > Clients > Edit
AllowedIPs: 10.0.0.0/24, 192.168.1.0/24 (restriction à ces réseaux seuls)
Cliquez pour développer et voir plus

3. Désactiver les clients inutilisés

PLAINTEXT
VPN Server > Clients > Client
Toggle: OFF
Cliquez pour développer et voir plus

4. Monitorer les connexions

PLAINTEXT
Settings > VPN > Connected Clients
Voir:
  - Adresse IP du client (réelle)
  - Adresse VPN (tunnelisée)
  - Durée de connexion
  - Trafic envoyé/reçu
Cliquez pour développer et voir plus

Ré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)

BASH
# 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-server
Cliquez pour développer et voir plus

Troubleshooting

Impossible de se connecter au VPN

PLAINTEXT
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é)
Cliquez pour développer et voir plus

Connexion établie mais pas accès au réseau

PLAINTEXT
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'abord
Cliquez pour développer et voir plus

Latence élevée

PLAINTEXT
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éographique
Cliquez pour développer et voir plus

Perspectives 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 :

PLAINTEXT
VPN Server Type: OpenVPN
Port: 1194 (UDP) ou 443 (TCP)
Protocol: UDP (préféré) ou TCP
Encryption: AES-256-CBC
Auth: SHA256
Cliquez pour développer et voir plus

Les étapes sont similaires mais génération de certificats x509 requise.

Commencer la recherche

Saisissez des mots-clés pour rechercher des articles

↑↓
ESC
⌘K Raccourci