Prečo klientský program GlobalProtect pre Linux zlyháva na novších Ubuntu
Balík .deb je v poriadku: novšie vydania Ubuntu odstránili Qt5 WebKit, na ktorý sa rozhranie výrobcu stále odkazuje. Overte závislosť a potom zvoľte openconnect alebo staršie LTS.
Rozumný predpoklad je, že .deb z vášho portálu GlobalProtect je pokazený alebo že výrobca vydal chybný build. Väčšinou to tak nie je. Linuxové rozhranie výrobcu sa stále linkuje proti Qt5 WebKit a novšie vydania Ubuntu ho už nedodávajú, takže balík žiada knižnicu, ktorú vaša distribúcia zámerne odstránila. To je nesúlad v balení, nie poškodené stiahnutie, a ten rozdiel rozhoduje, či strávite popoludnie vynucovaním balíkov alebo desať minút výberom iného klienta.
Balík .deb nie je pokazený
Závislosť, ktorú distribúcia už neobsahuje, je bežný dôsledok vyradenia knižnice. Qt5 WebKit zmizol z neskorších archívov Ubuntu aj z Debianu a dôvodom bola bezpečnostná údržba, nie nedostatok dopytu. Keď sa to stane, každý balík, ktorý sa naň stále linkuje, prestane byť inštalovateľný, nech bol zostavený akokoľvek dobre.
Dve zlyhania sa hlásia ako tá istá chyba a tou istou nie sú. Na vydaní bez knižnice sa inštalátor zastaví na nesplnenej závislosti. Na vydaní, kde sa klient nainštaluje a potom zlyhá pri prihlásení, vidíte problém s TLS alebo SAML handshake vnútri vloženej komponenty prehliadača. Prvé je balenie; druhé je runtime a ani jedno sa neopraví kopírovaním starých knižníc do moderného desktopu.
Overte závislosť namiesto toho, aby ste ju vynucovali
Nainštalujte balík explicitne, aby nástroj pomenoval nevyriešenú závislosť, namiesto toho, aby vám dal zhrnutie. Potom sa opýtajte, či vaše vydanie má vôbec nejakého kandidáta, pretože „tu nie je k dispozícii“ a „dočasne chýba v tomto zrkadle“ vedú k úplne odlišným rozhodnutiam:
sudo apt install ./GlobalProtect_UI_deb-*.deb
apt-cache policy libqt5webkit5
apt-cache rdepends --installed libqt5webkit5
Ak apt-cache policy neohlási žiadneho kandidáta, prestaňte sa ho snažiť nainštalovať a začnite vyberať alternatívu. Zaujímavé nie je chýbajúce meno balíka; zaujímavé je, že sa graf závislostí výrobcu nepohol s distribúciami, ktoré vaši používatelia prevádzkujú.
Čo vynucovanie starých balíkov urobí s desktopom
Obejdenie, ktoré koluje, spočíva vo vytiahnutí knižnice zo staršieho vydania. Na aktuálnom Ubuntu to skončí konfliktom menšej verzie Qt5: staršie balíky ťahajú libqt5core5t64 späť a potom nainštalované balíky KDE a PyQt začnú žiadať verziu ABI, ktorú downgradovaná knižnica už neposkytuje. Výsledkom je čiastočná aktualizácia, ktorá rozbije nesúvisiace aplikácie, čo je oveľa horšie popoludnie než to, s ktorým ste začali.
Tento výsledok je očakávaný a nie smolný. Očakávania ABI Qt na menšie verzie sú prísne a distribúcia dodáva jednu súvislú sadu. Primiešať knižnicu z iného vydania nie je cielená oprava; je to druhá, menej kontrolovaná aktualizácia.
Rovnaká rada platí pre runtime variant zlyhania. Zníženie systémovej úrovne zabezpečenia OpenSSL, aby handshake starého klienta prešiel, zmení každé TLS spojenie na stroji kvôli oprave jednej aplikácie, vrátane správcu balíkov, ktorý budete potrebovať, keď sa pokazí niečo iné.
openconnect hovorí týmto protokolom
OpenConnect implementuje protokol GlobalProtect priamo a poznámky k protokolu opisujú ako volanie, tak rozdelenie medzi dvoma serverovými rozhraniami. Portál rozdeľuje nastavenia a zoznam brán; brána ukončuje tunel:
openconnect --protocol=gp vpn.example.com
openconnect --protocol=gp --authgroup=staff vpn.example.com
Ak portál vynechá bránu, ktorú potrebujete, --usergroup=gateway alebo URL končiaca na /gateway preskočí krok portálu. Keď je ponúkaných niekoľko brán, --authgroup=NAME vyberá medzi nimi. Autentifikácia je používateľské meno a heslo, voliteľne s klientskym certifikátom, a brány SAML v praxi fungujú cez network-manager-openconnect namiesto ručne písaného príkazového riadku.
Brána s prísnou zásadou posture môže tiež vyžadovať správu HIP, kým vydá tunel. OpenConnect ju vie vygenerovať a odoslať, ale ak brána vyžaduje inventúru, ktorú nedokáže vytvoriť, žiadny prepínač túto zásadu nezmení; je to rozhodnutie na strane servera.
Overte tunel a vedzte, čo openconnect neopraví
Skontrolujte, čo tunel skutočne použil, namiesto toho, aby ste verili správe o úspechu. Brána posiela smerovanie a konfiguráciu ako XML a klient ich aplikuje, takže chýbajúca trasa je problém konfigurácie alebo voľby, nie chyba klienta:
ip -4 addr show
ip route
resolvectl status
MTU si zaslúži vlastný pohľad. Konfigurácia GlobalProtect vždy hlási MTU nula, takže klient ju odhaduje z réžie zapuzdrenia. Veľké prenosy, ktoré sa zaseknú, kým malé požiadavky prechádzajú, sú klasický príznak a liekom je explicitná MTU na spojení, nie vypnutie objavovania cesty.
IPv6 je opäť samostatná vec. PAN ju pridal v GlobalProtect 4.0 a podpora v OpenConnect je od verzie 9.0 opisovaná ako experimentálna, takže nepredpokladajte, že sa rodina adries správa ako IPv4 len preto, že tunel nabehol. A ak brána vynucuje kontrolu posture, ktorú klient s otvoreným zdrojovým kódom nesplní, prevádzkujte klientsky program výrobcu na podporovanom vydaní LTS, v prípade, že váš pracovný stroj už postúpil, vo virtuálnom počítači. Tým zostane desktop nedotknutý a stará závislosť skončí vnútri hranice, ktorú môžete znova postaviť.