Istek cookieja u ConnManu s OpenConnectom, a ne problem s certifikatom
Dva kvara u dnevniku izgledaju isto. Uporedite prikvačeni otisak s kolačićem sesije, osvježite polje kojem je istekao rok i ponovo pokrenite demon.
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.
| Signal | Expired cookie | Changed certificate |
|---|---|---|
| When it started | after hours or days of working | right after a gateway change |
| Fingerprint from a fresh authenticate | unchanged | different value |
| Usual log tail | HTTP CONNECT 401 / unauthorized | signer not found / verify failed |
| Repair | replace the cookie, restart | re-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.comIzlaz 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.