Sitzungslimit bei einem geteilten VPN-Konto: Warum ein Gerät ausfällt
Ein geteiltes Login erreicht sein Limit gleichzeitiger Sitzungen, und ein Gerät fällt aus. Lesen Sie die Client-Meldung, zählen Sie die Sitzungen serverseitig und reparieren Sie dann das Identitätsmodell.
Sie fügen dem Konto, das bereits auf Ihrem Telefon läuft, einen zweiten Laptop hinzu, und der Tunnel des Telefons bricht innerhalb einer Minute ab. Oder das neue Gerät beendet die Verbindung nie, und der Client endet mit einer Richtlinienmeldung statt mit einem Timeout. Das Netzwerk ist in beiden Fällen in Ordnung; die Entscheidung wurde darüber getroffen. Ein geteiltes Login ist eine Identität, und die meisten VPN-Dienste zählen diese Identität statt der Zahl der Geräte, die Sie besitzen. Ich arbeite vom Client-Bildschirm nach außen, weil er meist zeigt, welche Schicht Sie abgelehnt hat.
Lesen Sie die Client-Meldung, bevor Sie das Netzwerk anfassen
Drei Fehler sehen ähnlich aus und sind es nicht. Ein Timeout bedeutet, dass Ihre Pakete nirgendwo angekommen sind. Ein TLS- oder Zertifikatsfehler bedeutet, dass der Endpunkt geantwortet hat, aber der Handshake fehlschlug. Eine Ablehnung der Authentifizierung oder der Richtlinie bedeutet, dass das Gateway Ihre Anmeldedaten gelesen und dann abgelehnt hat. Nur der dritte gehört zu einer Sitzungslimit-Geschichte, also legen Sie ihn zuerst fest.
OpenVPN-Clients halten die interessanten Zeilen im Logfenster. Scrollen Sie zum letzten Verbindungsversuch statt zur Wiederholungsschleife danach, und suchen Sie nach AUTH_FAILED oder einer gesendeten Begründung. Der Client meldet oft eine allgemeine Ablehnung ohne Erklärung, also ist der nächste Schritt der Server und nicht die Einstellungen des Clients. Anbieter-Apps sind schlimmer: Eine Meldung zum Gerätelimit ist nützlich, aber eine Verbindung, die nach zwei Sekunden zusammenbricht, ist eine Richtlinienentscheidung und kein falsches Passwort. Notieren Sie in jedem Fall den Gerätenamen und die genaue Uhrzeit; ein Betreiber kann dieses Paar in Sekunden mit einem Zugriffsdatensatz abgleichen.
Zählen Sie Sitzungen dort, wo der Server sie zählt
Der Zähler, auf den es ankommt, lebt auf dem Gateway. OpenVPN schreibt eine Statusdatei, wenn der Server mit --status gestartet wird, und listet jeden verbundenen Client mit seinem Common Name, seiner echten Adresse und seinen Verkehrszählern auf.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
Zwei Zeilen mit demselben Common Name sind zwei lebende Sitzungen unter einem Zertifikat. Standardmäßig behält OpenVPN nicht beide: Ohne --duplicate-cn ersetzt eine zweite Verbindung mit demselben Zertifikat die erste, und das ältere Gerät verliert seinen Tunnel. Diese Ersetzung ist die Signatur eines Identitätslimits. Zufälliger Paketverlust trennt nicht höflich genau ein Gerät in dem Moment, in dem ein anderes erscheint.
WireGuard hat keine Sitzungstabelle zum Prüfen. wg show wg0 zeigt Peers und ihren letzten Handshake, und jedes eingetragene Gerät ist ein Peer mit eigenem Schlüssel. Ein geteiltes Konto ist dort eine Konfigurationsdatei, die auf mehrere Rechner kopiert wurde, und das Limit kommt von dem, was diese Konfigurationen ausgibt: ein Anbieterportal, eine Platzanzahl oder eine Regel, die an Ihre öffentliche Adresse gebunden ist. Das OpenVPN-2.6-Handbuch dokumentiert die serverseitigen Optionen, wenn Sie Ihr eigenes Gateway betreiben.
Trennen Sie die vier Limits, die sich hinter einer Meldung verbergen
Die meisten Tickets zu geteilten Konten sind eine von vier Zulassungsentscheidungen. Der Client kann sie nicht unterscheiden, das Muster, welches Gerät ausfällt, aber schon.
Gleiche Identität, zweite Verbindung. Das neue Gerät funktioniert und das alte stirbt im selben Moment. Das ist eine Regel zur Gleichzeitigkeit pro Identität, die das Gateway oder das Kontosystem durchsetzt. Nichts ist kaputt; der Dienst tut, was seine Richtlinie sagt.
Platz- oder Geräteanzahl im Tarif. Die ersten Geräte bleiben verbunden und das nächste wird abgelehnt, während die anderen weiterlaufen. Prüfen Sie die Geräteliste des Anbieters, bevor Sie einen Client ändern, denn ein Lizenzlimit lässt sich nicht von der Client-Seite beheben.
Eine Obergrenze, die an Ihre öffentliche Adresse gebunden ist. Zwei Laptops hinter einem Heimrouter scheitern, während dasselbe Login von einem Handy-Hotspot funktioniert. Stellen Sie das zweite Gerät zum Testen in ein anderes Netzwerk. Wenn es dort verbindet, sehen Sie eine Regel pro Adresse oder eine NAT-Regel, nicht die Kontozahl.
Ein serverweites Maximum. Alle am Gateway scheitern zur selben Hauptverkehrsstunde, auch Konten, die gestern in Ordnung waren. --max-clients von OpenVPN verhält sich so, und es hat nichts mit Ihren eingetragenen Geräten zu tun.
Räumen Sie veraltete Sitzungen auf, bevor Sie mehr Plätze kaufen
Eine Sitzung, die schlecht geendet hat, kann noch einen Platz halten. Die RADIUS-Abrechnung schreibt einen Datensatz, wenn eine Sitzung beginnt, und schließt ihn, wenn die Sitzung endet; verschwindet ein Client, kommt das Ende nie an, und der Server behält die Sitzung, bis eine Zwischenaktualisierung oder ein Timeout abläuft. Auf einem FreeRADIUS-Gateway sehen Sie die offenen Datensätze:
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
Ein offener Datensatz mit alter Startzeit und ohne Verkehr gehört zu einem Gerät, das schon weg ist. Schließen Sie ihn über die Konsole des Betreibers oder mit einer Trennungsanforderung, bevor Sie annehmen, das Limit sei real gewesen. Telefone verbinden sich neu, wenn Wi-Fi an Mobilfunk übergibt, und ein Laptop kann einen Tunnel im Betriebssystem plus einen weiteren in einer Anbieter-App betreiben, was als zwei Sitzungen von einer Maschine zählt.
Hören Sie auf, eine Identität zwischen Geräten zu teilen, die zusammen laufen
Die dauerhafte Lösung ist strukturell. Geben Sie jedem Gerät sein eigenes Zertifikat mit einem eindeutigen Common Name oder sein eigenes Konto und halten Sie fest, welche Person und welche Maschine es hält. Bei OpenVPN bedeutet das ein Client-Zertifikat pro Gerät, wobei --duplicate-cn aus bleibt, außer Sie wollen Übernahme-Verhalten; bei WireGuard ein Schlüsselpaar pro Gerät, dort erzeugt und nie kopiert.
Ein Profil zu klonen, um ein Gerätelimit zu umgehen, bricht den Widerruf: Der Widerruf einer Kopie kappt jedes Gerät, das sie teilt, und das Log kann nicht mehr sagen, welche Maschine was getan hat. Ist das Limit kommerziell, ist die ehrliche Lösung ein zusätzlicher Platz; ist es interne Richtlinie, bitten Sie um eine zweite Identität mit denselben Zugriffsrechten.
Prüfen Sie in fester Reihenfolge
Testen Sie die Reparatur jedes Mal auf dieselbe Weise, damit das Ergebnis etwas bedeutet.
- Melden Sie sich auf jedem Gerät ab und bestätigen Sie, dass die aktive Liste des Servers leer ist; ein Eintrag, der sich nicht löscht, ist eine veraltete Sitzung und kein Client-Fehler.
- Verbinden Sie die Geräte eines nach dem anderen und beobachten Sie die Liste zwischen den Verbindungen.
- Müssen zwei zusammen laufen, bestätigen Sie, dass beide Zeilen unterschiedliche Identitäten tragen und beide ihren Handshake frisch halten.
- Wiederholen Sie es nach einem Übergang von Wi-Fi zu Mobilfunk, da eine Neuverbindung einen zweiten Datensatz erzeugen kann.
Fällt das alte Gerät weiterhin aus, wenn das neue verbindet, setzt das Gateway eine Regel pro Identität durch, für die Ihnen keine Ausnahme gewährt wurde. Bringen Sie dem Betreiber die Gerätenamen, die Zeitstempel und die Liste der aktiven Sitzungen; das macht aus einer vagen Beschwerde eine Richtlinienfrage, die er beantworten kann.