OpenConnect vpnc-script: ¿qué archivo se ejecuta?
El auxiliar que instala rutas y DNS está separado del cliente del túnel. Localice la ruta que usa el cliente en ejecución antes de sustituirlo por una copia de un foro.
OpenConnect puede completar el saludo del túnel y dejarte igualmente sin ruta hacia la subred privada, porque el cliente y el auxiliar que modifica el estado de la red local son dos programas distintos. La autenticación demuestra que la puerta de enlace aceptó la sesión; no demuestra nada sobre qué interfaz, qué rutas o qué ajustes del resolutor se instalaron después. La mayoría de los informes confusos proceden de sustituir el auxiliar por una copia de una respuesta antigua, lo que cambia el comportamiento de cada conexión de la máquina. Localiza el auxiliar que el cliente en ejecución invoca realmente antes de modificar cualquier parte de él.
Dos programas, dos responsabilidades
El cliente posee el transporte, la autenticación y el dispositivo del túnel. Un auxiliar aparte posee lo que ocurre en el sistema local una vez que existe el túnel: el direccionamiento de la interfaz, las rutas hacia las subredes que anunció la puerta de enlace y la configuración del resolutor. La documentación del auxiliar de OpenConnect describe esa separación y el entorno que recibe el auxiliar. La distinción importa durante un fallo, porque una contraseña rechazada y una ruta ausente no son el mismo incidente aunque el escritorio muestre un solo diálogo para ambos.
Tener presente esa separación también explica por qué una conexión puede informar de éxito mientras los nombres privados siguen sin resolverse. El túnel está levantado en ambos casos y solo cambia la etapa de integración local.
Localiza el auxiliar que usa el cliente en ejecución
La ruta se fija al construir el paquete y puede sobrescribirse en cada invocación, así que el archivo que recuerdas de otra distribución puede no tener nada que ver con esta conexión. Pregunta al proceso en ejecución en lugar de a la documentación que tengas abierta.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Si la línea del proceso lleva un --script argumento, ese archivo prevalece sobre el valor predeterminado compilado. Rutas más antiguas como /etc/vpnc/vpnc-script pueden existir y seguir sin usarse, y por eso borrarlas o editarlas no cambia nada en una compilación reciente. Revisa también la fecha de modificación, porque un auxiliar que nadie ha tocado en años es una señal fuerte de que el valor predeterminado empaquetado es el que hace el trabajo.
La integración con NetworkManager es un tercer propietario, con su propio auxiliar y sus propios ajustes de perfil. Añadir un segundo script de rutas o de resolutor encima de esa integración duplica rutas y deja un resolutor que dos programas afirman gestionar. Elige un solo propietario por conexión y desactiva el otro antes de probar.
Lee la primera operación fallida, no la última advertencia
La configuración de la interfaz, la instalación de rutas, la selección del resolutor y la limpieza del estado obsoleto son pasos separados, y la advertencia impresa al final suele ser una queja de limpieza y no el fallo que rompió la conexión. Lee hacia arriba hasta la primera operación concreta que falló. Un error del auxiliar que nombra un archivo o una dirección vale más que diez líneas de ruido de desmontaje.
Compara el resultado local previsto con el observado: el dispositivo del túnel existe, una ruta hacia una dirección privada conocida pasa por él y el resolutor responde para un nombre privado. Un auxiliar que acierta los dos primeros y falla en el tercero apunta a la política del resolutor y no al enrutamiento. Un auxiliar que no configura el dispositivo en absoluto probablemente nunca se ejecutó, y eso es una cuestión de permisos y no de red. Confirma el bit de ejecución y la cuenta de servicio antes de reescribir cualquier lógica.
Verifica conexión, reconexión y desconexión
La configuración es solo la mitad del contrato, porque el mismo auxiliar debe restaurar o eliminar el estado que posee cuando el túnel se cierra. Un auxiliar que añade rutas y nunca las elimina deja la máquina con una ruta obsoleta que sobrevive a la sesión.
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Ejecuta las tres primeras mientras estás conectado, desconecta y vuelve a ejecutarlas y confirma que la ruta y la entrada del resolutor han desaparecido. La cuarta línea muestra si el auxiliar se invocó siquiera y qué ruta ejecutable usó el servicio. Guarda ese par de salidas en el tíquet, porque es el antes y el después lo que hace evidente un error de limpieza.
Mantén el auxiliar empaquetado y ejecutable por la cuenta de servicio, porque un script que se ejecuta en tu shell aún puede ser denegado bajo una política de servicio restringida. Cuando un cambio sea realmente necesario, documenta su finalidad y su propietario y compáralo con la versión empaquetada en cada actualización. Una bifurcación inexplicada de un auxiliar es una de las pocas cosas que pueden hacer que una conexión que funcionaba falle un año después.