Implementación remota del agente de servicios de Terminal Server mediante ansible
Resolution
Ansible es una herramienta de administración de configuración que se utiliza habitualmente para hacer cumplir el estado de un servidor en su infraestructura de ti. Se utiliza para asegurar que el servidor es en realidad en el mismo estado que usted desea que sea. Asegura que los paquetes correctos están instalados, los archivos de configuración correctos están en su lugar, los servicios correctos se están ejecutando con los permisos correctos... etc.
Los administradores escriben un conjunto de reglas en un lenguaje simple (YAML), en forma de guías de juego. Ansible funciona conectando a sus nodos y expulsando pequeños programas, llamados "ansible modules" a ellos. Más detalles sobre cómo funciona ansible se puede encontrar aquí
Los administradores podrían utilizar los módulos de Windows ansible (http://docs.ansible.com/ansible/latest/list_of_windows_modules.html) y remotamente instalar y administrar el agente de servicios de Terminal Server (Guía de administración)
Ansible por defecto usa SSH para administrar Linux. Para administrar Windows, se utiliza PowerShell Remoting. Para que ansible administre máquinas Windows, es necesario seguir los pasos documentados en el sitio ansible
Referencia:http://docs.ansible.com/ansible/latest/intro_windows.html
Los siguientes pasos muestran algunos de los módulos de Windows ansible que se utilizan para escribir ansible PlayBook para implementar remotamente el agente de servicios de Terminal Server (TS).
Ansible trabaja contra múltiples sistemas en su infraestructura al mismo tiempo. Lo hace seleccionando porciones de sistemas listados en el inventario de ansible, que por defecto se guardan en la ubicación /etc/ansible/hosts
Por ejemplo, he definido un servidor de agente de TS (tsagent1. palab. local) bajo una etiqueta (Windows)
Windows
tsagent1. palab. local
El siguiente módulo instala el agente de TS en Windows Server. Los detalles en el módulo de win_package se pueden encontrar aquí
En el ejemplo siguiente, el instalador del agente de TS (*. msi), se hospeda en un recurso compartido de red.
-hosts:
tareas de Windows:
-nombre: instalar TS agente
win_package:
ruta: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: pan Terminal Server agente
Estado: presente
user_name: PALAB \Administrador
user_password: MySuperSecretPass
El siguiente comando ejecutaría el libro de jugadas:
ansible-PlayBook-VVV install_ts. yml
Ansible viene con una herramienta llamada como ansible Vault (Link) para encriptar secretos. Estos secretos pueden ser utilizados en tareas.
Cree un archivo Secret. yml.
---mi
secreto: MySuperSecretPass
Encriptar el archivo Secret. yml
# ansible-Vault encriptar Secret. yml nueva contraseña de la bóveda
: EnterASuperSecretPass
confirme la nueva contraseña de la bóveda: EnterASuperSecretPass
cifrado acertado
El contenido del archivo Secret. yml se cifrará y se verá como se muestra a continuación (el contenido será diferente en su entorno)
CAT Secret. yml
$ANSIBLE _vault; 1.1; AES256
63303662393262633865366536333531383362633838316462313739306431656130383730303036
6433623639316439313565393430333430643930623266350a353533666432613438626331396636
32326366386361363363383335333135386364346466636533353434323261373739363533626238
3635613765383762380a306439383961336261316432376266386338643765313064376264633535
35616534613264353739333564633534353230623630653762373632323766643838
La variable (por ejemplo: mi Secret) definida en Secret. yml ahora se puede utilizar en las guías de la siguiente manera:
-hosts:
tareas de Windows:
-nombre: secreto
include_vars: Secret. yml
-nombre: install TS agente
win_package:
path: \\DC1\Users\Administrator\Downloads\TaInstall64.x64-8.0.8-2.msi
product_id: pan terminal Estado del agente del servidor
: present
user_name: PALAB\Administrator
user_password: "{{mi Secret} }"
Para ejecutar la jugada anterior, introduzca el comando folllowing:
root @ Kali:/etc/ansible# ansible-PlayBook--Ask-bóveda-Pass install_ts_vault. yml
contraseña de la bóveda: EnterASuperSecretPass
Consulte http://docs.ansible.com/ansible/latest/playbooks_vault.html para obtener más información sobre Vault.
(Opcional)
Para autenticar las conexiones SSL entre el cortafuegos y el agente de TS, los administradores pueden cargar certificados personalizados en el agente de TS.
Para habilitar la autenticación mutua entre agentes de firewall y de TS, realice los pasos siguientes en un servidor principal de Windows y utilice las configuraciones y certificados de dicho servidor y empuje remotamente a otros servidores.
- Instalar el agente de TS en un servidor Windows
- Cargar certificados personalizados en ese servidor.
- No reiniciar el servicio de agente de servicios de Terminal Server
- Copie los valores del registro del servidor de Windows y copie también el certificado personalizado (Custom-cert. PEM) en el directorio de instalación del agente de TS del servidor.
El agente de TS encripta la contraseña del certificado y crea una entrada del registro (TSAgentSSL). Cuando se reinicia el servicio del agente de TS, la entrada del registro se eliminará y la contraseña cifrada se escribirá en el almacén de credenciales. El certificado personalizado (Custom-cert. pem) se cargará y se utilizará para la comunicación con el cortafuegos.
En el siguiente paso, copiaremos el "Custom-cert. pem" de un servidor maestro de Windows en el que se instaló el agente de TS (consulte los pasos anteriores) en los servidores de agentes de TS remotos.
"win_copy" (enlace) se utiliza para copiar el archivo Custom-cert. PEM a la carpeta de instalación del agente TS en los servidores del agente de TS remotos. Por ejemplo, se usará el comando "ansible-PlayBook-VVV copy_ts_cert. yml" para ejecutar la siguiente tarea.
-hosts:
tareas de Windows:
-nombre: copiar un solo archivo manteniendo el nombre del fichero
win_copy:
src: Custom-cert. pem
dest: c:\Archivos de Files\Palo alto Networks\Terminal Server Agent \
En la tarea anterior, el archivo Custom-cert. PEM se ha cargado desde el servidor principal de Windows al controlador ansible y desde el controlador ansible, se copiará en servidores de agentes de TS remotos
root @ MYANS:/etc/ansible# LS files/Custom-cert. pem
files/Custom-CERT . pem
En los servidores de Windows del agente remoto de TS, actualizaremos las claves del registro. A partir de los pasos anteriores, tomamos nota de las siguientes claves de regisy:
- TSAgentCNEXPIRY
- TSAgentCNISSUER
- TSAgentCNNAME
- TSAgentCNSUBJECT
- TSAgentSSL
Mediante elmódulo "win_regedit" (enlace), se actualizarán las claves del registro de los servidores remotos
-hosts:
tareas de Windows:
-nombre: CN expire
win_regedit:
path: HKLM: \ Software\Palo alto Networks\TS Agent\Conf
nombre: TSAgentCNEXPIRY
datos: mar 14 20:15: 47 2019
Tipo GMT: String
-Name: CN emisor
win_regedit:
path: HKLM: \ Software\Palo alto Networks\TS Agent\Conf
nombre: TSAgentCNISSUER
datos:/CN = FW16. palab. local
Type: String
-Name: CN name
Win regedit:
ruta: HKLM: \ Software\Palo alto Networks\TS Agent\Conf
nombre: TSAgentCNNAME
datos: cert_TS12Cert. pem
tipo: String
-Name: CN tema
win_regedit:
path: HKLM: \ Software\Palo alto Networks\TS Agent\Conf
Nombre: TSAgentCNSUBJECT
datos:/CN = 192.168.75.12
tipo: String
-Name: contraseña
WIN_REGEDIT:
path: HKLM: \ Software\Palo alto Networks\TS Agent\Conf
nombre: TSAgentSSL
datos: ro6lSTTRERERERERTRRRR
tipo: String
Usando elmódulo "win_service" (Link), podemos reiniciar el servicio de Terminal Server Agent. Una vez que se reinicia el servicio, el agente de TS usará el certificado personalizado y moverá la contraseña desde el registro al almacén de credenciales. Una vez que se mueve la clave del registro (TSAgentSSL), ya no será visible para su visualización en el registro.
-hosts:
tareas de Windows:
-nombre: reiniciar servicio
win_service:
nombre: pan Terminal Server estado del agente
: reiniciado
En el cortafuegos, puede notar que la seguridad de conexión ha sido configurada bajo (dispositivo > identificación del usuario > seguridad de conexión). En este paso, el cortafuegos comprueba el certificado de CA que firmó los certificados del agente de servicio de Terminal Server.
Se supone que en los servidores Windows del agente de TS, los certificados de CA están instalados. Los certificados de CA se pueden instalar mediante la Directiva de grupo de Windows (enlace)
Se pueden realizar cambios en las configuraciones del agente de servicios de Terminal Server haciendo modificaciones en el registro. El siguiente artículo en vivo (Link) describe cómo afinar el registro del agente de TS para una mejor asignación y manejo de puertos.
Las siguientes capturas de pantalla muestran varias entradas del registro que pueden modificarse, lo que reconfigura internamente los agentes TS.
Mediante elmódulo "win_regedit" podemos modificar los registros de los agentes TS. Las siguientes tareas muestran pocas modificaciones que se realizan al agente TS.
Valores de registro modificados para las siguientes claves:
- Comienza
- Maxsize
- StartPort
- EndPort
- FreePortBlockDelay
- EnableTws
- TSAgentDomain
- OverrideDomainEnable
- ReservedPorts