ConnMan máa ń ṣiṣẹ́ ní ọ̀sán kan, lẹ́yìn náà ó kọ̀, àti pé ìlà àkọsílẹ̀ náà mẹ́nu kan ìjẹ́rìí ẹ̀rí. Ìlà yẹn ń rán àwọn ènìyàn lọ sí àwọn àpò CA tí kò tíì bàjẹ́ rí. Àwọn àṣìṣe méjì ọ̀tọ̀ọ̀tọ̀ ń mú irú ìkùnà kan náà jáde: kúkì ìpàdé parí, tàbí ẹ̀rí olùsìn ti yipada ní tòótọ́. A lè yà wọ́n sọ́tọ̀ ní nǹkan bí ìṣẹ́jú kan, àti pé ọ̀kan ṣoṣo nínú wọn ni ó ní í ṣe pẹ̀lú àmì ìka.

Àṣìṣe méjì, ìlà àkọsílẹ̀ kan tí ń dàrú

Wọ́n yà sọ́tọ̀ nípa àkíyèsí méjì, kò sì sí èyí tí ó nílò kíkà kejì. Èkíní ni ìgbà tí ìkùnà bẹ̀rẹ̀: kúkì tí ó parí máa ń dé lẹ́yìn wákàtí tàbí ọjọ́ iṣẹ́, àti ẹ̀rí tí a rọ́pò máa ń dé lẹ́sẹ̀kẹsẹ̀ lẹ́yìn ìyipada ẹnubodè.

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

Ìdánwò ìṣẹ́jú kan ni ìṣiṣẹ́ authenticate tí ó wà nísàlẹ̀. Fi FINGERPRINT rẹ̀ wé OpenConnect.ServerCert nínú fáìlì. Àmì ìka kan náà pẹ̀lú COOKIE mìíràn túmọ̀ sí pé kúkì nìkan ni kí o rọ́pò. Àmì ìka mìíràn túmọ̀ sí pé ẹ̀rí olùsìn ti yipada ní tòótọ́, nítorí náà tún pinnu rẹ̀ pẹ̀lú ìmọ̀, kí o sì kọ ẹni tí ó fọwọ́ sí i.

Ṣèdá ohun èlò náà dípò kíkọ ọ́

ConnMan kò ní ìgbésẹ̀ gbígbéwọlé fún profáìlì OpenConnect, kì í ṣe bíi NetworkManager. Ó ń ka fáìlì ìpèsè tí àwọn iye rẹ̀ gbọ́dọ̀ wà ṣáájú, àti ọ̀nà tí wọ́n ṣe àtìlẹ́yìn fún ṣíṣe wọn ni ipò authenticate ti OpenConnect.

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

Ìjáde ń tẹ iye mẹ́rin: POST, COOKIE, HOST àti FINGERPRINT. Àmì ìka pẹ̀lú àfikún sha256: ni ìdáná olùsìn. Kúkì ni ohun àmì ìpàdé tí ẹnubodè ń pinnu ìgbà ìwàláàyè rẹ̀. Wò wọ́n gẹ́gẹ́ bí oríṣi àṣírí ọ̀tọ̀ọ̀tọ̀: wọ́n ń parí ní ìtòlẹ́sẹẹsẹ ọ̀tọ̀ọ̀tọ̀, àti pé ọ̀kan ṣoṣo ni a retí pé yóò yipada.

Fáìlì náà gbé méjèèjì, wọ́n sì ń gbó ní ọ̀nà ọ̀tọ̀ọ̀tọ̀

Fáìlì ìpèsè wà nísàlẹ̀ /var/lib/connman-vpn/ àti pé daemon VPN ń kà á fún ìsopọ̀ kọ̀ọ̀kan, kì í ṣe applet tray. Pa orúkọ ìsopọ̀ mọ́ ní apá àgbáyé àti àwọn àlàyé ìlànà ní apá olùpèsè.

[global]
Name = Company VPN

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

Lo orúkọ olùgbàlejò tí ẹnubodè ń sìn ní tòótọ́. Adírẹ́sì IP ìhòòhò lè kọjá ìwádìí ẹ̀rí kí ó sì kùnà síbẹ̀, nítorí ẹ̀rọ náà ń tọ́ ọ̀nà lórí olùgbàlejò àròtẹ́lẹ̀, ó sì ń retí orúkọ náà.

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

Ohun tí àkọsílẹ̀ ń fi hàn ní tòótọ́

Ìmọ̀ràn tray kò ní sọ irú àṣìṣe tí o ní. Àkọsílẹ̀ yóò sọ, bí o bá ka ìtẹ̀léṣẹẹsẹ dípò ìlà èkíní tí ń dẹ́rù bà. Kúkì àtijọ́ sábà ń fi hàn pé ìdúnàádúrà TLS ti parí àti pé ìpele HTTP kọ̀ lẹ́yìn náà, ìdí nìyẹn tí àwọn ọ̀rọ̀ nípa ẹ̀rí fi dúró lẹ́gbẹ̀ẹ́ ìkùnà àṣẹ.

Fi ìṣiṣẹ́ authenticate tuntun wé àwọn iye inú fáìlì. Bí àmì ìka bá bá mu tí kúkì nìkan sì yàtọ̀, o ti ní ìdáhùn rẹ láìfi ọwọ́ kan àwọn ètò ìgbẹ́kẹ̀lé.

Tún ààyè tí ó ti parí ṣe

Tún àṣẹ authenticate ṣe, rọ́pò OpenConnect.Cookie, kí o sì tún daemon bẹ̀rẹ̀. Fi àmì ìka sílẹ̀ bí ìjáde tuntun kò bá fi iye mìíràn hàn; ní irú àkókò yẹn a ti rọ́pò ẹ̀rí olùsìn ní tòótọ́, àti pé pípinnu rẹ̀ lẹ́ẹ̀kan sí i jẹ́ ìpinnu tí ẹnìkan yẹ kí ó kọ sílẹ̀, kì í ṣe lílẹ̀ mọ́ láti inú ìfiránṣẹ́ àṣìṣe.

Ṣíṣe ìmúdójúìwọ̀n ní ẹ̀rọ jẹ́ ohun tí ó bọ́gbọ́n mu: skripti kékeré ń ka ọ̀rọ̀ ìpamọ́ láti inú ìwọlé ìgbàlódé, ó ń ṣiṣẹ́ ipò authenticate, ó sì ń tún ìlà kúkì nìkan kọ. Pa ẹ̀rí ìdánimọ̀ mọ́ ní òde skripti, kí ó sì jẹ́ kíkà fún àkọọlẹ tí ń ṣiṣẹ́ rẹ̀ nìkan, kí o sì sọ àtúnkọ di átọ́mù kí ìṣiṣẹ́ tí ó kùnà má ba à fi fáìlì tí a kọ ní ìlàjì sílẹ̀.

Bí a bá nílò ìmúdójúìwọ̀n ní gbogbo wákàtí díẹ̀, kọ ààlà àkókò náà sílẹ̀. Ó jẹ́ ẹ̀yà ti ìlànà ìpàdé ẹnubodè, ó sì ń pinnu bóyá a ó ṣe ìmúdójúìwọ̀n ní ẹ̀rọ tàbí a ó béèrè ìpàdé tí ó gùn jù.

Àwọn àpilẹ̀kọ tó jọra