ConnMani OpenConnecti küpsise aegumine, mitte sertifikaadiprobleem
Kaks riket näevad logis ühesugused välja. Võrrelge kinnitatud sõrmejälge seansi küpsisega, uuendage aegunud väli ja taaskäivitage siis deemon.
ConnMan töötab terve pärastlõuna ja keeldub siis, ning logirida mainib sertifikaadi kontrollimist. See rida saadab inimesed CA-pakettide juurde, mis polnud kunagi katki. Kaks erinevat riket tekitavad peaaegu sama kuju ebaõnnestumisest: seansi küpsis aegub või serveri sertifikaat on tõesti muutunud. Neid saab eristada umbes minutiga ja ainult üks neist puudutab üldse sõrmejälge.
Kaks riket, üks segadust tekitav logirida
Need eristuvad kahe vaatluse järgi ja kumbki ei nõua teist lugemist. Esimene on see, millal rike algas: aegunud küpsis saabub pärast tunde või päevi töötamist, ja asendatud sertifikaat saabub kohe pärast lüüsi muutmist.
| 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 |
Ühe minuti test on allpool olev authenticate käivitus. Võrrelge selle FINGERPRINT väärtust failis oleva OpenConnect.ServerCert-ga. Identne sõrmejälg ja teistsugune COOKIE tähendab, et asendada tuleb ainult küpsis. Erinev sõrmejälg tähendab, et serveri sertifikaat tõesti muutus, seega kinnitage see teadlikult uuesti ja kirjutage üles, kes selle heaks kiitis.
Genereerige materjal, mitte ärge trükkige seda
ConnManil pole OpenConnecti profiili jaoks impordisammu, erinevalt NetworkManagerist. See loeb varustusfaili, mille väärtused tuleb eelnevalt luua, ja toetatud viis nende loomiseks on OpenConnecti authenticate režiim.
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comVäljund trükib neli väärtust: POST, COOKIE, HOST ja FINGERPRINT. Sõrmejälg, mille eesliide on sha256:, on serveri kinnitus. Küpsis on seansi artefakt, mille eluea otsustab lüüs. Käsitlege neid eri tüüpi saladustena: need aeguvad erinevate graafikute järgi ja ainult üks neist peaks muutuma.
Fail sisaldab mõlemat ja need vananevad erinevalt
Varustusfail asub kaustas /var/lib/connman-vpn/ ja VPN-deemon loeb seda ühenduse kaupa, mitte süsteemisalve rakendus. Hoidke ühenduse nimi globaalses jaotises ja protokolli üksikasjad teenusepakkuja jaotises.
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Kasutage hostinime, mida portaal tegelikult teenindab. Paljas IP-aadress võib sertifikaadikontrolli läbida ja siiski ebaõnnestuda, sest seade marsruudib virtuaalse hosti järgi ja ootab nime.
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 attemptMida log tegelikult näitab
Salve vihje ei ütle, milline rike teil on. Log ütleb, kui loete järjestust, mitte esimest häirivat rida. Vananenud küpsis näitab tavaliselt, et TLS läbirääkimine lõppes ja HTTP kiht keeldus seejärel, mistõttu seisavad sõnad sertifikaatide kohta autoriseerimise ebaõnnestumise kõrval.
Võrrelge värsket authenticate käivitust failis olevate väärtustega. Kui sõrmejälg klapib ja erineb ainult küpsis, on vastus käes, ilma usaldusseadeid puutumata.
Uuendage aegunud väli
Korrake authenticate käsku, asendage OpenConnect.Cookie ja taaskäivitage deemon. Jätke sõrmejälg puutumata, kui värske väljund ei näita teistsugust väärtust; sel juhul asendati serveri sertifikaat tõesti ja uuesti kinnitamine on otsus, mille keegi peaks kirja panema, mitte veateatest kleepima.
Uuendamise automatiseerimine on mõistlik: väike skript loeb parooli standardsisendist, käivitab authenticate režiimi ja kirjutab ümber ainult küpsise rea. Hoidke mandaat skriptist väljas ja loetav ainult kontole, mis seda käivitab, ning tehke ümberkirjutus atomiseerituks, et ebaõnnestunud käivitus ei jätaks pooleldi kirjutatud faili.
Kui uuendamist on vaja iga paari tunni tagant, kirjutage intervall üles. See on lüüsi seansipoliitika omadus ja see otsustab, kas uuendamine automatiseerida või paluda pikemat seanssi.