La suposició raonable és que el .deb del vostre portal de GlobalProtect està trencat, o que el fabricant ha publicat una compilació defectuosa. Normalment no ho està. La interfície Linux del fabricant encara enllaça contra Qt5 WebKit, i les versions més recents d’Ubuntu ja no el forneixen, així que el paquet demana una biblioteca que la vostra distribució va retirar expressament. Això és un desajust d’empaquetatge, no una baixada corrupta, i aquesta diferència decideix si passeu la tarda forçant paquets o deu minuts triant un altre client.

El paquet .deb no està trencat

Una dependència que la distribució ja no inclou és el resultat normal de retirar una biblioteca. Qt5 WebKit va desaparèixer dels arxius posteriors d’Ubuntu i de Debian, i el motiu va ser el manteniment de seguretat i no la manca de demanda. Quan això passa, tot paquet que encara hi enllaça deixa de ser instal·lable, per bé que s’hagi construït.

Dues fallades es reporten com el mateix error i no ho són. En una versió sense la biblioteca, l’instal·lador s’atura amb una dependència no satisfeta. En una versió on el client s’instal·la i després falla en iniciar sessió, el que veieu és un problema d’handshake TLS o SAML dins del component de navegador incrustat. El primer és empaquetatge; el segon és temps d’execució, i cap dels dos es repara copiant biblioteques antigues en un escriptori modern.

Confirmar la dependència en lloc de forçar-la

Instal·leu el paquet de manera explícita perquè l’eina nomeni la dependència no resolta en lloc de donar-vos un resum. Després pregunteu si la vostra versió té cap candidat, perquè «no disponible aquí» i «temporalment absent d’aquest mirall» porten a decisions completament diferents:

sudo apt install ./GlobalProtect_UI_deb-*.deb
apt-cache policy libqt5webkit5
apt-cache rdepends --installed libqt5webkit5

Si apt-cache policy no informa cap candidat, deixeu de provar d’instal·lar-lo i comenceu a triar una alternativa. La part interessant no és el nom del paquet absent; és el fet que el graf de dependències del fabricant no s’ha mogut amb les distribucions que fan servir els vostres usuaris.

Què fa a l’escriptori forçar paquets antics

La solució improvisada que circula és estirar la biblioteca d’una versió anterior. En una Ubuntu actual això acaba en un conflicte de versió menor de Qt5: els paquets més antics arrosseguen libqt5core5t64 enrere, i llavors els paquets KDE i PyQt instal·lats comencen a exigir una versió d’ABI que la biblioteca rebaixada ja no ofereix. El resultat és una actualització parcial que trenca aplicacions no relacionades, cosa que és una tarda molt pitjor que aquella amb què vau començar.

Aquest resultat és previsible i no és mala sort. Les expectatives d’ABI de Qt per a versions menors són estrictes, i una distribució lliura un conjunt coherent. Barrejar una biblioteca d’una altra versió no és una correcció puntual; és una segona actualització, menys controlada.

El mateix consell val per a la variant d’execució de la fallada. Baixar el nivell de seguretat d’OpenSSL a tot el sistema per fer que l’handshake d’un client antic funcioni canvia cada connexió TLS de la màquina per reparar una aplicació, inclòs el gestor de paquets que necessitareu quan una altra cosa es trenqui.

openconnect parla el protocol

OpenConnect implementa directament el protocol de GlobalProtect, i les notes del protocol descriuen tant la invocació com la divisió entre les dues interfícies de servidor. El portal distribueix la configuració i la llista de passarel·les; la passarel·la acaba el túnel:

openconnect --protocol=gp vpn.example.com
openconnect --protocol=gp --authgroup=staff vpn.example.com

Si el portal omet la passarel·la que necessiteu, --usergroup=gateway o una URL que acabi en /gateway salta el pas del portal. Quan s’ofereixen diverses passarel·les, --authgroup=NAME tria entre elles. L’autenticació és un nom d’usuari i una contrasenya, opcionalment amb un certificat de client, i les passarel·les SAML funcionen a la pràctica mitjançant network-manager-openconnect en lloc d’una línia d’ordres escrita a mà.

Una passarel·la amb una política de postura estricta també pot exigir un informe HIP abans de lliurar un túnel. OpenConnect pot generar-ne i enviar-ne un, però si la passarel·la exigeix un inventari que no pot produir, cap opció no canvia aquesta política; és una decisió del costat del servidor.

Verificar el túnel i saber què no arreglarà openconnect

Comproveu què ha aplicat realment el túnel en lloc de refiar-vos del missatge d’èxit. La passarel·la envia l’encaminament i la configuració com a XML i el client els aplica, així que una ruta absent és un problema de configuració o de selecció i no un error del client:

ip -4 addr show
ip route
resolvectl status

La MTU mereix una mirada pròpia. La configuració de GlobalProtect sempre informa una MTU de zero, així que el client n’estima una a partir de la sobrecàrrega d’encapsulament. Les transferències grans que s’encallen mentre les peticions petites funcionen són el símptoma clàssic, i el remei és una MTU explícita a la connexió en lloc de desactivar el descobriment de camí.

IPv6 és encara una altra cosa. PAN el va afegir a GlobalProtect 4.0, i el suport d’OpenConnect es descriu com a experimental des de la versió 9.0, així que no doneu per fet que la família d’adreces es comporta com IPv4 només perquè el túnel s’ha aixecat. I si la passarel·la imposa una comprovació de postura que el client de codi obert no pot satisfer, executeu el client del fabricant en una versió LTS compatible, en una màquina virtual si la vostra estació de treball ja ha avançat. Això manté l’escriptori intacte i posa la dependència heretada dins d’un límit que podeu reconstruir.

Articles relacionats