Două dispozitive, un singur certificat OpenVPN: bucla reconectării
Un tunel care repornește la fiecare jumătate de minut înseamnă de obicei două dispozitive cu același certificat de client. Parcurge logul, separarea și pasul de retragere.
Un tunel care urcă și apoi repornește la fiecare jumătate de minut nu este de obicei o problemă de cifru sau de MTU. Este o singură identitate folosită de două ori. Serverul vede un nume comun cunoscut, ia sesiunea nouă ca fiind cea mai recentă, iar dispozitivul mai vechi descoperă că a fost înlocuit. Din partea clientului asta arată ca un timeout de inactivitate și o repornire, de aceea ancheta începe atât de des în locul greșit.
Începe cu intervalul de repornire
Intervalul este un indiciu înainte de orice altceva. Un ritm constant care se potrivește cu fereastra ping-restart indică o sesiune înlocuită, nu o cale defectă, pentru că defecțiunile de cale sunt rareori atât de regulate. Notează intervalul exact dintre reporniri și linia de motiv din logul clientului. Un timeout urmat de repornire spune o altă poveste decât un handshake eșuat.
Verifică momentul în care au început repornirile față de un al doilea dispozitiv. Un laptop nou, un telefon sau un profil copiat pe o mașină de rezervă sunt declanșatorii obișnuiți, iar momentul coincide de obicei cu ziua în care cineva l-a configurat.
Notează intervalul și motivul. Ambele sunt dovezi, și ambele se colectează ieftin.
Citește ce a spus serverul despre a doua autentificare
Pe un server pe care îl controlezi, logul numește numele comun și arată o a doua conexiune care sosește. Fără duplicate-cn, acea sosire înlocuiește sesiunea existentă pentru același nume, iar mesajul spune asta de obicei fără ocolișuri. Cu duplicate-cn, ambele sesiuni coexistă și simptomul se schimbă: clienții rămân activi dar împart un singur set de setări pe client și o singură decizie de revocare. Citește ambele intrări împreună, pentru că înlocuirea se vede doar în succesiune.
La un serviciu găzduit s-ar putea să nu ai deloc log de server. Indiciul este atunci momentul: un tunel stabil care cade de fiecare dată când se conectează altă mașină, fără nimic în logul clientului în afara timeout-ului.
Compară blocurile de certificat și cheie din ambele profiluri, nu doar numele gazdă la distanță. Profilurile copiate diferă de obicei doar prin numele fișierului.
Separă identitatea pe partea serverului
Emite un certificat pe dispozitiv prin CA care semnează pentru acest server. Cu Easy-RSA asta înseamnă un nume de client separat pentru fiecare dispozitiv, iar profilul se construiește apoi din acel certificat și cheia lui. Numele comun devine identitatea dispozitivului, și exact asta îi lipsea serverului. Denumește-le după dispozitiv, nu după persoană, ca o înlocuire să producă un nume nou.
Cheia partajată a canalului de control este altceva. tls-crypt sau tls-auth protejează canalul de control pentru fiecare client și este menită să fie partajată. Nu este o identitate de client, iar înlocuirea ei nu va repara un certificat duplicat.
Ține certificatul, cheia și orice fișier de configurare pe client sub același nume comun, altfel maparea se rupe la următoarea conexiune. O nepotrivire acolo produce un client care se autentifică și apoi nu primește nimic.
Menține adresele și setările aliniate după separare
Adresele fixe introduc o a doua cale de coliziune. Dacă serverul le atribuie prin ifconfig-pool-persist sau printr-un fișier pe client, acele înregistrări încă indică numele vechi. Două dispozitive pot ajunge cu aceeași adresă de tunel chiar și după separarea certificatelor, iar acea defecțiune arată diferit de bucla originală.
Actualizează maparea în același timp cu certificatul, apoi reconectează ambele dispozitive și compară adresele atribuite. O adresă duplicată se manifestă ca pierdere intermitentă, nu ca o reconectare curată.
Trimite setările care trebuie să difere pe dispozitiv prin fișierul propriu al acelui dispozitiv, nu printr-un șablon partajat. Un șablon partajat face și următorul duplicat mai greu de observat.
Retrage vechea identitate cum trebuie
Revocă certificatul când hardware-ul este retras sau lipsește, în loc să ștergi profilul de pe mașina veche. Revocarea produce un CRL nou, iar serverul are nevoie de acel fișier acolo unde indică crl-verify. Cu acea directivă la locul ei, un CRL lipsă sau ilizibil face serverul să respingă fiecare client, așa că testează un cont cunoscut după fiecare actualizare.
Ține un inventar care leagă fiecare certificat de o persoană sau un dispozitiv, cu datele de emitere și de revocare. Acel inventar răspunde cine mai are acces fără a citi nume de fișiere, și împiedică următorul profil copiat să reia bucla.