A ConnMan OpenConnect sütijének lejárata, nem tanúsítványprobléma
Két hiba egyformán néz ki a naplóban. Hasonlítsa össze a rögzített ujjlenyomatot a munkamenet-sütivel, frissítse a lejárt mezőt, majd indítsa újra a démont.
A ConnMan egy délutánig működik, aztán elutasít, és a naplósor a tanúsítvány ellenőrzését említi. Az a sor olyan CA-csomagokhoz küldi az embereket, amelyek soha nem voltak hibásak. Két különböző hiba majdnem ugyanolyan formájú meghibásodást okoz: lejár a munkamenet-süti, vagy a kiszolgáló tanúsítványa valóban megváltozott. Körülbelül egy perc alatt elválaszthatók, és csak az egyiküknek van köze az ujjlenyomathoz.
Két hiba, egy zavaró naplósor
Két megfigyelés választja el őket, és egyik sem igényel második olvasást. Az első az, mikor kezdődött a hiba: a lejárt süti órák vagy napok munkája után érkezik, és a kicserélt tanúsítvány közvetlenül egy átjáróváltás után érkezik.
| 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 |
Az egyperces teszt az alábbi authenticate-futtatás. Hasonlítsa össze a FINGERPRINT értékét a fájlban lévő OpenConnect.ServerCert értékkel. Azonos ujjlenyomat más COOKIE mellett azt jelenti, hogy csak a sütit kell kicserélni. Eltérő ujjlenyomat azt jelenti, hogy a kiszolgáló tanúsítványa valóban megváltozott, ezért tudatosan rögzítse újra, és jegyezze fel, ki hagyta jóvá.
Állítsa elő az anyagot, ne gépelje be
A ConnMannak nincs importálási lépése az OpenConnect-profilhoz, a NetworkManagertől eltérően. Egy kiépítési fájlt olvas, amelynek értékeit előre elő kell állítani, és az előállítás támogatott módja az OpenConnect authenticate módja.
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comA kimenet négy értéket ír ki: POST, COOKIE, HOST és FINGERPRINT. Az ujjlenyomat, a sha256: előtaggal, a kiszolgáló rögzítése. A süti a munkamenet-összetevő, amelynek élettartamát az átjáró dönti el. Kezelje őket különböző titokfajtaként: különböző ütemezés szerint járnak le, és csak az egyikük várhatóan változik meg.
A fájl mindkettőt hordozza, és különbözőképpen öregszenek
A kiépítési fájl a /var/lib/connman-vpn/ alatt található, és kapcsolatonként a VPN-démon olvassa, nem a tálca-applet. Tartsa a kapcsolat nevét a globális szakaszban és a protokoll részleteit a szolgáltató szakaszában.
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Használja azt a hosztnevet, amelyet a portál valóban kiszolgál. A csupasz IP-cím átmehet a tanúsítvány-ellenőrzésen, és mégis elbukhat, mert az eszköz a virtuális hoszt szerint irányít, és a nevet várja.
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 attemptMit mutat valójában a napló
A tálca tippje nem mondja meg, melyik hibája van. A napló megmondja, ha a sorrendet olvassa, nem az első riasztó sort. Egy elavult süti általában azt mutatja, hogy a TLS-egyeztetés befejeződött, és az HTTP-réteg utána elutasít, ezért állnak a tanúsítványokról szóló szavak egy engedélyezési hiba mellett.
Hasonlítsa össze egy friss authenticate futtatást a fájlban lévő értékekkel. Ha az ujjlenyomat egyezik, és csak a süti tér el, megvan a válasza anélkül, hogy hozzányúlna a bizalmi beállításokhoz.
Frissítse a lejárt mezőt
Ismételje meg az authenticate parancsot, cserélje ki a OpenConnect.Cookie értéket, és indítsa újra a démont. Hagyja békén az ujjlenyomatot, hacsak a friss kimenet nem mutat más értéket; abban az esetben a kiszolgáló tanúsítványát valóban kicserélték, és az újrarögzítés olyan döntés, amelyet valakinek rögzítenie kell, nem pedig hibaüzenetből beilleszteni.
A frissítés automatizálása ésszerű: egy kis szkript beolvassa a jelszót a szabványos bemenetről, lefuttatja az authenticate módot, és csak a süti sorát írja újra. Tartsa a hitelesítő adatot a szkripten kívül, és csak a futtató fiók számára olvashatóan, az újraírást pedig tegye atomikussá, hogy egy sikertelen futás ne hagyjon félkész fájlt.
Ha a frissítésre néhány óránként szükség van, írja fel az intervallumot. Ez az átjáró munkamenet-szabályzatának tulajdonsága, és eldönti, hogy automatizálni kell-e a frissítést, vagy hosszabb munkamenetet kell kérni.