ConnMan veikia popietę ir tada atsisako, o žurnalo eilutė mini sertifikato tikrinimą. Ta eilutė nukreipia žmones prie CA paketų, kurie niekada nebuvo sugadinti. Dvi skirtingos gedimų rūšys sukuria beveik tokią pačią nesėkmės formą: pasibaigia sesijos slapuko galiojimas arba serverio sertifikatas tikrai pasikeitė. Juos galima atskirti maždaug per minutę, ir tik vienas jų apskritai susijęs su piršto atspaudu.

Dvi gedimų rūšys, viena klaidinanti žurnalo eilutė

Jie išsiskiria pagal du stebėjimus, ir nė vienam nereikia antro skaitymo. Pirmasis – kada prasidėjo nesėkmė: pasibaigęs slapukas ateina po valandų ar dienų darbo, o pakeistas sertifikatas ateina iškart po tinklo vartų pakeitimo.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-pin deliberately, then restart

Vienos minutės testas yra žemiau pateiktas authenticate paleidimas. Palyginkite jo FINGERPRINT su OpenConnect.ServerCert faile. Identiškas piršto atspaudas su kitu COOKIE reiškia, kad reikia pakeisti tik slapuką. Kitas piršto atspaudas reiškia, kad serverio sertifikatas tikrai pasikeitė, todėl sąmoningai prisekite jį iš naujo ir užrašykite, kas tai patvirtino.

Generuokite medžiagą, o ne įveskite ją ranka

ConnMan neturi OpenConnect profilio importavimo veiksmo, kitaip nei NetworkManager. Jis skaito aprūpinimo failą, kurio reikšmės turi būti sukurtos iš anksto, o palaikomas būdas jas sukurti yra OpenConnect authenticate režimas.

sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
  --authenticate --user myuser vpn.example.com

Išvestis atspausdina keturias reikšmes: POST, COOKIE, HOST ir FINGERPRINT. Piršto atspaudas su priešdėliu sha256: yra serverio prisegimas. Slapukas yra sesijos artefaktas, kurio galiojimo laiką nustato tinklo vartai. Traktuokite juos kaip skirtingas paslapties rūšis: jie baigiasi pagal skirtingus grafikus, ir tik vienas jų turėtų keistis.

Failas turi abu, ir jie sensta skirtingai

Aprūpinimo failas yra /var/lib/connman-vpn/ kataloge ir jį kiekvienam ryšiui skaito VPN tarnyba, o ne dėklo programėlė. Laikykite ryšio pavadinimą globaliame skyriuje, o protokolo detales tiekėjo skyriuje.

[global]
Name = Company VPN

[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...

Naudokite tą pagrindinio kompiuterio vardą, kurį portalas tikrai aptarnauja. Grynas IP adresas gali praeiti sertifikato patikrą ir vis tiek nepavykti, nes įrenginys maršrutizuoja pagal virtualų pagrindinį kompiuterį ir tikisi vardo.

systemctl status connman-vpn --no-pager   # is the daemon even installed and running
sudo systemctl restart connman-vpn       # after the file edit
journalctl -u connman-vpn --since '1 hour ago'  # after the connection attempt

Ką žurnalas iš tikrųjų rodo

Dėklo patarimas nepasakys, kuri gedimų rūšis pas jus. Žurnalas pasakys, jei skaitysite seką, o ne pirmąją nerimą keliančią eilutę. Pasenęs slapukas paprastai rodo, kad TLS derybos baigėsi, o HTTP sluoksnis po to atmetė; todėl žodžiai apie sertifikatus stovi prie autorizacijos nesėkmės.

Palyginkite naują authenticate paleidimą su reikšmėmis faile. Jei piršto atspaudas sutampa ir skiriasi tik slapukas, atsakymą turite neliesdami pasitikėjimo nustatymų.

Atnaujinkite pasibaigusį lauką

Pakartokite authenticate komandą, pakeiskite OpenConnect.Cookie ir paleiskite tarnybą iš naujo. Palikite piršto atspaudą ramybėje, nebent nauja išvestis rodo kitą reikšmę; tokiu atveju serverio sertifikatas tikrai buvo pakeistas, o pakartotinis prisegimas yra sprendimas, kurį kažkas turi užrašyti, o ne įklijuoti iš klaidos pranešimo.

Atnaujinimo automatizavimas yra pagrįstas: mažas scenarijus nuskaito slaptažodį iš standartinės įvesties, paleidžia authenticate režimą ir perrašo tik slapuko eilutę. Laikykite prisijungimo duomenis už scenarijaus ribų ir skaitomus tik tam, kas jį vykdo, o perrašymą darykite atominiu, kad nepavykęs paleidimas nepaliktų pusiau įrašyto failo.

Jei atnaujinimo reikia kas kelias valandas, užsirašykite intervalą. Tai tinklo vartų sesijų politikos savybė, ir ji nusprendžia, ar automatizuoti atnaujinimą, ar prašyti ilgesnės sesijos.

Susiję straipsniai