Versión TLS no permitida de AnyConnect en Linux: delimite primero el alcance de la corrección
Una política LEGACY para todo el host, una configuración de OpenSSL por proceso y una VM desechable comparadas, más el cambio en la puerta de enlace que elimina el error para siempre.
Este error llega antes de la petición de contraseña, y eso es lo útil: aún no se ha autenticado nada, así que las credenciales no son el problema. En Linux el mismo diálogo de AnyConnect puede venir de una versión antigua del protocolo, de un grupo de intercambio de claves de 1024 bits o de un conjunto de cifrado que la política criptográfica del sistema rechaza. Lo he eliminado de tres formas distintas en tres máquinas, y lo que separa esas soluciones es el alcance, no la astucia. Cada una es defendible en el lugar correcto y una mala opción por defecto en cualquier otro.
Lea el mensaje antes de tocar la política
Conserve la cadena exacta del diálogo. Una queja de versión apunta a la capa de protocolo, una queja de certificado apunta a la confianza o al nombre, y un inicio de sesión fallido apunta a las credenciales. Una pasarela que ofrece TLS 1.0 con un grupo DHE de 1024 bits, AES-256-CBC y una firma SHA-1 puede tener un certificado perfectamente válido y aun así ser rechazada por una política moderna antes de que sus credenciales se envíen.
Sondee el extremo con el OpenSSL del sistema, usando el nombre de host real y el puerto que utiliza el cliente.
Que openssl s_client -connect vpn.example.com:443 -servername vpn.example.com falle mientras -tls1 -cipher DEFAULT@SECLEVEL=0 tiene éxito indica que el límite es la versión y el tamaño de la clave a la vez. Si el primer comando informa de una clave DH pequeña en lugar de una alerta de protocolo, la versión está bien y solo el grupo necesita atención. Nunca ponga una clave privada o una contraseña en la prueba.
Opción 1: relajar todo el host con la política criptográfica
En Fedora y RHEL 8 y 9, update-crypto-policies --set LEGACY baja la política del sistema de OpenSSL, y update-crypto-policies --show confirma qué está activo. Normalmente restaura el túnel, pero la política se lee al iniciar un proceso, así que reinicie el cliente y cualquier auxiliar que haya creado antes de volver a probar. También permite protocolos más antiguos y grupos más débiles para cada cliente TLS de la máquina, desde el navegador de la ventana de al lado hasta el gestor de paquetes que actualiza el kernel.
Esa amplitud es todo el objetivo y todo el problema. LEGACY es para todo el host, persistente y fácil de olvidar, así que debería ser un paso de diagnóstico o una excepción documentada en una imagen gestionada, nunca el estado de reposo de un puesto de trabajo. He visto una que se quedó en LEGACY durante dos años porque un solo portal interno lo necesitaba, y nadie sabía decir cuándo había empezado.
Debian y Ubuntu no tienen un solo interruptor para esto. El equivalente es una modificación de /etc/ssl/openssl.cnf que fija un MinProtocol más bajo y CipherString = DEFAULT@SECLEVEL=0 en la sección de valores predeterminados del sistema. Mismo alcance, archivo distinto, algo más fácil de perder de vista durante una actualización de versión.
Opción 2: un archivo de configuración para un cliente
Una configuración de OpenSSL por proceso mantiene el cambio dentro de un solo árbol de procesos, pero solo si el archivo está conectado como la biblioteca espera. Nombrar una sección ssl_conf no basta: OpenSSL lee la clave de nivel superior openssl_conf, la sigue hasta una sección de inicialización y solo entonces llega a los valores predeterminados de SSL.
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0Apunte OPENSSL_CONF a ese archivo y lance el cliente VPN mediante un envoltorio que lo exporte. Todo lo demás en el host conserva la política predeterminada, y esa es la propiedad que importa cuando llega la pregunta de cumplimiento. Confirme que el archivo está realmente en vigor antes de culpar a la pasarela: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 debería listar cifrados TLS 1.0, y un resultado vacío significa que la cadena está rota y que el cliente mantuvo en silencio los valores del sistema.
El archivo es sensible a la versión. OpenSSL 1.1.1 y 3.x aceptan los mismos nombres de sección, pero el tratamiento de las directivas en torno a los proveedores cambió en 3.x, así que verifique con el registro del cliente y un apretón de manos de prueba en lugar de suponer que el archivo se leyó. Una errata en el nombre de la sección falla en abierto, y el cliente usa en silencio los valores predeterminados del sistema.
El límite es la cobertura. Cualquier cosa enlazada con GnuTLS o NSS ignora OPENSSL_CONF, y también cualquier proceso auxiliar que el cliente lance sin heredar el entorno. Compruebe con ldd con qué biblioteca TLS se enlaza realmente el binario antes de construir el envoltorio, porque la respuesta decide si esta opción existe siquiera.
Opción 3: una VM o un contenedor desechable
Para un contratista que durante quince días ataca una puerta de enlace antigua, una VM dedicada con la política relajada es una frontera más limpia que el puesto de trabajo. La superficie antigua y el perfil de navegación diario dejan de compartir la política del kernel, y deshacerse de ella es un borrado, no un hallazgo de auditoría.
Sigue siendo una máquina en red, así que limite su acceso y manténgala fuera de la navegación general. El coste de mantenimiento es otra imagen que parchear, algo real pero acotado y visible, a diferencia de una bandera LEGACY olvidada en un portátil.
Qué le deja la comparación
Elija con tres preguntas: quién necesita el protocolo antiguo, durante cuánto tiempo y quién lo notará si la excepción sobrevive a su motivo. Una aplicación, una persona, unos días, apuntan a la configuración por proceso. Toda una flota detrás de un solo dispositivo apunta a la pasarela misma. Cualquier cosa que necesite una política LEGACY permanente en el host es una decisión de compra disfrazada de solución técnica.
La solución duradera pertenece al dispositivo: TLS 1.2 o posterior, un grupo de al menos 2048 bits, un cifrado AEAD y un certificado con una firma moderna. Pida ese cambio al propietario del dispositivo y luego confirme la versión y el cifrado negociados en el registro del cliente. Anote la excepción con el host, la pasarela, el protocolo negociado, quién la aprueba y una fecha de caducidad, porque la nota es lo que impide que una solución temporal se convierta en el valor predeterminado.