Bakit nabibigo ang Linux client ng GlobalProtect sa mas bagong Ubuntu
Maayos ang .deb: inalis ng mas bagong mga release ng Ubuntu ang Qt5 WebKit, na naka-link pa rin ang interface ng vendor. Kumpirmahin ang dependency, pagkatapos pumili ng openconnect o mas lumang LTS.
Ang makatwirang palagay ay sira ang .deb mula sa iyong GlobalProtect portal, o naglabas ang vendor ng depektibong build. Karaniwang hindi. Naka-link pa rin ang Linux interface ng vendor sa Qt5 WebKit, at hindi na ito ibinibigay ng mas bagong mga release ng Ubuntu, kaya hinihingi ng package ang library na sadyang inalis ng iyong distribusyon. Iyon ay hindi pagtutugma ng packaging, hindi sirang download, at ang pagkakaibang iyon ang magpapasya kung gugugol ka ng hapon sa pagpilit ng mga package o sampung minuto sa pagpili ng ibang client.
Hindi sira ang .deb
Ang dependency na hindi na dala ng distribusyon ay normal na resulta ng pagretiro ng isang library. Inalis ang Qt5 WebKit mula sa mga huling archive ng Ubuntu at mula sa Debian, at ang dahilan ay pagpapanatili ng seguridad at hindi kakulangan ng demand. Kapag nangyari iyon, hindi na mai-install ang bawat package na naka-link pa rin dito, gaano man kahusay ito itinayo.
Dalawang failure ang iniuulat bilang isang bug at hindi. Sa release na walang library, humihinto ang installer sa hindi nasasapat na dependency. Sa release kung saan naka-install ang client at pagkatapos ay nabigo sa login, ang nakikita mo ay problema sa handshake ng TLS o SAML sa loob ng naka-embed na component ng browser. Ang una ay packaging; ang pangalawa ay runtime, at wala sa dalawa ang naaayos sa pamamagitan ng pagkopya ng lumang library sa modernong desktop.
Kumpirmahin ang dependency sa halip na pilitin ito
I-install ang package nang hayagan upang pangalanan ng tool ang hindi naresolbang dependency sa halip na bigyan ka ng buod. Pagkatapos itanong kung may anumang kandidato ang iyong release, dahil ang „hindi available dito” at „pansamantalang nawawala sa mirror na ito” ay humahantong sa ganap na magkaibang desisyon:
sudo apt install ./GlobalProtect_UI_deb-*.deb
apt-cache policy libqt5webkit5
apt-cache rdepends --installed libqt5webkit5
Kung apt-cache policy ay walang iniuulat na kandidato, tigilan ang pagtatangkang i-install ito at magsimulang pumili ng alternatibo. Ang kawili-wili ay hindi ang nawawalang pangalan ng package; ang kawili-wili ay ang katotohanang hindi gumalaw ang dependency graph ng vendor kasama ng mga distribusyong ginagamit ng iyong mga user.
Ano ang ginagawa ng pagpilit ng lumang package sa desktop
Ang solusyong umiikot ay hilahin ang library mula sa lumang release. Sa kasalukuyang Ubuntu, nauuwi iyon sa conflict ng minor version ng Qt5: hinihila pabalik ng lumang package ang libqt5core5t64 , at pagkatapos ay nagsisimulang humingi ang naka-install na KDE at PyQt package ng ABI version na hindi na ibinibigay ng ibinabang library. Ang resulta ay partial upgrade na sumisira sa walang kaugnayang application, na mas masamang hapon kaysa sa sinimulan mo.
Inaasahan ang resultang iyon at hindi malas. Mahigpit ang inaasahan ng ABI ng Qt para sa minor version, at isang magkakaugnay na set ang ibinibigay ng isang distribusyon. Ang paghahalo ng isang library mula sa ibang release ay hindi target na pag-aayos; ito ay pangalawang upgrade na hindi gaanong kontrolado.
Ganito rin ang payo para sa runtime na bersyon ng failure. Ang pagbaba ng system-wide na antas ng seguridad ng OpenSSL upang magtagumpay ang handshake ng lumang client ay nagbabago sa bawat TLS connection sa makina upang ayusin ang isang application, kasama ang package manager na kakailanganin mo kapag may ibang nasira.
Nagsasalita ang openconnect ng protocol
Direktang ipinapatupad ng OpenConnect ang protocol ng GlobalProtect, at ang mga tala ng protocol ay naglalarawan ng invocation at ng paghahati sa pagitan ng dalawang server interface. Ibinabahagi ng portal ang mga setting at ang listahan ng gateway; tinatapos ng gateway ang tunnel:
openconnect --protocol=gp vpn.example.com
openconnect --protocol=gp --authgroup=staff vpn.example.com
Kung iniwan ng portal ang gateway na kailangan mo, --usergroup=gateway o URL na nagtatapos sa /gateway ay nilalaktawan ang hakbang ng portal. Kapag maraming gateway ang inaalok, --authgroup=NAME pumipili sa mga ito. Ang authentication ay username at password, opsyonal na may client certificate, at ang SAML gateway sa praktika ay gumagana sa pamamagitan ng network-manager-openconnect sa halip na command line na tinipa sa kamay.
Ang gateway na may mahigpit na patakaran sa posture ay maaari ring humingi ng HIP report bago magbigay ng tunnel. Nakakagawa at nakapagsumite ang OpenConnect ng isa, ngunit kung hinihingi ng gateway ang inventory na hindi nito kayang gawin, walang flag ang magbabago sa patakarang iyon; desisyon iyon sa panig ng server.
I-verify ang tunnel, at alamin ang hindi aayusin ng openconnect
Tingnan ang aktwal na inilapat ng tunnel sa halip na maniwala sa mensahe ng tagumpay. Nagpapadala ang gateway ng routing at configuration bilang XML at inilalapat ito ng client, kaya ang nawawalang ruta ay problema sa configuration o pagpili at hindi bug ng client:
ip -4 addr show
ip route
resolvectl status
Ang MTU ay karapat-dapat sa sariling pagtingin. Laging nag-uulat ang configuration ng GlobalProtect ng MTU na zero, kaya tinatantya ito ng client mula sa encapsulation overhead. Ang malalaking transfer na natigil habang pumapasok ang maliliit na request ay ang klasikong sintomas, at ang lunas ay hayagang MTU sa koneksyon sa halip na patayin ang path discovery.
Ang IPv6 ay hiwalay na usapin. Idinagdag ito ng PAN sa GlobalProtect 4.0, at ang suporta ng OpenConnect ay inilalarawan bilang eksperimental mula sa bersyon 9.0, kaya huwag ipagpalagay na kumikilos ang address family tulad ng IPv4 dahil lang sa umangat ang tunnel. At kung ipinapatupad ng gateway ang posture check na hindi kayang tuparin ng open source na client, patakbuhin ang vendor client sa sinusuportahang LTS release, sa virtual machine kung ang workstation mo ay umusad na. Pinapanatili nitong buo ang desktop at inilalagay ang legacy dependency sa loob ng hangganang maaari mong itayong muli.