Limite de sessions d’un compte VPN partagé : pourquoi un appareil se déconnecte
Une connexion partagée atteint son plafond de sessions simultanées et un appareil se déconnecte. Lisez le message du client, comptez les sessions côté serveur, puis corrigez le modèle d’identité.
Vous ajoutez un second ordinateur portable au compte qui tourne déjà sur votre téléphone, et le tunnel du téléphone tombe en moins d’une minute. Ou le nouvel appareil ne termine jamais sa connexion, et le client finit sur un message de stratégie au lieu d’un délai d’attente. Le réseau va bien dans les deux cas ; la décision a été prise au-dessus de lui. Une connexion partagée est une seule identité, et la plupart des services VPN comptent cette identité plutôt que le nombre d’appareils que vous possédez. Je travaille depuis l’écran du client vers l’extérieur, car il indique généralement quelle couche vous a refusé.
Lisez le message du client avant de toucher au réseau
Trois échecs se ressemblent et ne sont pas identiques. Un délai d’attente signifie que vos paquets ne sont arrivés nulle part. Une erreur TLS ou de certificat signifie que le point de terminaison a répondu mais que la poignée de main a échoué. Un rejet d’authentification ou de stratégie signifie que la passerelle a lu vos identifiants puis les a refusés. Seul le troisième relève d’une histoire de limite de sessions, alors établissez-le d’abord.
Les clients OpenVPN gardent les lignes intéressantes dans leur panneau de journal. Faites défiler jusqu’à la dernière tentative de connexion et non jusqu’à la boucle de nouvelles tentatives qui la suit, et cherchez AUTH_FAILED ou une chaîne de motif poussée. Le client signale souvent un rejet générique sans explication, donc l’étape suivante est le serveur, pas les réglages du client. Les applications des fournisseurs sont pires : un message de limite d’appareils est utile, mais une connexion qui s’effondre au bout de deux secondes est une décision de stratégie, pas un mauvais mot de passe. Notez le nom de l’appareil et l’heure exacte dans tous les cas ; un opérateur peut rapprocher ce couple d’un enregistrement d’accès en quelques secondes.
Comptez les sessions là où le serveur les compte
Le compteur qui compte vit sur la passerelle. OpenVPN écrit un fichier d’état lorsque le serveur est démarré avec --status, en listant chaque client connecté avec son nom commun, son adresse réelle et ses compteurs de trafic.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
Deux lignes portant le même nom commun sont deux sessions vivantes sous un seul certificat. Par défaut, OpenVPN ne garde pas les deux : sans --duplicate-cn, une seconde connexion utilisant le même certificat remplace la première, et l’appareil le plus ancien perd son tunnel. Ce remplacement est la signature d’une limite d’identité. Une perte de paquets aléatoire ne déconnecte pas poliment exactement un appareil au moment où un autre apparaît.
WireGuard n’a pas de table de sessions à inspecter. wg show wg0 affiche les pairs et leur dernière poignée de main, et chaque appareil enrôlé est un pair avec sa propre clé. Un compte partagé y est un fichier de configuration copié sur plusieurs machines, et la limite vient de ce qui distribue ces configurations : un portail de fournisseur, un nombre de postes ou une règle liée à votre adresse publique. Le manuel OpenVPN 2.6 documente les options côté serveur si vous exploitez votre propre passerelle.
Séparez les quatre limites qui se cachent derrière un seul message
La plupart des tickets de compte partagé sont l’une de quatre décisions d’admission. Le client ne peut pas les distinguer, mais le schéma de l’appareil qui échoue le peut.
Même identité, seconde connexion. Le nouvel appareil fonctionne et l’ancien meurt au même instant. C’est une règle de concurrence par identité appliquée par la passerelle ou le système de comptes. Rien n’est cassé ; le service fait ce que sa stratégie dit.
Nombre de postes ou d’appareils dans l’offre. Les premiers appareils restent connectés et le suivant est refusé pendant que les autres continuent. Vérifiez la liste d’appareils du fournisseur avant de changer un client, car une limite de licence ne se corrige pas côté client.
Un plafond lié à votre adresse publique. Deux ordinateurs portables derrière un seul routeur domestique échouent alors que la même connexion fonctionne depuis un point d’accès du téléphone. Déplacez le second appareil vers un autre réseau pour le tester. S’il s’y connecte, vous regardez une règle par adresse ou une règle NAT, pas le nombre du compte.
Un maximum à l’échelle du serveur. Tout le monde sur la passerelle échoue à la même heure de pointe, y compris des comptes qui allaient bien la veille. Le --max-clients d’OpenVPN se comporte ainsi, et cela n’a rien à voir avec vos appareils enrôlés.
Nettoyez les sessions obsolètes avant d’acheter plus de postes
Une session qui s’est mal terminée peut encore occuper une place. La comptabilité RADIUS écrit un enregistrement au démarrage d’une session et le ferme à son arrêt ; quand un client disparaît, l’arrêt n’arrive jamais et le serveur garde la session jusqu’à l’expiration d’une mise à jour intermédiaire ou d’un délai. Sur une passerelle FreeRADIUS, vous pouvez voir les enregistrements ouverts :
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
Un enregistrement ouvert avec une heure de début ancienne et sans trafic appartient à un appareil déjà parti. Fermez-le depuis la console de l’opérateur ou par une demande de déconnexion, avant de supposer que la limite était réelle. Les téléphones se reconnectent quand le Wi-Fi bascule vers le mobile, et un ordinateur portable peut faire tourner un tunnel dans le système d’exploitation plus un autre dans une application de fournisseur, ce qui compte comme deux sessions depuis une seule machine.
Cessez de partager une identité entre des appareils qui fonctionnent ensemble
La correction durable est structurelle. Donnez à chaque appareil son propre certificat avec un nom commun unique, ou son propre compte, et notez quelle personne et quelle machine le détient. Sur OpenVPN, cela signifie un certificat client par appareil, avec --duplicate-cn laissé désactivé sauf si vous voulez un comportement de prise de contrôle ; sur WireGuard, une paire de clés par appareil, générée là-bas et jamais copiée.
Cloner un profil pour contourner un plafond d’appareils casse la révocation : révoquer une copie coupe chaque appareil qui la partage, et le journal ne peut plus dire quelle machine a fait quoi. Si la limite est commerciale, la solution honnête est un poste supplémentaire ; si c’est une politique interne, demandez une seconde identité avec les mêmes droits d’accès.
Vérifiez dans un ordre fixe
Testez la réparation de la même manière à chaque fois, pour que le résultat ait un sens.
- Déconnectez-vous sur chaque appareil et confirmez que la liste active du serveur est vide ; une entrée qui ne se nettoie pas est une session obsolète, pas un bug du client.
- Connectez les appareils un par un et surveillez la liste entre les connexions.
- Si deux doivent fonctionner ensemble, confirmez que les deux lignes portent des identités différentes et que les deux gardent leur poignée de main fraîche.
- Répétez après un passage du Wi-Fi au mobile, car une reconnexion peut créer un second enregistrement.
Si l’ancien appareil se déconnecte encore quand le nouveau se connecte, la passerelle applique une règle par identité pour laquelle vous n’avez pas obtenu d’exception. Apportez à l’opérateur les noms des appareils, les horodatages et la liste des sessions actives ; cela transforme une plainte vague en une question de stratégie à laquelle il peut répondre.