Points clés
- Protocole VPN : WireGuard (rapide, moderne) recommandé. OpenVPN (plus lent, compatible plus large) fallback.
- Configuration : serveur VPN sur le même réseau que le serveur LLM. Utilisateurs distants se connectent via WireGuard.
- Latence : +5-10ms par connexion (généralement imperceptible). Débit = limité par la bande passante Internet.
- Temps setup : 30 min (WireGuard) à 2 heures (OpenVPN + intégration auth).
- Coût : Gratuit (open-source) ou 50-200€/an (service VPN géré si tu ne veux pas l'auto-héberger).
- Sécurité : WireGuard a 4 000 LOC (surface d'attaque faible). OpenVPN est 400K+ LOC (complexe).
- Chiffrement : Les deux soutiennent AES-256. Sécurité end-to-end (utilisateur distant → VPN → serveur LLM).
- Pas de split tunneling = l'entreprise contrôle tout le trafic Internet. Split tunneling = l'utilisateur route le trafic non-LLM en dehors du VPN.
Protocoles VPN : WireGuard vs OpenVPN
| Fonctionnalité | WireGuard | OpenVPN |
|---|---|---|
| Fonctionnalité | WireGuard | OpenVPN |
| Latence | ~5ms surcharge | ~15ms surcharge |
| Complexité setup | Simple (30 min) | Complexe (2 heures) |
| Taille code | 4 000 LOC (auditable) | 400K+ LOC (complexe) |
| Authentification | Clé publique | Certificats + clés |
| Split tunneling | ✓ Intégré | ✓ Nécessite config |
| VPN entreprise (AD/SAML) | Limité (auth manuel) | Mieux (support RADIUS) |
| Recommandation | Utilise ça | Fallback si pas WireGuard |
Configuration : serveur VPN sur réseau LLM
- 1Installe WireGuard sur le serveur VPN (VM Linux sur le même LAN que le serveur LLM).
- 2Génère les clés : clé privée (secret côté serveur), clés publiques (distribue aux clients).
- 3Règle pare-feu : Autorise UDP 51820 (port par défaut WireGuard) entrant depuis Internet.
- 4Config client : Chaque utilisateur reçoit un fichier .conf avec clé privée, endpoint serveur, IPs autorisées.
- 5Software client : App de bureau WireGuard (Mac, Windows, Linux) ou mobile (iOS, Android).
- 6Test : L'utilisateur se connecte au VPN, ping le serveur LLM (devrait répondre), exécute l'inférence via API.
Impact sur les performances
Latence : WireGuard ajoute 5-10ms. L'inférence LLM prend déjà 10-100ms/token, donc impact <5 % perceptible.
Débit : Limité par ta connexion Internet (ex. 100Mbps maison = 12 MB/sec = OK pour LLM).
Exemple : Envoyer prompt 10KB + recevoir réponse 5KB = 15KB total. À 100Mbps = ~1ms latence réseau (négligeable).
Surcharge chiffrement : Les CPUs modernes ont des instructions AES-NI. Chiffrement/déchiffrement à 500Mbps+ par cœur.
Split Tunneling (accès uniquement LLM, pas Internet)
Par défaut, VPN route TOUT le trafic (Internet + LLM) via le tunnel d'entreprise.
Cela peut être lent si les utilisateurs veulent naviguer sur Internet en utilisant LLM.
Split tunneling = seul le trafic LLM traverse le VPN, le trafic Internet va directement.
Exemple WireGuard split tunneling : `AllowedIPs = 10.0.0.0/24` (seulement réseau LLM).
Trade-off : Internet plus rapide, mais moins de supervision de sécurité (l'utilisateur peut exfiltrer des données en dehors du VPN).
Recommandation : Split tunneling pour les utilisateurs (meilleure UX). Monitore avec détection de point terminal (CrowdStrike, Sentinel One).
Renforcement de la sécurité
- Pare-feu : Autorise uniquement le serveur VPN à parler au serveur LLM. Rejette tout autre trafic.
- Rotation clés : Tous les 6 mois, régénère les clés client. Départ utilisateurs : révoque immédiatement leurs clés.
- Logging : Enregistre les connexions VPN (qui, quand, combien de temps). Audit trimestriel.
- Mots de passe : Le serveur VPN doit utiliser les clés SSH uniquement (pas d'auth par mot de passe). SSH sans mot de passe via paire de clés.
- Fail fermé : Si le VPN se déconnecte, le client ne peut pas accéder à Internet (sauf si split tunneling activé).
Dépannage accès distant
Impossible de se connecter : Vérifie les règles pare-feu sur le routeur (UDP 51820 ouvert ?). Vérifie que le service WireGuard est en cours d'exécution (`wg show`).
Inférence lente : Vérifie la latence (`ping 10.0.0.1` à l'intérieur du VPN, devrait être <20ms). Vérifie la bande passante Internet (`iperf3`).
Timeout API : La connexion VPN est tombée. Vérifie les journaux (`journalctl -u wg-quick@wg0`). Redémarre WireGuard.
Un utilisateur ne peut pas accéder, les autres peuvent : Vérifie la clé publique de l'utilisateur dans la config serveur. Régénère la paire de clés.
FAQ
Dois-je utiliser un VPN ou exposer l'API LLM sur Internet ?
Utilise toujours un VPN. N'expose jamais LLM directement sur Internet (DDoS, accès non autorisé). VPN + pare-feu est sécurisé.
Les utilisateurs peuvent-ils accéder à l'API LLM sans VPN ?
Uniquement depuis le LAN (même réseau). Les utilisateurs distants DOIVENT utiliser le VPN. Ou utilise le tunnel SSH inverse (moins sécurisé).
Le chiffrement VPN ralentit-il l'inférence ?
Négligemment (<5 % d'impact). Les CPUs modernes peuvent chiffrer/déchiffrer à des vitesses Gbps.
Dois-je utiliser le split tunneling ?
Oui, pour une meilleure UX. Monitore avec EDR (détection point terminal) pour l'exfiltration de données.
Que se passe-t-il si une clé VPN est compromise ?
Régénère immédiatement la clé de l'utilisateur. L'ancienne clé devient invalide. Pas d'accès rétroactif.
Puis-je utiliser le VPN d'entreprise (Okta, Azure) ?
Oui, mieux pour les grandes équipes. Mais nécessite l'intégration (RADIUS, SAML). WireGuard est plus simple pour <20 utilisateurs.
Sources
- Documentation officielle WireGuard et guide de démarrage rapide
- Documentation communautaire OpenVPN et OpenVPN Access Server
- Cadre de cybersécurité NIST : meilleures pratiques VPN