ConnMan OpenConnect-ի քուքի ժամկետի ավարտը, ոչ թե վկայագրի խնդիր
Երկու խափանում մատյանում նույն տեսքն ունեն։ Համեմատեք ամրացված մատնահետքը սեսիայի քուքի հետ, թարմացրեք ժամկետանց դաշտը և հետո վերագործարկեք դեյմոնը։
ConnMan-ը աշխատում է մի կեսօր, հետո մերժում է, և մատյանի տողը հիշատակում է վկայագրի ստուգում։ Այդ տողը մարդկանց ուղարկում է CA փաթեթների մոտ, որոնք երբեք չեն փչացել։ Երկու տարբեր խափանումներ ստեղծում են ձախողման գրեթե նույն ձևը՝ սեսիայի քուքին սպառվում է, կամ սերվերի վկայագիրն իսկապես փոխվել է։ Դրանք կարելի է տարբերել մոտ մեկ րոպեում, և դրանցից միայն մեկն է առնչվում մատնահետքին։
Երկու խափանում, մեկ շփոթեցնող մատյանի տող
Դրանք բաժանվում են երկու դիտարկմամբ, և ոչ մեկը երկրորդ ընթերցում չի պահանջում։ Առաջինն այն է, թե երբ սկսվեց խափանումը՝ ժամկետանց քուքին գալիս է ժամերի կամ օրերի աշխատանքից հետո, և փոխարինված վկայագիրը գալիս է դարպասի փոփոխությունից անմիջապես հետո։
| 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 |
Մեկ րոպեի թեստը ներքևի authenticate աշխատանքն է։ Համեմատեք դրա FINGERPRINT-ը ֆայլի OpenConnect.ServerCert-ի հետ։ Նույն մատնահետքը տարբեր COOKIE-ի հետ նշանակում է փոխարինել միայն քուքին։ Տարբեր մատնահետքը նշանակում է, որ սերվերի վկայագիրն իսկապես փոխվել է, ուստի դիտավորյալ նորից ամրացրեք այն և գրանցեք, թե ով հաստատեց դա։
Ստեղծեք նյութը՝ փոխանակ այն մուտքագրելու
ConnMan-ը OpenConnect պրոֆիլի ներմուծման քայլ չունի, ի տարբերություն NetworkManager-ի։ Այն կարդում է տրամադրման ֆայլ, որի արժեքները պետք է նախապես ստեղծվեն, և դրանք ստեղծելու աջակցվող եղանակը OpenConnect-ի authenticate ռեժիմն է։
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comԵլքը տպում է չորս արժեք՝ POST, COOKIE, HOST և FINGERPRINT։ Մատնահետքը, sha256: նախածանցով, սերվերի ամրացումն է։ Քուքին սեսիայի արտեֆակտն է, որի կյանքի տևողությունը որոշում է դարպասը։ Վերաբերվեք նրանց որպես գաղտնիքի տարբեր տեսակների՝ նրանք սպառվում են տարբեր ժամանակացույցերով, և միայն մեկն է սպասվում փոխվել։
Ֆայլը կրում է երկուսն էլ, և նրանք տարբեր կերպ են ծերանում
Տրամադրման ֆայլը գտնվում է /var/lib/connman-vpn/-ի տակ և ընթերցվում է յուրաքանչյուր միացման համար VPN դեյմոնի կողմից, ոչ թե սկուտեղի հավելվածի։ Միացման անունը պահեք գլոբալ բաժնում, իսկ արձանագրության մանրամասները՝ մատակարարի բաժնում։
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Օգտագործեք այն հոսթի անունը, որը պորտալն իրականում սպասարկում է։ Մերկ IP հասցեն կարող է անցնել վկայագրի ստուգումը և այնուամենայնիվ ձախողվել, քանի որ սարքը երթուղավորում է վիրտուալ հոսթով և սպասում է անվանը։
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Ինչ է իրականում ցույց տալիս մատյանը
Սկուտեղի հուշումը չի ասի, թե որ խափանումն ունեք։ Մատյանը կասի, եթե կարդաք հաջորդականությունը, այլ ոչ առաջին անհանգստացնող տողը։ Հնացած քուքին սովորաբար ցույց է տալիս, որ TLS բանակցությունն ավարտվել է, և HTTP շերտը հետո մերժել է, այդ իսկ պատճառով վկայագրերի մասին բառերը կանգնած են լիազորման խափանման կողքին։
Համեմատեք թարմ authenticate աշխատանքը ֆայլի արժեքների հետ։ Եթե մատնահետքը համընկնում է և տարբերվում է միայն քուքին, պատասխանն ունեք՝ չդիպչելով վստահության կարգավորումներին։
Թարմացրեք ժամկետանց դաշտը
Կրկնեք authenticate հրամանը, փոխարինեք OpenConnect.Cookie-ը և վերագործարկեք դեյմոնը։ Թողեք մատնահետքը հանգիստ, եթե թարմ ելքը տարբեր արժեք չցուցադրի՝ այդ դեպքում սերվերի վկայագիրն իսկապես փոխարինվել է, և վերաամրացումը որոշում է, որը ինչ-որ մեկը պետք է գրանցի, այլ ոչ թե տեղադրի սխալի հաղորդագրությունից։
Թարմացումը ավտոմատացնելը խելամիտ է՝ փոքր սկրիպտը գաղտնաբառը կարդում է ստանդարտ մուտքից, գործարկում է authenticate ռեժիմը և վերագրում է միայն քուքի տողը։ Պահեք հավատարմագրերը սկրիպտից դուրս և ընթեռնելի միայն այն հաշվի համար, որը գործարկում է այն, իսկ վերագրումը դարձրեք ատոմային, որպեսզի ձախողված աշխատանքը կիսատ գրված ֆայլ չթողնի։
Եթե թարմացումը պետք է ամեն մի քանի ժամը մեկ, գրառեք միջակայքը։ Դա դարպասի սեսիաների քաղաքականության հատկությունն է, և այն որոշում է՝ ավտոմատացնե՞լ թարմացումը, թե՞ ավելի երկար սեսիա խնդրել։