ConnMan radi jedno poslijepodne, a zatim odbija, i red u dnevniku spominje provjeru certifikata. Taj red šalje ljude na CA pakete koji nikada nisu bili pokvareni. Dva različita kvara daju gotovo isti oblik neuspjeha: istekne kolačić sesije ili se certifikat poslužitelja zaista promijenio. Mogu se razlikovati za oko minutu, a samo jedan od njih uopće uključuje otisak.

Dva kvara, jedan zbunjujući red u dnevniku

Razlikuju se po dva zapažanja i nijedno ne zahtijeva drugo čitanje. Prvo je kada je neuspjeh počeo: istekao kolačić dolazi nakon sati ili dana rada, a zamijenjeni certifikat dolazi odmah nakon promjene pristupnika.

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

Test od jedne minute je pokretanje authenticate ispod. Uporedite njegov FINGERPRINT s OpenConnect.ServerCert u datoteci. Identičan otisak uz drugi COOKIE znači da treba zamijeniti samo kolačić. Drugačiji otisak znači da se certifikat poslužitelja zaista promijenio, pa ga svjesno ponovo prikvačite i zabilježite ko je to odobrio.

Generirajte materijal umjesto da ga tipkate

ConnMan nema korak uvoza za OpenConnect profil, za razliku od NetworkManagera. On čita datoteku za opskrbu čije vrijednosti moraju biti izrađene unaprijed, a podržan način da ih izradite je OpenConnectov način authenticate.

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

Izlaz ispisuje četiri vrijednosti: POST, COOKIE, HOST i FINGERPRINT. Otisak s prefiksom sha256: je prikvačenje poslužitelja. Kolačić je artefakt sesije čiji životni vijek određuje pristupnik. Tretirajte ih kao različite vrste tajni: istječu po različitim rasporedima i očekuje se da se promijeni samo jedan.

Datoteka nosi oboje i oni stare različito

Datoteka za opskrbu nalazi se pod /var/lib/connman-vpn/ i čita je za svaku vezu VPN demon, a ne program u sistemskoj traci. Držite naziv veze u globalnom odjeljku, a pojedinosti protokola u odjeljku pružatelja.

[global]
Name = Company VPN

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

Koristite naziv hosta koji portal zaista poslužuje. Gola IP adresa može proći provjeru certifikata i ipak pasti, jer uređaj usmjerava prema virtualnom hostu i očekuje naziv.

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

Što dnevnik zaista pokazuje

Savjet u sistemskoj traci neće reći koji kvar imate. Dnevnik hoće, ako čitate slijed, a ne prvi alarmantni red. Zastario kolačić obično pokazuje da je TLS pregovaranje završeno, a HTTP sloj ga zatim odbija; zato riječi o certifikatima stoje uz neuspjeh autorizacije.

Uporedite svježe pokretanje authenticate s vrijednostima u datoteci. Ako se otisak podudara i razlikuje se samo kolačić, odgovor imate bez diranja postavki povjerenja.

Osvježite polje kojem je istekao rok

Ponovite naredbu authenticate, zamijenite OpenConnect.Cookie i ponovo pokrenite demon. Ne dirajte otisak osim ako svježi izlaz ne pokaže drugačiju vrijednost; u tom slučaju certifikat poslužitelja je zaista zamijenjen i ponovno prikvačenje je odluka koju neko treba zabilježiti, a ne zalijepiti iz poruke o grešci.

Automatizirati osvježavanje je razumno: mala skripta čita lozinku sa standardnog ulaza, pokreće način authenticate i prepisuje samo red s kolačićem. Držite vjerodajnicu izvan skripte i čitljivu samo računu koji je pokreće, a prepisivanje učinite atomskim da neuspješno pokretanje ne ostavi napola napisanu datoteku.

Ako je osvježavanje potrebno svakih nekoliko sati, zapišite interval. To je svojstvo politike sesija pristupnika i odlučuje hoćete li osvježavanje automatizirati ili zatražiti dužu sesiju.

Povezani članci