Adaugi un al doilea laptop la contul care rulează deja pe telefon, iar tunelul telefonului cade în mai puțin de un minut. Sau noul dispozitiv nu termină niciodată conectarea, iar clientul se termină cu un mesaj de politică în loc de expirare. Rețeaua este în regulă în ambele cazuri; decizia a fost luată deasupra ei. O autentificare partajată este o singură identitate, iar majoritatea serviciilor VPN numără acea identitate și nu numărul de dispozitive pe care le deții. Lucrez de la ecranul clientului spre exterior, pentru că de obicei arată ce strat te-a refuzat.

Citește mesajul clientului înainte să atingi rețeaua

Trei defecțiuni arată la fel și nu sunt. O expirare înseamnă că pachetele tale nu au ajuns nicăieri. O eroare TLS sau de certificat înseamnă că punctul final a răspuns, dar strângerea de mână a eșuat. O respingere de autentificare sau de politică înseamnă că poarta ți-a citit datele de acces și apoi le-a respins. Doar a treia aparține unei povești despre limita de sesiuni, așa că stabilește-o prima.

Clienții OpenVPN păstrează liniile interesante în panoul lor de jurnal. Derulează până la ultima încercare de conectare și nu până la bucla de reîncercări care urmează, și caută AUTH_FAILED sau un șir de motiv trimis. Clientul raportează adesea o respingere generică fără explicație, așa că pasul următor este serverul, nu setările clientului. Aplicațiile furnizorilor sunt mai rele: un mesaj despre limita de dispozitive este util, dar o conexiune care se prăbușește după două secunde este o decizie de politică, nu o parolă greșită. Notează numele dispozitivului și ora exactă în orice caz; un operator poate potrivi acea pereche cu o înregistrare de acces în câteva secunde.

Numără sesiunile acolo unde le numără serverul

Contorul care contează trăiește pe poartă. OpenVPN scrie un fișier de stare când serverul este pornit cu --status, listând fiecare client conectat cu numele său comun, adresa reală și contoarele de trafic.

cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock

Două rânduri cu același nume comun sunt două sesiuni vii sub un singur certificat. În mod implicit OpenVPN nu le păstrează pe amândouă: fără --duplicate-cn, o a doua conexiune cu același certificat o înlocuiește pe prima, iar dispozitivul mai vechi își pierde tunelul. Acea înlocuire este semnătura unei limite de identitate. Pierderea aleatorie de pachete nu deconectează politicos exact un dispozitiv în momentul în care apare altul.

WireGuard nu are un tabel de sesiuni de inspectat. wg show wg0 afișează partenerii și ultima lor strângere de mână, iar fiecare dispozitiv înregistrat este un partener cu propria cheie. Un cont partajat acolo este un fișier de configurare copiat pe mai multe mașini, iar limita vine de la ce distribuie acele configurații: un portal al furnizorului, un număr de locuri sau o regulă legată de adresa ta publică. Manualul OpenVPN 2.6 documentează opțiunile din partea serverului dacă îți administrezi propria poartă.

Separă cele patru limite care se ascund în spatele unui singur mesaj

Majoritatea tichetelor de cont partajat sunt una dintre patru decizii de admitere. Clientul nu le poate distinge, dar tiparul dispozitivului care eșuează poate.

Aceeași identitate, a doua conexiune. Noul dispozitiv funcționează, iar cel vechi moare în același moment. Este o regulă de concurență pe identitate impusă de poartă sau de sistemul de conturi. Nimic nu este stricat; serviciul face ce spune politica lui.

Numărul de locuri sau dispozitive din plan. Primele dispozitive rămân conectate, iar următorul este refuzat în timp ce celelalte continuă. Verifică lista de dispozitive a furnizorului înainte să schimbi un client, pentru că o limită de licență nu se poate repara din partea clientului.

Un plafon legat de adresa ta publică. Două laptopuri în spatele unui singur router de acasă eșuează, în timp ce aceeași autentificare funcționează de pe un hotspot de telefon. Mută al doilea dispozitiv într-o altă rețea pentru a-l testa. Dacă se conectează acolo, te uiți la o regulă pe adresă sau la o regulă NAT, nu la numărul contului.

Un maxim la nivel de server. Toți cei de pe poartă eșuează la aceeași oră de vârf, inclusiv conturi care ieri erau în regulă. --max-clients din OpenVPN se comportă astfel și nu are nimic de-a face cu dispozitivele tale înregistrate.

Curăță sesiunile vechi înainte să cumperi mai multe locuri

O sesiune care s-a terminat prost poate ține încă un loc. Contabilitatea RADIUS scrie o înregistrare când începe o sesiune și o închide când sesiunea se oprește; când un client dispare, oprirea nu mai sosește și serverul ține sesiunea până expiră o actualizare intermediară sau un timp limită. Pe o poartă FreeRADIUS poți vedea înregistrările deschise:

SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;

O înregistrare deschisă cu o oră de început veche și fără trafic aparține unui dispozitiv care a plecat deja. Închide-o din consola operatorului sau cu o cerere de deconectare, înainte să presupui că limita a fost reală. Telefoanele se reconectează când Wi-Fi predă către mobil, iar un laptop poate rula un tunel în sistemul de operare plus altul într-o aplicație a furnizorului, ceea ce se numără ca două sesiuni de pe o singură mașină.

Nu mai partaja o identitate între dispozitive care rulează împreună

Corectarea durabilă este structurală. Dă fiecărui dispozitiv propriul certificat cu un nume comun unic, sau propriul cont, și notează ce persoană și ce mașină îl dețin. În OpenVPN asta înseamnă un certificat de client pe dispozitiv, cu --duplicate-cn lăsat oprit dacă nu vrei comportament de preluare; în WireGuard, o pereche de chei pe dispozitiv, generată acolo și niciodată copiată.

Clonarea unui profil pentru a ocoli o limită de dispozitive rupe revocarea: revocarea unei copii taie fiecare dispozitiv care o partajează, iar jurnalul nu mai poate spune ce mașină a făcut ce. Dacă limita este comercială, corectarea onestă este un loc suplimentar; dacă este politică internă, cere o a doua identitate cu aceleași drepturi de acces.

Verifică într-o ordine fixă

Testează reparația la fel de fiecare dată, ca rezultatul să însemne ceva.

  • Deconectează-te pe fiecare dispozitiv și confirmă că lista activă a serverului este goală; o intrare care nu se curăță este o sesiune veche, nu un defect al clientului.
  • Conectează dispozitivele unul câte unul și urmărește lista între conexiuni.
  • Dacă două trebuie să ruleze împreună, confirmă că ambele rânduri au identități diferite și că ambele își țin strângerea de mână proaspătă.
  • Repetă după o trecere de la Wi-Fi la mobil, pentru că o reconectare poate crea o a doua înregistrare.

Dacă dispozitivul vechi încă mai cade când se conectează cel nou, poarta impune o regulă pe identitate pentru care nu ai primit o excepție. Du operatorului numele dispozitivelor, mărcile de timp și lista sesiunilor active; asta transformă o plângere vagă într-o întrebare de politică la care poate răspunde.

Articole similare