Afegir --csd-wrapper a un perfil lliura un script local a un dimoni que l’executa durant l’inici de sessió, així que la decisió que teniu al davant és una revisió de codi, no un commutador de preferència. L’opció existeix perquè es pugui substituir el component de comprovació d’amfitrió de la passarel·la, i pren un camí cap a un script que proporcioneu vosaltres. Tot el que segueix assumeix que el propietari del desplegament ja ha dit quina comprovació de postura cal; si aquesta part encara és oberta, resoleu-la primer. El manual té quatre passos: localitzar l’etapa que ha fallat, llegir l’script, triar la identitat amb què s’executa i demostrar el resultat.

Pas 1: Localitzeu l’etapa que ha fallat

El darrer missatge del client normalment tracta d’una galeta, que és el final d’una cadena i no el principi. Un inici de sessió HTTPS, una comprovació del certificat del servidor, un intercanvi d’autenticació i un component de postura se situen tots davant d’aquest missatge.

Captureu la versió i l’adreça d’inici de sessió en ús, i repetiu l’intent amb la sortida detallada retinguda al vostre propi terminal. Llegiu el primer error que no sigui un reintent, no la darrera línia de la transcripció. Si el registre s’atura abans que es nomeni cap component d’avaluació, l’embolcall encara no és el vostre problema. Afegir-lo en aquest punt només eixampla la superfície que haureu de defensar més endavant.

openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/null

Manteniu la transcripció en local, perquè les galetes i les respostes d’autenticació són material d’accés. Un rastre enganxat en un fil de xat és una fuita de credencials fins i tot quan el pas d’avaluació sembla inofensiu. Compartiu el text de l’error i el punt del flux on ha aparegut, mai la càrrega útil.

Pas 2: Llegiu l’script abans que entri en un perfil

Un embolcall és tan fiable com la revisió que n’heu examinat, així que fixeu aquesta revisió i guardeu-ne el hash al costat de la nota d’aprovació. Les dues ordres següents us donen una empremta i una comprovació de sintaxi barata abans que llegiu ni una línia. També donen a la persona següent una referència fixa, cosa que importa quan el fitxer viu fora de la gestió de paquets. Cap de les dues ordres no us diu què fa l’script, així que executeu-les i continueu llegint.

sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.sh

Llegiu tot el fitxer amb quatre preguntes al cap: fa crides HTTP sortints, llegeix fitxers de credencials o variables d’entorn, escriu fora d’un directori temporal i alguna branca informa d’una postura correcta sense mesurar res. Aquest darrer patró és un bypass de política amb una línia de registre enganxada. Els embolcalls copiats solen introduir-lo d’amagat darrere d’una comprovació que sembla plausible. Si l’script decideix que el dispositiu està bé abans de mirar el dispositiu, atureu-vos aquí.

Comproveu també les càrregues empaquetades, perquè una capçalera llegible no demostra res sobre la resta del fitxer. Descarregar un script d’un fil de fòrum no el fa fiable només perquè el seu nom imita un component real de comprovació d’amfitrió. Anoteu qui el va instal·lar, d’on ve i com s’actualitzarà.

grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.sh

Pas 3: Trieu la identitat amb què s’executa l’embolcall

--csd-user baixa els privilegis mentre s’executa el programa CSD, TNCC o HIP. Aquest compte forma part de l’arranjament local d’execució, no del nom d’usuari enviat a la passarel·la.

Doneu a l’embolcall un compte dedicat sense intèrpret interactiu, sense drets de sudo i sense pertinença a grups que no necessiti. Concediu accés de lectura a l’script i als fitxers concrets que inspecciona, i després proveu la baixada de privilegis abans de tocar el perfil de VPN. Trobar el problema aquí surt més barat que trobar-lo dins del client.

sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.sh

Baixar els privilegis limita el mal que pot fer un script dolent. No revisa el codi, no fa que l’informe sigui veraç ni estableix que l’administrador de la passarel·la accepti aquesta implementació com a conforme a la política de dispositius.

Pas 4: Manteniu el canvi reversible

Feu una còpia de seguretat del perfil abans d’editar-lo i manteniu l’embolcall sota control de versions perquè una reversió restauri un hash conegut en lloc de buscar una còpia. Anoteu el camí de l’script, el hash, l’usuari d’execució i l’aprovador en un sol lloc.

Per revertir, traieu l’opció, reinicieu el client i confirmeu que torna l’error original. Si la passarel·la encara rebutja l’inici de sessió després de la reversió, alguna altra cosa també ha canviat, i trobar aquesta diferència va abans de tornar a provar l’embolcall. Guardeu la còpia anterior durant tota la finestra de canvi, cosa que per a la majoria d’equips vol dir fins que hagi passat el proper torn de manteniment.

Després d’un desplegament correcte, comproveu dues coses i no una: el túnel s’aixeca i un dispositiu que hauria de fallar la comprovació de postura encara és rebutjat. Una connexió que funciona per a tothom no és prova que l’avaluació hagi sobreviscut al vostre canvi.

Dreceres que creen un segon problema

No feu que l’ajudant informi d’un estat conforme sense executar les comprovacions necessàries, i no substituïu la identitat de la plataforma perquè coincideixi amb un altre sistema operatiu. Afirmar una plataforma diferent no és prova que el dispositiu real compleixi la política. Això us deixa amb un client que menteix en cada inici de sessió futur.

Desactivar la verificació del servidor, reproduir una galeta antiga i apilar scripts no revisats canvien tots un error visible per un d’invisible. Si el client instal·lat no pot completar el flux admès, demaneu una alternativa aprovada en lloc de doblegar el que teniu.

El manual d’OpenConnect documenta --csd-wrapper i --csd-user per separat, i aquesta és la pista que importa: l’script i la identitat són dues decisions. Reviseu-los per separat i anoteu tots dos. Aleshores el missatge d’inici de sessió deixa de ser un misteri que resoleu enganxant codi.

Articles relacionats