ConnMan wurket in middei en wegeret dan, en de lochrigel neamt sertifikaatferifikaasje. Dy rigel stjoert minsken nei CA-bondels dy't nea stikken wiene. Twa ferskillende fouten jouwe hast deselde foarm fan mislearring: de sesjekoekje ferrint, of it sertifikaat fan 'e tsjinner is echt feroare. Se binne yn sawat in minút fan elkoar te skieden, en mar ien fan beide hat wat mei de fingerôfdruk te meitsjen.

Twa fouten, ien betiizjende lochrigel

Se skiede har op twa waarnimmings, en gjin fan beide freget in twadde lêzing. De earste is wannear't de flater begûn: in ferrûne koekje komt nei oeren of dagen fan wurkjen, en in ferfongen sertifikaat komt daliks nei in poarteferoaring.

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

De test fan in minút is de authenticate-útfiering hjirûnder. Ferlykje syn FINGERPRINT mei OpenConnect.ServerCert yn it bestân. In identike fingerôfdruk mei in oare COOKIE betsjut allinnich de koekje ferfange. In oare fingerôfdruk betsjut dat it sertifikaat fan 'e tsjinner echt feroare is, dus set it mei opsetsin opnij fêst en skriuw op wa't dat goedkard hat.

Genearje it materiaal ynstee fan it te typen

ConnMan hat gjin ymportstap foar in OpenConnect-profyl, oars as NetworkManager. It lêst in foarsjenningbestân wêrfan de wearden foarôf makke wurde moatte, en de stipe manier om se te meitsjen is de authenticate-modus fan OpenConnect.

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

De útfier printsje fjouwer wearden: POST, COOKIE, HOST en FINGERPRINT. De fingerôfdruk, mei it foarheaksel sha256:, is de fêstsetting fan 'e tsjinner. De koekje is it sesje-artefakt mei in libbensdoer dy't de poarte beslút. Behannelje se as ferskillende soarten geheim: se ferrinne neffens ferskillende skema's, en fan mar ien wurdt ferwachte dat er feroaret.

It bestân draacht beide, en se ferâlderje oars

It foarsjenningbestân stiet ûnder /var/lib/connman-vpn/ en wurdt per ferbining lêzen troch de VPN-daemon, net troch it systeemlade-applet. Hâld de ferbiningsnamme yn 'e globale seksje en de protokoldetails yn 'e oanbiederseksje.

[global]
Name = Company VPN

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

Brûk de hostnamme dy't it portaal echt betsjinnet. In keale IP-adres kin de sertifikaatkontrôle trochkomme en dochs mislearje, om't it apparaat rûtelet op 'e firtuele host en de namme ferwachtet.

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

Wat it loch echt sjen lit

De systeemlade-tip sil net sizze hokker flater jo hawwe. It loch sil it wol sizze, as jo de folchoarder lêze ynstee fan 'e earste alarmsinnige rigel. In ferâldere koekje lit typysk sjen dat de TLS-ûnderhanneling klear is en de HTTP-laach dêrnei wegeret, en dêrom steane de wurden oer sertifikaten neist in autorisaasjeflater.

Ferlykje in farske authenticate mei de wearden yn it bestân. As de fingerôfdruk oerienkomt en allinnich de koekje ferskilt, hawwe jo jo antwurd sûnder fertrouwensynstellingen oan te reitsjen.

Fernij it fjild dat ferrûn is

Werhelje it authenticate-kommando, ferfange OpenConnect.Cookie, en start de daemon opnij. Lit de fingerôfdruk gewurde, útsein as de farske útfier in oare wearde sjocht; yn dat gefal is it sertifikaat fan 'e tsjinner echt ferfongen en is opnij fêstsetten in beslút dat immen fêstlizze moat, net in plak út in flaterberjocht.

It fernijen automatisearje is ridlik: in lyts skript lêst it wachtwurd fan standertynfier, rint authenticate-modus en skriuwt allinnich de koekjerigel oer. Hâld de oanmeldgegevens bûten it skript en allinnich lêsber foar it akkount dat it rint, en meitsje it oerskriuwen atomêr sadat in mislearre útfiering gjin heal skreaun bestân efterlit.

As it fernijen elke pear oeren nedich is, skriuw it ynterval op. It is in eigenskip fan it sesjebelied fan 'e poarte, en it beslút oft it fernijen automatisearre wurde moat of om in langere sesje frege wurde moat.

Relatearre artikelen