Potek piškotka ConnMan OpenConnect, ne težava s potrdilom
V dnevniku sta dve napaki videti enako. Primerjajte pripeti prstni odtis s piškotkom seje, osvežite poteklo polje in nato znova zaženite demon.
ConnMan deluje popoldne in nato zavrne, vrstica v dnevniku pa omeni preverjanje potrdila. Ta vrstica pošilja ljudi k paketom CA, ki nikoli niso bili pokvarjeni. Dve različni napaki dasta skoraj enako obliko neuspeha: poteče piškotek seje ali pa se je potrdilo strežnika res spremenilo. Ločiti jih je mogoče v približno minuti, in samo ena od njiju se sploh tiče prstnega odtisa.
Dve napaki, ena zmedena vrstica dnevnika
Ločita se po dveh opažanjih in nobeno ne zahteva drugega branja. Prvo je, kdaj se je napaka začela: potekel piškotek pride po urah ali dneh delovanja, zamenjano potrdilo pride takoj po spremembi prehoda.
| 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 |
Preizkus v eni minuti je spodnji zagon authenticate. Primerjajte njegov FINGERPRINT s OpenConnect.ServerCert v datoteki. Enak prstni odtis z drugim COOKIE pomeni zamenjati samo piškotek. Drugačen prstni odtis pomeni, da se je potrdilo strežnika res spremenilo, zato ga namerno znova pripnite in zabeležite, kdo je to odobril.
Ustvarite gradivo, namesto da ga tipkate
ConnMan nima koraka za uvoz profila OpenConnect, za razliko od NetworkManagera. Bere datoteko za oskrbo, katere vrednosti je treba ustvariti vnaprej, podprt način za njihovo ustvarjanje pa je način authenticate v OpenConnectu.
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comIzhod natisne štiri vrednosti: POST, COOKIE, HOST in FINGERPRINT. Prstni odtis s predpono sha256: je pripenjanje strežnika. Piškotek je artefakt seje z življenjsko dobo, ki jo določi prehod. Obravnavajte ju kot različni vrsti skrivnosti: potekata po različnih urnikih in pričakuje se, da se spremeni samo eden.
Datoteka nosi oba in starata se različno
Datoteka za oskrbo je v /var/lib/connman-vpn/ in jo za vsako povezavo bere demon VPN, ne program v sistemski pladnji. Ime povezave hranite v globalnem razdelku, podrobnosti protokola pa v razdelku ponudnika.
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Uporabite ime gostitelja, ki ga portal v resnici streže. Goli naslov IP lahko prestane preverjanje potrdila in vseeno ne uspe, ker naprava usmerja po navideznem gostitelju in pričakuje ime.
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 attemptKaj dnevnik v resnici pokaže
Namig v pladnju ne bo povedal, katera napaka je pri vas. Dnevnik bo, če berete zaporedje in ne prve alarmantne vrstice. Star piškotek običajno pokaže, da se je pogajanje TLS zaključilo in da je plast HTTP nato zavrnila; zato besede o potrdilih stojijo ob neuspehu avtorizacije.
Primerjajte svež zagon authenticate z vrednostmi v datoteki. Če se prstni odtis ujema in se razlikuje samo piškotek, imate odgovor, ne da bi se dotaknili nastavitev zaupanja.
Osvežite poteklo polje
Ponovite ukaz authenticate, zamenjajte OpenConnect.Cookie in znova zaženite demon. Pustite prstni odtis pri miru, razen če svež izhod pokaže drugačno vrednost; v tem primeru je bilo potrdilo strežnika res zamenjano in ponovno pripenjanje je odločitev, ki jo mora nekdo zabeležiti, ne prilepiti iz sporočila o napaki.
Avtomatizacija osveževanja je smiselna: majhen skript prebere geslo s standardnega vhoda, zažene način authenticate in prepiše samo vrstico piškotka. Hranite poverilnice zunaj skripta in berljive samo za račun, ki ga izvaja, prepisovanje pa naj bo atomsko, da neuspešen zagon ne pusti napol zapisane datoteke.
Če je osveževanje potrebno vsakih nekaj ur, zapišite interval. To je lastnost politike sej prehoda in odloča, ali osveževanje avtomatizirati ali zaprositi za daljšo sejo.