badsectorlabs.ludus_adcs

Rol de Ansible: ADCS (Ludus)

Un rol de Ansible que instala ADCS en Windows Server y configura opcionalmente plantillas de Certificado Pre-Owned.

  • Convierte la VM asignada al rol "badsectorlabs.adcs" en una Autoridad de Certificación.
  • Opcionalmente, crea plantillas de certificados para ESC1, 2, 3 y 13.
  • Opcionalmente, configura ATTRIBUTESUBJECTALTNAME2 en CA para ESC6.
  • Opcionalmente, habilita la inscripción web para ESC8.
  • Opcionalmente, para ESC13, crea un usuario (esc13user), un grupo (esc13group), una plantilla (ESC13) y una política de emisión (IssuancePolicyForESC13).

¡Advertencia! ¡Este rol no es idempotente! Establecer un valor ludus_adcs_escX a true, aplicar el rol, luego establecerlo a false y aplicar el rol NO eliminará la plantilla que ahora está configurada como false.

Requisitos

Ninguno.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):

# Esto extrae el netbios_name del dominio asignado a esta máquina en la configuración de rango de ludus
ludus_adcs_domain: "{{ (ludus | selectattr('vm_name', 'match', inventory_hostname))[0].domain.fqdn.split('.')[0] }}"
# Esto extrae el vm_name del primary-dc para el dominio asignado a esta máquina en la configuración de rango de ludus
ludus_adcs_dc: "{{ (ludus | selectattr('domain', 'defined') | selectattr('domain.fqdn', 'match', ludus_adcs_domain) | selectattr('domain.role', 'match', 'primary-dc'))[0].hostname }}"
# Esto extrae el hostname de la configuración de ludus para este host
ludus_adcs_ca_host: "{{ (ludus | selectattr('vm_name', 'match', inventory_hostname))[0].hostname }}"
ludus_adcs_domain_username: "{{ ludus_adcs_domain }}\\{{ defaults.ad_domain_admin }}"
ludus_adcs_domain_password: "{{ defaults.ad_domain_admin_password }}"
ludus_adcs_ca_common_name: "{{ ludus_adcs_domain }}-CA"
ludus_adcs_esc1: true
ludus_adcs_esc2: true
ludus_adcs_esc3: true
ludus_adcs_esc3_cra: true
ludus_adcs_esc4: true
ludus_adcs_esc6: true
ludus_adcs_esc8: true
ludus_adcs_esc13: true

# Variables para ESC específicos
ludus_adcs_esc13_user: esc13user
ludus_adcs_esc13_password: ESC13password
ludus_adcs_esc13_group: esc13group
ludus_adcs_esc13_template: ESC13

Dependencias

Ninguna.

Ejemplo de Playbook

- hosts: adcs_hosts
  roles:
    - badsectorlabs.ludus_adcs
  vars:
    ludus_adcs_domain: mydomain
    ludus_adcs_ca_host: CAHOST
    ludus_adcs_domain_username: "mydomain\\Administrator"
    ludus_adcs_domain_password: P@ssw0rd
    ludus_adcs_ca_common_name: mydomain-CA
    ludus_adcs_ca_web_enrollment: true
    ludus_adcs_esc1: true
    ludus_adcs_esc2: true
    ludus_adcs_esc3: true
    ludus_adcs_esc3_cra: true
    ludus_adcs_esc4: true
    ludus_adcs_esc6: true
    ludus_adcs_esc8: true
    ludus_adcs_esc13: true

Ejemplo de Configuración de Rango Ludus

ludus:
  - vm_name: "{{ range_id }}-ad-dc-win2022-server-x64-1"
    hostname: "{{ range_id }}-DC01-2022"
    template: win2022-server-x64-template
    vlan: 10
    ip_last_octet: 11
    ram_gb: 6
    cpus: 4
    windows:
      sysprep: true
    domain:
      fqdn: ludus.domain
      role: primary-dc
    roles:
      - badsectorlabs.ludus_adcs
    role_vars:
      ludus_adcs_esc6: false # Por defecto, ESC1, 2, 3, 4, 6, 8 y 13 están habilitados

Licencia

GPLv3

Parte del código se basó en tareas de GOAD (también GPLv3).

El proyecto ADCSTemplate incluido tiene licencia MIT y fue escrito por Ashley McGlone.

Información del Autor

Este rol fue creado en 2024 por Bad Sector Labs, para Ludus.

Acerca del proyecto

Add Active Directory Certificate Services to a Windows server

Instalar
ansible-galaxy install badsectorlabs.ludus_adcs
Licencia
gpl-3.0
Descargas
680
Propietario