jborean93.win_laps
Rol de Ansible win_laps
Instala y configura la Solución de Contraseña para Administradores Locales en un host de Windows.
Esto se puede usar para lo siguiente:
- Instalar los componentes del lado del servidor y agregar los objetos y permisos de esquema de Active Directory requeridos.
- Crear un GPO para enviar automáticamente la configuración de LAPS a los clientes.
- Instalar los componentes del lado del cliente.
Este rol es principalmente una prueba de concepto y para facilitar la configuración de un dominio de prueba con LAPS integrado. No hay razón para no ejecutarlo en un entorno real, pero debido a los cambios complejos que LAPS requiere en AD, se recomienda probarlo antes de tocar un entorno de producción.
Requisitos
- Windows Server 2012 R2+
Nota: Este rol se ha probado en Windows Server 2016. Otras versiones deberían funcionar, pero no se garantiza.
Requisitos para los Componentes del Lado del Servidor
Al usar este rol para instalar los componentes del lado del servidor, necesitarás:
- Conectarte como un usuario que sea parte del grupo de dominio
Schema Admin
. - O especificar un usuario que sea parte del grupo de dominio
Schema Admin
a través de las variablesopt_laps_domain_username
oopt_laps_domain_password
. - Asegurarte de que estás conectado a un controlador de dominio como administrador.
Requisitos de Configuración de GPO
Al usar este rol para configurar la política de GPO, necesitarás asegurarte de estar conectado como un usuario con permisos para crear nuevos GPO y enlazarlos a las unidades organizativas de destino.
Requisitos para los Componentes del Lado del Cliente
El único requisito para instalar los componentes del lado del cliente es ser un administrador en el host.
Variables
Variables Obligatorias
Cuando opt_laps_install_server
o opt_laps_configure_gpo
es True
, las siguientes variables son obligatorias:
man_laps_ou_containers
: Una lista de unidades organizativas a configurar con la instalación de LAPS. Esto aplicará los permisos adecuados en AD y enlazará el nuevo GPO de LAPS si es necesario.
Los valores para man_laps_ou_containers
deben ser el nombre distintivo completo de la OU, por ejemplo, OU=Workstations,DC=domain,DC=local
.
Variables Opcionales
Las siguientes variables son opcionales:
opt_laps_admin_account
: Cambia el nombre de la cuenta de administrador a gestionar con LAPS, por defecto será la cuentaBUILTIN\Administrator
.opt_laps_configure_gpo
: Cuando se establece enTrue
yopt_laps_install_server
esTrue
, creará un GPO para hacer cumplir la configuración de LAPS y enlazarlo aman_laps_ou_containers
(por defecto:False
).opt_laps_install_client
: Cuando se establece enTrue
, instalará los componentes del lado del cliente (por defecto:False
).opt_laps_install_powershell
: Cuando se establece enTrue
, instalará el módulo de PowerShell de LAPSAdmPwd.PS
(por defecto:False
).opt_laps_install_server
: Cuando se establece enTrue
, instalará y configurará los componentes del lado del servidor, así como las configuraciones de Active Directory (por defecto:False
).opt_laps_install_ui
: Cuando se establece enTrue
, instalará la aplicación de interfaz de usuario de LAPS (por defecto:False
).opt_laps_install_source
: La ruta o URL del msi de LAPS a instalar, por defecto es la URL de descarga de Microsoft.opt_laps_product_id
: Especifica el ID de producto único del instalador de LAPS que se usa para verificaciones de idempotencia; por defecto, el instalador se omitirá si%ProgramFiles%\LAPS
ya existe.opt_laps_skip_reboot
: Cuando se establece enTrue
, no reiniciará el host si la instalación de LAPS dice que es necesario, estableceráout_laps_reboot_required
si se omitió (por defecto:False
).
Las siguientes variables opcionales se pueden establecer para controlar la configuración del servidor:
opt_laps_domain_server
: Especifica el controlador de dominio de destino al que se agregará la configuración de LAPS, por defecto eslocalhost
.opt_laps_domain_username
: Sobrescribe el usuario de conexión que se usa para configurar AD; esta cuenta debe ser miembro del grupoSchema Admins
.opt_laps_domain_password
: La contraseña paraopt_laps_domain_username
.
Las siguientes variables opcionales se pueden establecer para controlar la configuración de GPO:
opt_laps_enforce_password_expiry
: Corresponde a la políticaNo permitir que el tiempo de expiración de la contraseña sea más largo de lo requerido por la política
.opt_laps_gpo_name
: El nombre del objeto de política de grupo que contiene la configuración de LAPS.opt_laps_password_policy_age
: La edad máxima de la contraseña en días (por defecto:30
).opt_laps_password_policy_complexity
: La política de complejidad de la contraseña, puede ser una de las siguientes:uppercase
uppercase,lowercase
uppercase,lowercase,digits
uppercase,lowercase,digits,symbols
por defecto
opt_laps_password_policy_length
: La longitud de la contraseña a generar (por defecto:14
).
Variables de Salida
out_laps_reboot_required
: Se establece enTrue
cuandoopt_laps_skip_reboot
esTrue
y se requiere un reinicio para completar la instalación.
Dependencias del Rol
Ninguna.
Ejemplos de Playbooks
- name: instalar el cliente LAPS con la interfaz de usuario
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
opt_laps_install_client: True
opt_laps_install_ui: True
- name: instalar el servidor LAPS y configurarlo contra 1 OU
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
- OU=Accounting,DC=domain,DC=local
opt_laps_install_server: True
- name: instalar el servidor LAPS y crear un GPO
hosts: windows
gather_facts: no
roles:
- role: jborean93.win_laps
man_laps_ou_containers:
- OU=Workstations,DC=domain,DC=local
opt_laps_install_server: True
opt_laps_configure_gpo: True
Una vez que se ha ejecutado el rol, el módulo win_ad_dacl
y otros estarán disponibles en la ruta de Ansible. Este módulo se puede usar para aplicar acceso de lectura/escritura a los atributos de contraseña y expiración a otras cuentas. Por defecto, solo los administradores de dominio o la cuenta de computadora real pueden modificar estos valores. Para agregar un nuevo usuario o grupo al DACL, puedes ejecutar una tarea como:
- name: añadir acceso de lectura a los usuarios al atributo de contraseña
win_ad_dacl:
# es mejor usar el nombre distintivo completo para la OU
path: OU=Workstations,DC=ansible,DC=laps
state: present
# ACEs contienen una lista de derechos a aplicar
aces:
# Agrega acceso de lectura al atributo de contraseña
- rights: ReadProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwd
access: allow
account: ANSIBLE\PasswordUsers
# Agrega acceso de lectura y escritura al atributo de expiración de contraseña
- rights: ReadProperty, WriteProperty
inheritance_type: Descendents
inherited_object_type: Computer
object_type: ms-Mcs-AdmPwdExpirationTime
access: allow
account: ANSIBLE\ExpiryUsers
Consulta library/win_ad_dacl.py
para más detalles.
Los módulos en library
no están garantizados para permanecer iguales en cada versión del rol. Asegúrate de leer el changelog para cualquier cambio en estos módulos antes de actualizar la versión del rol.
Pruebas
Este rol depende de que haya un dominio configurado y que se ejecute en dos hosts diferentes. Esto es difícil de configurar en un entorno CI gratuito, así que las únicas pruebas que se realizarán serán a través de Vagrant localmente. Para probar este rol, haz lo siguiente:
pip install pypsrp
cd tests
vagrant up
ansible-playbook -i inventory.ini main.yml -vvv
Estos pasos pueden tardar algún tiempo dependiendo de si las máquinas virtuales de Vagrant ya están descargadas. El conjunto de pruebas actual solo instala los componentes del servidor en el controlador de dominio y el CSE del cliente en el otro servidor y asegura que podemos recuperar la contraseña.
Pendientes
- Añadir un parámetro opcional para controlar el SACL (auditoría) de cada atributo de AD. Ninguna - se welcome estas solicitudes de características.
ansible-galaxy install jborean93.win_laps