Mae ConnMan yn gweithio am brynhawn ac yna'n gwrthod, ac mae llinell y log yn sôn am wirio tystysgrif. Mae'r llinell honno'n anfon pobl at becynnau CA na chawsant eu torri erioed. Mae dau fai gwahanol yn cynhyrchu bron yr un siâp methiant: mae cwci'r sesiwn yn dod i ben, neu mae tystysgrif y gweinydd wedi newid mewn gwirionedd. Gellir eu gwahanu mewn tua munud, a dim ond un ohonynt sy'n ymwneud â'r ôl-bys o gwbl.

Dau fai, un llinell log ddryslyd

Maent yn gwahanu ar ddau arsylwad, ac nid oes angen ail ddarlleniad ar y naill na'r llall. Y cyntaf yw pryd y dechreuodd y methiant: mae cwci wedi dod i ben yn cyrraedd ar ôl oriau neu ddyddiau o waith, a tystysgrif wedi'i disodli yn cyrraedd yn syth ar ôl newid porth.

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

Y prawf munud yw'r rhediad authenticate isod. Cymharwch ei FINGERPRINT â OpenConnect.ServerCert yn y ffeil. Mae ôl-bys unfath gyda COOKIE gwahanol yn golygu disodli'r cwci yn unig. Mae ôl-bys gwahanol yn golygu bod tystysgrif y gweinydd wedi newid mewn gwirionedd, felly ail-biniwch hi'n fwriadol a chofnodwch pwy a gymeradwyodd hynny.

Cynhyrchwch y deunydd yn lle ei deipio

Nid oes gan ConnMan gam mewnforio ar gyfer proffil OpenConnect, yn wahanol i NetworkManager. Mae'n darllen ffeil ddarparu y mae'n rhaid cynhyrchu ei gwerthoedd ymlaen llaw, a'r ffordd a gefnogir i'w cynhyrchu yw modd authenticate OpenConnect.

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

Mae'r allbwn yn argraffu pedwar gwerth: POST, COOKIE, HOST a FINGERPRINT. Yr ôl-bys, gyda'r rhagddodiad sha256:, yw pin y gweinydd. Y cwci yw arteffact y sesiwn â hyd oes y mae'r porth yn ei benderfynu. Triniwch hwy fel gwahanol fathau o gyfrinach: maent yn dod i ben ar amserlenni gwahanol, a dim ond un sy'n disgwyl newid.

Mae'r ffeil yn cario'r ddau, ac maent yn heneiddio'n wahanol

Mae'r ffeil ddarparu yn /var/lib/connman-vpn/ ac mae'r daemon VPN yn ei darllen fesul cysylltiad, yn hytrach na'r applet hambwrdd. Cadwch enw'r cysylltiad yn yr adran fyd-eang a manylion y protocol yn adran y darparwr.

[global]
Name = Company VPN

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

Defnyddiwch yr enw gwesteiwr y mae'r porth yn ei wasanaethu mewn gwirionedd. Gall cyfeiriad IP noeth basio'r gwiriad tystysgrif a methu o hyd, oherwydd bod y teclyn yn llwybrwneud ar y gwesteiwr rhithwir ac yn disgwyl yr enw.

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

Beth mae'r log yn ei ddangos mewn gwirionedd

Ni fydd awgrym yr hambwrdd yn dweud pa fai sydd gennych. Bydd y log yn gwneud, os darllenwch y dilyniant yn hytrach na'r llinell gyntaf sy'n peri braw. Mae cwci hen yn dangos yn nodweddiadol fod trafodaeth TLS wedi cwblhau a bod haen HTTP yn gwrthod wedyn, a dyna pam mae'r geiriau am dystysgrifau'n sefyll wrth ymyl methiant awdurdodi.

Cymharwch rediad authenticate ffres â'r gwerthoedd yn y ffeil. Os yw'r ôl-bys yn cyfateb a dim ond y cwci sy'n wahanol, mae gennych eich ateb heb gyffwrdd â gosodiadau ymddiriedaeth.

Adnewyddwch y maes sydd wedi dod i ben

Ailadroddwch y gorchymyn authenticate, disodlwch OpenConnect.Cookie, ac ailgychwynnwch y daemon. Gadewch yr ôl-bys yn llonydd oni bai bod yr allbwn ffres yn dangos gwerth gwahanol; yn yr achos hwnnw cafodd tystysgrif y gweinydd ei disodli mewn gwirionedd ac mae ail-binio yn benderfyniad y dylai rhywun ei gofnodi yn hytrach na'i ludo o neges wall.

Mae awtomeiddio'r adnewyddiad yn rhesymol: mae sgript fach yn darllen y cyfrinair o'r mewnbwn safonol, yn rhedeg modd authenticate, ac yn ailysgrifennu llinell y cwci yn unig. Cadwch yr hygrededd allan o'r sgript ac yn ddarllenadwy dim ond i'r cyfrif sy'n ei rhedeg, a gwnewch yr ailysgrifennu'n atomig fel na fydd rhediad aflwyddiannus yn gadael ffeil hanner ysgrifenedig.

Os oes angen yr adnewyddiad bob ychydig oriau, nodwch yr ysbaid. Mae'n briodwedd o bolisi sesiwn y porth, ac mae'n penderfynu a ddylid awtomeiddio'r adnewyddiad neu ofyn am sesiwn hirach.

Erthyglau cysylltiedig