Hace unos días me encontré con un escenario muy interesante, el despliego de un software de Cisco, el AnyConnect mediante GPOs.
Esto desde luego para acelerar el proceso, lo curioso es que el fabricante dice esto no se pude hacer por este medio, únicamente con un componente propio.
Leyendo foros encontré lo mismo y una gran cantidad de ingenieros que tropezaron con esto, así que les comparto el proceso.
Cree una unidad compartida, considere su topología, cantidad de clientes, enlaces, utilización y aspectos similares para decidir sobre este tema.
Como
necesitamos que prácticamente todo usuario acceda el software los permisos en
la unidad compartida se pueden brindar a Authenticated
Users.
Por los
diferentes parámetros que requieren los paquetes la forma más segura de personalizarlos
es mediante un archivo de transformación (tipo MST) el cual se realiza con el software
ORCA o similares.
Básicamente
lo que hacemos es abrir el instalador e insertar una o varias propiedades
nuevas en el archivo diferencial, el MST.
No existe
un instalador separado para ORCA, este es parte del SDK de Windows.
1. Ejecute ORCA y especifique el
instalador que desea personalizar.
2. En el panel izquierdo seleccione la
opción llamada Property
3. Seleccione la opción Transform / New Transform para crear su
archivo de transformación.
4. Posicione el curso en la tabla de
propiedades, clic derecho agregar línea.
5. Estas líneas son simplemente los
parámetros que hubiesen especificado en el comando de instalación, por ejemplo PRE_DEPLOY_DISABLE_VPN=1 para suprimir
el módulo de VPN. Simplemente inserte el nombre de la propiedad y el valor de
esta.
6. Otras propiedades son:
a. LOCKDOWN para
deshabilitar la posibilidad de que el usuario modifique algún parámetro del
software una vez instalado.
b. RebootYesNo
para especificar si desea reiniciar el equipo.
c. DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK para deshabilitar que automáticamente se envíe
información de uso y experiencia del producto al fabricante.
Para más
información refiérase a la documentación de CISCO.
7. Salve los cambios en el archivo MST.
8. Ubique los archivos MST junto con
los instaladores y otros necesarios.
Este es el
método sugerido tanto por seguridad como rendimiento del mismo.
En la
consola de administración de políticas cree una política nueva en el nivel de
su preferencia.
1. Navegue en la consola a la sección: Computer Configuration / Policies / Software
Settings / Software Installation.
2. Dar clic derecho New /
Package.
3. Especifique la ruta UNC al paquete
de instalación, seleccione Open y
luego Advanced.
4. Navegue a la etiqueta Deployment y de clic en el botón de Advanced.
5.
Active la opción Ignore Language when deploying this package. Presione OK.
6. Navegue a la etiqueta Modifications y de clic en el boton Add.
7. Especifique la ruta UNC al paquete
de modificación. Presione Ok.
Su política
de instalación de software se verá como la siguiente.
* Nótese que
esta se ejecuta al iniciar el equipo.
1. Navegue en la consola a la sección Computer Configuration / Preferences /
Windows Settings / Files
2. Clic derecho New / File.
3. Seleccione la acción, en este caso Create (este método permite actualizar,
remover o bien reemplazar archivos.
4. Especifique la ruta UNC del archivo
a enviar y la ruta local de donde gusta este se cree. No olvide el nombre del
archivo y su terminación.
En este
caso los archivos a enviar son el de configuración (configuracition.xml) que se debe almacenar en “C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility Client\Network
Access Manager\system\configuration.xml”.
También se
debe enviar el archivo de traducción de idioma (AnyConnect.mo) que se debe de almacenar en “C:\ProgramData\Cisco\Cisco AnyConnect Secure Mobility
Client\l10n\es\LC_MESSAGES\AnyConnect.mo”.
Consulte la
documentación de Cisco para más información sobre estos.
Una vez
configurada la política esta lucirá de la siguiente forma.
Por una
recomendación de Cisco (CSCuw01496) es necesario crear una llave de
registro tipo DWORD con el valor 1, llamada LsaAllowReturningUnencryptedSecrets. Esta debe almacenarse en la
ruta HKLM\SYSTEM\CurrentControlSet\Control\Lsa.
1. Navegue en la consola a la sección Computer Configuration / Preferences /
Windows Settings / Registry
2.
Clic derecho New
/ Registry Item.
3. Seleccione la acción, en este caso Create (este método permite actualizar,
remover o bien reemplazar ítems del
Registro de Windows).
4. Especifique la ruta, nombre del
ítem, tipo y valor del mismo, esto según la información provista al inicio de
la sección.
Una vez
configurada esta sección de la política esta lucirá de la siguiente forma.
Este es un
método alternativo, por temas de seguridad y rendimiento el método sugerido es
el anterior.
En la
consola de administración de políticas cree una política nueva en el nivel de
su preferencia.
1. Navegue en la consola a la sección: Computer Configuration / Policies / Windows
Settings / Scripts / Startup.
2. Dar clic en Add.
3. Especifique la ruta UNC al archivo
de comandos.
Las
siguientes líneas de código realizas la validación e instalación del software, utilizando
como insumo los archivos MSI y MST mencionados anteriormente, salvar como
archivo tipo BAT en la ruta UNC donde residen los otros archivos.
IF EXIST
"C:\Program Files (x86)\Cisco\Cisco AnyConnect VPN
Client\vpndownloader.exe" GOTO :dae
ELSE
msiexec /i
\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-core-vpn-predeploy-k9.msi
TRANSFORMS=\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-core-MOPT.mst /quiet
/passive
msiexec /i
\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-nam-predeploy-k9.msi
TRANSFORMS=\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-nam-reboot.mst /quiet /passive
shutdown /t
120 /c "Shutting down, save and close your documents"
exit
:dae
exit
Código con
comentarios en color verde.
IF EXIST
"C:\Program Files (x86)\Cisco\Cisco AnyConnect VPN Client\vpndownloader.exe"
GOTO :dae
ELSE SECCION DE
VALIDACION, SI ENCUENTRA EL ARCHIVO vpndownloader.exe VAYA AL PUNTO :dae Y
CONCLUYA. DE EXISTIR DICHO ARCHIVO ES PORQUE EL SOFTWARE YA FUE INSTALADO EN EL
EQUIPO.
msiexec /i
\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-core-vpn-predeploy-k9.msi
TRANSFORMS=\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-core-MOPT.mst /quiet
/passive SE INVOCA EL
ARCHIVO DE INSTALACION Y EL DE MODIFICACION CON LOS PARAMETROS ADECUADOS PARA
OMITIR LA INTERVENCION DEL USUARIO
msiexec /i
\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-nam-predeploy-k9.msi
TRANSFORMS=\\dae-rwdc-100\ISE\anyconnect-win-4.5.03040-nam-reboot.mst /quiet /passive SE INVOCA EL ARCHIVO DE INSTALACION Y EL DE
MODIFICACION CON LOS PARAMETROS ADECUADOS PARA OMITIR LA INTERVENCION DEL
USUARIO
shutdown /t 120 /c "Shutting down, save and close your
documents" ORDEN DE APAGADO
EN 120 SEGUNDO, CON COMENTARIO PARA EL USUARIO, ESTE ES OPCIONAL.
exit ORDEN DE SALIDA
:dae PUNTO DEFINIDO
EN EL AREA DE VALIDACION
exit ORDEN DE SALIDA
Esto
también se podría lograr con un archivo tipo PS1, el cual se puede firmar
digitalmente y agregar otros temas de seguridad.
Combine esto con los pasos anteriores de los archivos de configuración y llaves del registro.
Aunque la
recomendación del fabricante es mantener habilitado el UAC existen escenarios
en donde la capa adicional de seguridad que este crea puede entorpecer el
proceso de instalación de algunos productos, por ende se sugiere crear una
política con los siguientes parámetros para facilitar el despliegue del
software.
Dicha
política contempla parámetros que buscan ajustar ligeramente el comportamiento
del sistema operativo y procesamiento de las políticas.
En la
consola de administración de políticas cree una política nueva en el nivel de
su preferencia. Este se sugiere concuerde con los anteriores.
1. Navegue en la consola a la sección: Computer Configuration / Policies / Windows
Settings / Security Settings / Local Policies / Security Options.
2. Modifique los siguientes 3
parámetros de acuerdo a la imagen.
3. Navegue en la consola a la sección: Computer Configuration / Policies / Administrative
Templates / System / Group Policy y modifique el valor detallado.
4. Navegue en la consola a la sección: Computer Configuration / Policies /
Administrative Templates / System / Logon y modifique el valor detallado.
5. Navegue en la consola a la sección: Computer Configuration / Policies /
Administrative Templates / Windows Components / Windows Instaler y
modifique el valor detallado.
6. Navegue en la consola a la sección Computer Configuration / Preferences /
Windows Settings / Registry
7.
Clic derecho New
/ Registry Item.
8. Seleccione la acción, en este caso Create (este método permite actualizar,
remover o bien reemplazar ítems del
Registro de Windows).
1. Cree una llave de registro tipo DWORD con el valor 0, llamada HiberbootEnabled.
Esta debe almacenarse en la ruta HKLM\SYSTEM\
CurrentControlSet\Control\Session Manager\Power
Una vez
configurada esta sección de la política esta lucirá de la siguiente forma.
La
políticas grupales pueden ser filtradas de diferentes formas, por su ubicación (a nivel de dominio, sitio o bien
unidad organizativa), por membresía de grupos (mantenga presente el
concepto me membresías anidadas) o bien por medio de consultas WMI.
En este
escenario se utilizaremos filtros WMI, esto para no tener que mantener uno o
varios grupos y sus membresías y poder discriminar sistemas operativos en
versión Server de una forma eficaz.
Filtros
utilizados:
select * from Win32_OperatingSystem WHERE
ProductType="1" AND NOT Version like "10.%"
select * from Win32_OperatingSystem WHERE Version like
"10.%" AND ProductType="1"
Código con
comentarios en color verde.
select * from Win32_OperatingSystem WHERE
ProductType="1" AND NOT Version like "10.%" ESTE FILTRO BUSCA EQUIPOS CON SISTEMA
OPERATIVO DE ESTACION DE TRABAJO, NO SERVIDORES. ADICIONALMENTE QUE SU VERSION
NO SEA LA 10.*, LO CUAL SE TRADUCE A CUALQUIERA MENOS WINDOWS 10.
select * from Win32_OperatingSystem WHERE Version like
"10.%" AND ProductType="1" ESTE FILTRO BUSCA EQUIPOS CUYO SISTEMA OPERATIVO SEA
VERSION 10.* EN ADELANTE, EXPLICITAMENTE AQUELLOS CON VERSION DE ESTACION DE
TRABAJO, ESTO PARA EVITAR QUE LA POLITICA APLIQUE A LAS ULTIMAS VERSIONES DE
WINDOWS SERVER.
1. Navegue en la consola de
administración de políticas a la sección: WMI
FIlters.
2. Clic derecho New
3. Especifique un nombre,
adicionalmente una descripción (para futuras referencias) y presione Add.
4. Ingrese el texto del filtro,
documentado en el paso anterior.
1. Navegue en la consola de
administración de políticas a la política donde desea aplicar el filtro WMI, en la parte inferior de la etiqueta
Scope encontrará la opción WMI Filtering.
2. Seleccione el filtro a aplicar.
Los
siguientes enlaces contienen información y procedimientos útiles para la
resolución de problemas con las políticas, estos pueden deberse a múltiples
factores, desde permisos, resolución de nombres, productos de terceros, bloqueos de herencia,
temas propios del diseño de la jerarquía de unidades y/o más.
¡Feliz inicio de semana!
~d