Javna VPN konfiguracija je prestala raditi? Pročitajte fazu kvara
Preuzeti profil opisuje jedan host u jednom danu. Pročitajte koja tvrdnja nije izdržala, provjerite certifikat koji druga strana predstavlja i nikada ne isključujte provjeru.
Profil je radio u utorak, a u petak klijent vrti trideset sekundi i odustane. Ništa se na vašem računaru nije promijenilo. Upravo je to poenta: preuzeta konfiguracija opisuje jedan host u jednom trenutku, a operater na drugoj strani nije dužan održavati taj opis istinitim. Iskušenje je početi mijenjati sigurnosne postavke dok se tunel ne vrati. Taj instinkt je razlog zašto ljudi završe s profilom i isključenom provjerom certifikata, što je gore nego da tunela uopće nema.
Datoteka opisuje trenutak, ne ugovor
Konfiguracijska datoteka je skup tvrdnji: ovo ime hosta sluša na ovom portu s ovim protokolom, predstavlja certifikat koji odgovara ovom imenu i prihvata ove akreditive. Kada bilo koja od njih prestane biti istinita, datoteka je zastarjela i popravka pripada operaterovoj strani granice, a ne vašim postavkama.
Javne liste čvorova to po svojoj prirodi čine očiglednim. Čvorove vode volonteri, pojavljuju se i nestaju, adrese se recikliraju, a portove blokira mreža iza koje se nalaze. Lista je snimak koji se ponovo generiše, a kopija na vašem disku je fotografija starijeg snimka.
Komercijalne usluge mijenjaju se sporije, ali ne nikada. Certifikacijska tijela se rotiraju, slušalac se seli sa zajedničke adrese na namjensku, stari protokol se povlači i dolazi nova lista šifri. Svaka od toga je nevidljiva dok vaš klijent ne pokuša da se poveže i ne dobije drugačiji odgovor od onog koji datoteka očekuje.
Pročitajte fazu kvara prije nego što dirnete postavku
Poruka o grešci kaže koja tvrdnja nije izdržala, a svaka tvrdnja ima potpuno drugačiju popravku. Mijenjanje šifri kada se ime hosta više ne razrješava gubi jedno popodne i nikoga ničemu ne uči.
| 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/nullSrednji red razdvaja blokiran put od pokvarenog rukovanja, a treći prikazuje izdavaoca i datume važenja certifikata koji se stvarno predstavlja. Ako taj izdavalac nije onaj koji je profil prikvačio, certifikat se promijenio i nikakva klijentska opcija neće ponovo učiniti stari pin ispravnim.
Promjene certifikata i identiteta su tihe
Većina kvarova se sama najavljuje. Promjene identiteta ne, jer klijent koji prikvači ime certifikata odbit će potpuno dobar novi certifikat s porukom koju mnogi čitaju kao grešku u softveru. Tunel je u redu. Pin je zastario.
Potražite opcije identiteta prije nego što bilo šta zaključite:
grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -datesAko profil nosi ugrađeni CA i operater je prešao na novo tijelo, stara datoteka ne može validirati novi server. Zamjena CA bloka operaterovim objavljenim blokom je legitimna popravka. Brisanje direktive za provjeru nije, i to su isti pritisci tipki sa sasvim drugačijim ishodom.
Nadogradnja klijenta može proizvesti isti simptom bez ikakve promjene kod operatera. Opcije koje su tiho tolerisane sada se odbijaju, ili se zastarjeli protokol uklanja. To je granica kompatibilnosti u vašem softveru i vrijedi provjeriti drugi profil na istom klijentu prije nego što okrivite server.
Samo operater može objaviti valjanu zamjenu
Kada čvor nestane, zamjena mora doći iz istog izvora koji je objavio original. Profil koji stigne u direktnoj poruci jer „koristi isto ime servera“ jeste neprovjerena konfiguracija nepoznate strane, a njegov uvoz daje toj strani kontrolu nad vašim rutiranjem.
Provjera je jeftina. Dohvatite trenutnu datoteku s objavljene lokacije, uporedite endpoint i protokol s listom i potvrdite otisak CA materijala umjesto da vjerujete imenu datoteke:
curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpnAko se dva hasha razlikuju samo u bjelinama, imate promjenu formatiranja. Ako se razlikuju u endpointima, operater je nešto premjestio i objavljena datoteka je autoritet. Ako je objavljena datoteka starija od one koju držite, vjerovatno gledate keš i zastarjeli odgovor će vas poslati u pogrešnom smjeru.
Povucite stari unos i zapišite šta se dogodilo
Kada se radna zamjena potvrdi, obrišite stari profil umjesto da ga držite kao rezervu. Zastarjeli unos koji se napola povezuje je zamka: bit će odabran tokom prekida, sporo će padati, a osoba koja otklanja grešku potrošit će prvih deset minuta na pogrešnoj datoteci.
Vodite kratak zapis izvan konfiguracije: datum, stari endpoint, fazu kvara i šta ga je zamijenilo. Javni čvorovi se mijenjaju i šest sedmica kasnije isto pitanje dolazi s drugom osobom. Jedan red u datoteci s bilješkama odgovara na njega u sekundama.
Ako iz jedne mreže svaki čvor padne na isti način, a iz druge nijedan, prestanite uređivati profile i pogledajte lokalni put. Captive portal, filtrirani raspon portova ili presrećući proxy proizvest će identične greške kod nepovezanih provajdera, i taj obrazac je jedini signal da problem nikada nije bio u datoteci.