Configurația VPN publică a încetat să funcționeze? Citește etapa defecțiunii
Un profil descărcat descrie un singur host într-o singură zi. Citește care afirmație a cedat, verifică certificatul prezentat de cealaltă parte și nu dezactiva niciodată verificarea.
Profilul funcționa marți, iar vineri clientul se învârte treizeci de secunde și renunță. Nimic de pe mașina ta nu s-a schimbat. Exact aceasta este chestiunea: o configurație descărcată descrie un host într-un singur moment, iar operatorul de la celălalt capăt nu are nicio obligație să mențină acea descriere adevărată. Tentația este să începi să modifici setările de securitate până când tunelul revine. Tocmai acel instinct duce la situația în care oamenii ajung să ruleze un profil cu verificarea certificatelor dezactivată, ceea ce e mai rău decât să nu ai deloc tunel.
Fișierul descrie un moment, nu un contract
Un fișier de configurare este un set de afirmații: acest nume de host ascultă pe acest port cu acest protocol, prezintă un certificat care corespunde acestui nume și acceptă aceste credențiale. Când oricare dintre ele încetează să fie adevărată, fișierul este învechit, iar remedierea aparține părții operatorului de la graniță, nu setărilor tale.
Listele publice de noduri fac acest lucru evident prin natura lor. Nodurile sunt operate de voluntari, apar și dispar, adresele sunt reciclate, iar porturile sunt blocate de rețeaua din spatele căreia se află. Lista este o instantanee care este regenerată, iar copia de pe discul tău este o fotografie a unei instantanee mai vechi.
Serviciile comerciale se schimbă mai încet, dar nu niciodată. Autoritățile de certificare se rotesc, un ascultător se mută de pe o adresă partajată pe una dedicată, un protocol vechi este retras și apare o listă nouă de cifruri. Fiecare dintre acestea este invizibilă până când clientul tău încearcă să se conecteze și primește un răspuns diferit de cel pe care fișierul îl așteaptă.
Citește etapa defecțiunii înainte de a atinge o setare
Mesajul de eroare spune care afirmație a cedat, iar fiecare afirmație are o remediere complet diferită. Editarea cifrurilor când numele de host nu mai este rezolvat pierde o după-amiază și nu învață pe nimeni nimic.
| What happens | The assertion that broke | Supported response |
|---|---|---|
| Name never resolves | The host still exists under that name | Get a current endpoint from the operator |
| TCP connect times out | The listener is on that port and reachable | Check the current published port, then the local network |
| TLS or key exchange fails | The peer presents the expected identity | Compare the certificate, not the cipher list |
| Authentication rejected | The account is still valid | Get credentials reissued or stop using the service |
dig +short vpn.example.net
curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect}\n' --max-time 8 https://vpn.example.net:443/
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/nullLinia din mijloc separă o cale blocată de o strângere de mână stricată, iar a treia arată emitentul și datele de valabilitate ale certificatului care este prezentat efectiv. Dacă acel emitent nu este cel pe care profilul l-a fixat, certificatul s-a schimbat, și nicio opțiune din partea clientului nu va face din nou corectă fixarea veche.
Schimbările de certificat și de identitate sunt cele tăcute
Majoritatea defecțiunilor se anunță singure. Schimbările de identitate nu, pentru că un client care fixează un nume de certificat va refuza un certificat nou perfect valid cu un mesaj pe care mulți îl citesc ca pe un bug. Tunelul este în regulă. Fixarea este învechită.
Caută opțiunile de identitate înainte de a trage vreo concluzie:
grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -datesDacă profilul conține un CA încorporat și operatorul a trecut la o autoritate nouă, fișierul vechi nu poate valida serverul nou. Înlocuirea blocului CA cu cel publicat de operator este o remediere legitimă. Ștergerea directivei de verificare nu este, și sunt aceleași apăsări de taste cu un rezultat foarte diferit.
O actualizare a clientului poate produce același simptom fără nicio schimbare din partea operatorului. Opțiuni tolerate în tăcere sunt acum refuzate, sau un protocol învechit este eliminat. Aceasta este o limită de compatibilitate a software-ului tău și merită să încerci un al doilea profil cu același client înainte de a da vina pe server.
Doar operatorul poate publica un înlocuitor valid
Când un nod dispare, înlocuitorul trebuie să vină din aceeași sursă care a publicat originalul. Un profil care sosește într-un mesaj direct pentru că „folosește același nume de server” este o configurație neverificată de la o parte necunoscută, iar importarea îi oferă acelei părți controlul asupra rutării tale.
Verificarea este ieftină. Ia fișierul curent din locația publicată, compară punctul final și protocolul cu lista și confirmă amprenta materialului CA în loc să te bazezi pe numele fișierului:
curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpnDacă cele două hash-uri diferă doar prin spații, ai o schimbare de formatare. Dacă diferă la punctele finale, operatorul a mutat ceva și fișierul publicat este autoritatea. Dacă fișierul publicat este mai vechi decât al tău, probabil te uiți la un cache, iar răspunsul învechit te va trimite în direcția greșită.
Retrage intrarea veche și notează ce s-a întâmplat
După ce un înlocuitor funcțional este verificat, șterge profilul vechi în loc să îl păstrezi ca rezervă. O intrare învechită care se conectează pe jumătate este o capcană: va fi aleasă în timpul unei întreruperi, va eșua încet, iar cel care depanează va petrece primele zece minute pe fișierul greșit.
Ține o evidență scurtă în afara configurației: data, punctul final vechi, etapa defecțiunii și ce l-a înlocuit. Nodurile publice se schimbă, iar șase săptămâni mai târziu aceeași întrebare vine cu o altă persoană. O singură linie într-un fișier de notițe răspunde în câteva secunde.
Dacă dintr-o rețea fiecare nod eșuează în același fel și din alta niciunul, oprește editarea profilelor și uită-te la calea locală. Un portal captiv, un interval de porturi filtrat sau un proxy care interceptează vor produce erori identice la furnizori neînruditi, iar acel tipar este singurul semnal că problema nu a fost niciodată fișierul.