lunes, 8 de febrero de 2016

Cliente VPN Cisco nativo y Windows 8 / Windows 8.1

Hace unos días me pasaron una Tablet ejecutando Windows 8.1 y me pidieron hacer correr el cliente VPN Cisco  nativo sobre ese equipo. Al haberlo hecho antes sobre un Windows 10, dije "pan comido" pues pensé que era repetir el procedimiento; nada mas lejano a la realidad, fue mucho mas complicado de lo que pensé inicialmente.
Después de mucho investigar y probar encontré la manera de hacerlo aunque me queda la duda de si el primer paso es realmente necesario o no.
Los pasos que seguí fueron los siguientes:

Seguir los pasos de la instalación del cliente que están aquí. Finalizando estos pasos el cliente no funcionó, inmediatamente intentaba iniciar una conexión me generaba el error "Secure VPN Connection terminated locally by the Client, Reason 440: Driver Failure". El paso siguiente fue mirar el visor de sucesos donde me encontré con el error 7000 del Service Control Manager que decía "El servicio Cisco Systems Inc. IPSec Driver no pudo iniciarse debido al siguiente error: Windows no puede comprobar la firma digital en este archivo".

Interesante... Investigue un poco al respecto y encontré que, efectivamente, Windows trata las conexiones IPSec como con una tarjeta de red con su correspondiente driver. El error entonces tendría que ver con la firma digital sobre el archivo que controla ese protocolo para la VPN Cisco el cual creo que es CVirtA.sys y que encontré sin firma digital. Aunque se me ocurrió tratar de firmar digitalmente el archivo, al final me decidí por lo que me pareció la ruta de menor esfuerzo: Deshabilitar la comprobación de firmas en drivers (aunque no lo recomiendo, si tienen la posibilidad, es mejor actualizar la Tablet a Windows 10 y usar el método con Cliente de SonicWall).

Reenfoqué la investigación para averiguar como se puede deshabilitar la comprobación de firmas en drivers y encontré un documento que me caía como anillo al dedo. En este mencionaban los siguientes pasos:

  1. Ejecutar como administrador GPEdit.msc
  2. Ir a Configuración de usuarios -> Plantillas Administrativas -> Sistema --> Instalación de controladores -> Firma de código para controladores de dispositivo.
  3. Habilitar la política y en opciones seleccionar "Omitir"
  4. Reiniciar el equipo
No funcionó pero sentía que ya estaba mas cerca de la solución. Segundo intento:
  1. Abrir una interfaz de comandos (CMD) con privilegios de administrador 
  2. Escribir "bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS"
  3. Escribir "bcdedit -set TESTSIGNING ON"
En este punto, el comando bcdedit me genera un error: 

Entonces es fácil, digo yo... Apago la Tablet e ingreso a la BIOS, busco la opcion "Security" y deshabilito el "Secure boot".

Vuelvo a intentar el paso 3... me vuelve a generar el mismo error.

Un poco mas de investigación al respecto y encuentro que el arranque de Windows controla buena parte de las características del sistema y no se pueden administrar sino únicamente desde un menú especial en el arranque. Para ingresar allá se debe mantener presionada la tecla Mayusculas mientras se hace clic en la opción de reiniciar el equipo.

Ya en esa opción lo que sigue es fácil: 
  1. Ingresar a Solucionar problemas, Opciones Avanzadas, Configuración de inicio, hacer clic en reiniciar
  2. Presionar la tecla 7 o F7 (cualquiera de las dos) para deshabilitar la comprobación de firma de controladores
Efectivamente, después del reinicio el cliente VPN funciona a la perfección. De todos modos he quedado con la duda de si ubicando el archivo del driver y firmándolo digitalmente  se puede obviar todo lo anterior.

Es típico que cuando ya se ha solucionado un problema, comienzan a encontrarse otras soluciones tal como esta pero que no han sido probadas por mi.

Actualización 9/2/2015
Probé la solución del cliente Citrix DNE y Cliente Cisco 5.0.07.0410 que aparece en esta pagina y NO funciona sobre una tablet idéntica a la anterior con Windows 8.1 Pro de 32 bits. Sigue generando el error de controlador no firmado. Lo curioso es que según esta pagina, las versiones de Windows de 32 bits no requieren la firma de certificados. Supongo que será algo relacionado a que sea una versión profesional.

Actualización 11/2/2015
Seguí investigando el tema, ubiqué el archivo del controlador que falla (CVPNDRVA.sys) y no conseguí una versión de 32 bits firmada. También lo comparé con la versión 5.0.07.0440 de 64 bits la cual si tiene el archivo firmado pero no trabaja a 32 bits. Estuve investigando si era posible firmar los archivos de manera individual (e incluso intenté firmando el archivo) pero ninguna de las maneras funcionó.

Conclusión:
Definitivamente, Cisco no fabricó un instalador de 32 bits con el driver IPSec firmado, únicamente lo hizo para la versión 5.0.07.0440 a 64 bits por lo que la única alternativa es deshabilitar el Secure Boot


No hay comentarios:

Publicar un comentario