Añadir --csd-wrapper a un perfil entrega un script local a un demonio que lo ejecuta durante el inicio de sesión, así que la decisión que tiene delante es una revisión de código, no un interruptor de preferencia. La opción existe para que pueda sustituirse el componente de comprobación de host de la puerta de enlace, y toma una ruta a un script que usted proporciona. Todo lo que sigue supone que el propietario del despliegue ya ha dicho qué comprobación de postura se requiere; si esa parte sigue abierta, resuélvala primero. El manual tiene cuatro pasos: localizar la etapa que falló, leer el script, elegir la identidad con la que se ejecuta y demostrar el resultado.

Paso 1: Localice la etapa que falló

El último mensaje del cliente suele tratar de una cookie, que es el final de una cadena y no su principio. Un inicio de sesión HTTPS, una comprobación del certificado del servidor, un intercambio de autenticación y un componente de postura se sitúan todos delante de ese mensaje.

Capture la versión y la dirección de inicio de sesión en uso, y repita el intento con la salida detallada retenida en su propio terminal. Lea el primer error que no sea un reintento, no la última línea de la transcripción. Si el registro se detiene antes de que se nombre cualquier componente de evaluación, el envoltorio aún no es su problema. Añadirlo en ese punto solo amplía la superficie que tendrá que defender después.

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

Mantenga la transcripción en local, porque las cookies y las respuestas de autenticación son material de acceso. Un rastro pegado en un hilo de chat es una fuga de credenciales incluso cuando el paso de evaluación parece inofensivo. Comparta el texto del error y el punto del flujo donde apareció, nunca la carga útil.

Paso 2: Lea el script antes de que entre en un perfil

Un envoltorio es tan fiable como la revisión que examinó, así que fije esa revisión y guarde su hash junto a la nota de aprobación. Los dos comandos siguientes le dan una huella y una comprobación de sintaxis barata antes de leer una sola línea. También dan a la siguiente persona una referencia fija, lo que importa cuando el archivo vive fuera de la gestión de paquetes. Ninguno de los comandos dice qué hace el script, así que ejecútelos y siga leyendo.

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

Lea el archivo completo con cuatro preguntas en mente: hace llamadas HTTP salientes, lee archivos de credenciales o variables de entorno, escribe fuera de un directorio temporal y alguna rama informa de una postura aprobada sin medir nada. Ese último patrón es una elusión de la política con una línea de registro adjunta. Los envoltorios copiados suelen introducirlo de contrabando detrás de una comprobación de aspecto plausible. Si el script decide que el dispositivo está bien antes de mirar el dispositivo, deténgase ahí.

Compruebe también las cargas empaquetadas, porque una cabecera legible no demuestra nada sobre el resto del archivo. Descargar un script de un hilo de foro no lo hace fiable solo porque su nombre imite un componente real de comprobación de host. Anote quién lo instaló, de dónde vino y cómo se actualizará.

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

Paso 3: Elija la identidad con la que se ejecuta el envoltorio

--csd-user reduce los privilegios mientras se ejecuta el programa CSD, TNCC o HIP. Esa cuenta forma parte del arreglo local de ejecución, no del nombre de usuario enviado a la puerta de enlace.

Dé al envoltorio una cuenta dedicada sin intérprete interactivo, sin derechos de sudo y sin pertenencia a grupos que no necesite. Conceda acceso de lectura al script y a los archivos concretos que inspecciona, y luego pruebe la reducción antes de tocar el perfil de VPN. Encontrar el problema aquí es más barato que encontrarlo dentro del cliente.

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

Reducir los privilegios limita el daño que puede hacer un script malo. No revisa el código, no hace que el informe sea veraz ni establece que el administrador de la puerta de enlace acepte esta implementación como cumplimiento de la política de dispositivos.

Paso 4: Mantenga el cambio reversible

Haga una copia de seguridad del perfil antes de editarlo y mantenga el envoltorio bajo control de versiones para que una reversión restaure un hash conocido en lugar de buscar una copia. Anote la ruta del script, el hash, el usuario de ejecución y el aprobador en un solo lugar.

Para revertir, quite la opción, reinicie el cliente y confirme que vuelve el error original. Si la puerta de enlace sigue rechazando el inicio de sesión tras la reversión, algo más ha cambiado también, y encontrar esa diferencia va antes de volver a probar el envoltorio. Conserve la copia anterior durante toda la ventana de cambio, lo que para la mayoría de los equipos significa hasta que haya pasado la siguiente franja de mantenimiento.

Tras un despliegue correcto, compruebe dos cosas en lugar de una: el túnel se levanta y un dispositivo que debería fallar la comprobación de postura sigue siendo rechazado. Una conexión que funciona para todos no es prueba de que la evaluación sobreviviera a su cambio.

Atajos que crean un segundo problema

No haga que el ayudante informe de un estado conforme sin ejecutar las comprobaciones requeridas, y no anule la identidad de la plataforma para que coincida con otro sistema operativo. Afirmar una plataforma distinta no es prueba de que el dispositivo real cumpla la política. Le deja con un cliente que miente en cada inicio de sesión futuro.

Desactivar la verificación del servidor, reproducir una cookie antigua y apilar scripts no revisados cambian todos un fallo visible por uno invisible. Si el cliente instalado no puede completar el flujo admitido, pida una alternativa aprobada en lugar de doblar el que tiene.

El manual de OpenConnect documenta --csd-wrapper y --csd-user por separado, y esa es la pista que importa: el script y la identidad son dos decisiones. Revíselos por separado y anote ambos. Entonces el aviso de inicio de sesión deja de ser un misterio que se resuelve pegando código.

Artículos relacionados