Limite di sessioni di un account VPN condiviso: perché un dispositivo cade
Un accesso condiviso raggiunge il limite di sessioni simultanee e un dispositivo cade. Leggi il messaggio del client, conta le sessioni sul server, poi correggi il modello di identità.
Aggiungi un secondo portatile all’account che già gira sul telefono, e il tunnel del telefono cade entro un minuto. Oppure il nuovo dispositivo non completa mai la connessione, e il client finisce su un messaggio di criterio invece che su un timeout. La rete va bene in entrambi i casi; la decisione è stata presa sopra di essa. Un accesso condiviso è una sola identità, e la maggior parte dei servizi VPN conta quell’identità invece del numero di dispositivi che possiedi. Lavoro dallo schermo del client verso l’esterno, perché di solito mostra quale livello ti ha rifiutato.
Leggi il messaggio del client prima di toccare la rete
Tre guasti sembrano uguali e non lo sono. Un timeout significa che i tuoi pacchetti non sono arrivati a nulla. Un errore TLS o di certificato significa che l’endpoint ha risposto ma la stretta di mano è fallita. Un rifiuto di autenticazione o di criterio significa che il gateway ha letto le tue credenziali e poi le ha respinte. Solo il terzo appartiene a una storia di limite di sessioni, quindi fissalo per primo.
I client OpenVPN tengono le righe interessanti nel pannello di registro. Scorri fino all’ultimo tentativo di connessione e non fino al ciclo di nuovi tentativi che lo segue, e cerca AUTH_FAILED o una stringa di motivo inviata. Il client spesso segnala un rifiuto generico senza spiegazione, quindi il passo successivo è il server, non le impostazioni del client. Le app dei fornitori sono peggio: un messaggio di limite dispositivi è utile, ma una connessione che crolla dopo due secondi è una decisione di criterio, non una password sbagliata. Annota il nome del dispositivo e l’ora esatta in ogni caso; un operatore può confrontare quella coppia con un record di accesso in pochi secondi.
Conta le sessioni dove le conta il server
Il contatore che conta vive sul gateway. OpenVPN scrive un file di stato quando il server viene avviato con --status, elencando ogni client connesso con il suo nome comune, il suo indirizzo reale e i suoi contatori di traffico.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
Due righe con lo stesso nome comune sono due sessioni vive sotto un solo certificato. Per impostazione predefinita OpenVPN non le tiene entrambe: senza --duplicate-cn, una seconda connessione con lo stesso certificato sostituisce la prima, e il dispositivo più vecchio perde il tunnel. Quella sostituzione è la firma di un limite di identità. Una perdita di pacchetti casuale non disconnette educatamente esattamente un dispositivo nel momento in cui ne appare un altro.
WireGuard non ha una tabella di sessioni da ispezionare. wg show wg0 stampa i peer e la loro ultima stretta di mano, e ogni dispositivo registrato è un peer con la propria chiave. Un account condiviso lì è un file di configurazione copiato su più macchine, e il limite viene da ciò che distribuisce quelle configurazioni: un portale del fornitore, un numero di postazioni o una regola legata al tuo indirizzo pubblico. Il manuale di OpenVPN 2.6 documenta le opzioni lato server se gestisci il tuo gateway.
Separa i quattro limiti che si nascondono dietro un solo messaggio
La maggior parte dei ticket sugli account condivisi è una di quattro decisioni di ammissione. Il client non può distinguerle, ma lo schema di quale dispositivo fallisce sì.
Stessa identità, seconda connessione. Il nuovo dispositivo funziona e il vecchio muore nello stesso istante. È una regola di concorrenza per identità applicata dal gateway o dal sistema degli account. Nulla è rotto; il servizio fa ciò che dice il suo criterio.
Numero di postazioni o dispositivi nel piano. I primi dispositivi restano connessi e il successivo viene rifiutato mentre gli altri continuano. Controlla l’elenco dispositivi del fornitore prima di cambiare un client, perché un limite di licenza non si può correggere dal lato client.
Un tetto legato al tuo indirizzo pubblico. Due portatili dietro un solo router domestico falliscono mentre lo stesso accesso funziona da un hotspot del telefono. Sposta il secondo dispositivo su un’altra rete per provarlo. Se lì si connette, stai guardando una regola per indirizzo o una regola NAT, non il conteggio dell’account.
Un massimo a livello di server. Tutti sul gateway falliscono nella stessa ora di punta, compresi account che ieri andavano bene. Il --max-clients di OpenVPN si comporta così, e non ha nulla a che vedere con i dispositivi che hai registrato.
Pulisci le sessioni obsolete prima di comprare più postazioni
Una sessione finita male può ancora tenere un posto. La contabilità RADIUS scrive un record quando una sessione inizia e lo chiude quando la sessione si ferma; quando un client svanisce, l’arresto non arriva mai e il server tiene la sessione finché non scade un aggiornamento intermedio o un timeout. Su un gateway FreeRADIUS puoi vedere i record aperti:
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
Un record aperto con un’ora di inizio vecchia e senza traffico appartiene a un dispositivo già andato. Chiudilo dalla console dell’operatore o con una richiesta di disconnessione, prima di supporre che il limite fosse reale. I telefoni si riconnettono quando il Wi-Fi passa al mobile, e un portatile può tenere un tunnel nel sistema operativo più un altro dentro un’app del fornitore, il che conta come due sessioni da una sola macchina.
Smetti di condividere una identità tra dispositivi che funzionano insieme
La correzione duratura è strutturale. Dai a ogni dispositivo il proprio certificato con un nome comune univoco, o il proprio account, e registra quale persona e quale macchina lo detiene. Su OpenVPN ciò significa un certificato client per dispositivo, con --duplicate-cn lasciato spento a meno che tu non voglia un comportamento di presa in carico; su WireGuard, una coppia di chiavi per dispositivo, generata lì e mai copiata.
Clonare un profilo per aggirare un limite di dispositivi rompe la revoca: revocare una copia taglia ogni dispositivo che la condivide, e il registro non può più dire quale macchina ha fatto cosa. Se il limite è commerciale, la correzione onesta è una postazione in più; se è politica interna, chiedi una seconda identità con gli stessi diritti di accesso.
Verifica in un ordine fisso
Prova la riparazione allo stesso modo ogni volta, così il risultato significa qualcosa.
- Esci su ogni dispositivo e conferma che l’elenco attivo del server sia vuoto; una voce che non si pulisce è una sessione obsoleta, non un difetto del client.
- Connetti i dispositivi uno alla volta e osserva l’elenco tra le connessioni.
- Se due devono funzionare insieme, conferma che entrambe le righe portino identità diverse e che entrambe mantengano la stretta di mano fresca.
- Ripeti dopo un passaggio da Wi-Fi a mobile, poiché una riconnessione può creare un secondo record.
Se il vecchio dispositivo cade ancora quando si connette il nuovo, il gateway applica una regola per identità per cui non ti è stata concessa un’eccezione. Porta all’operatore i nomi dei dispositivi, le marche temporali e l’elenco delle sessioni attive; questo trasforma un reclamo vago in una domanda di criterio a cui può rispondere.